Merge branch '测试2' of http://192.168.1.22:3000/zw/Linux_Front1056 into 测试2
This commit is contained in:
@@ -409,9 +409,21 @@ void to_json(nlohmann::json& j, const DataArrayItem& d);
|
|||||||
void to_json(nlohmann::json& j, const MsgObj& m);
|
void to_json(nlohmann::json& j, const MsgObj& m);
|
||||||
void to_json(nlohmann::json& j, const FullObj& f);
|
void to_json(nlohmann::json& j, const FullObj& f);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////提供给通讯部分调用的函数
|
||||||
|
|
||||||
std::vector<DeviceInfo> GenerateDeviceInfoFromLedger(const std::vector<terminal_dev>& terminal_devlist);
|
std::vector<DeviceInfo> GenerateDeviceInfoFromLedger(const std::vector<terminal_dev>& terminal_devlist);//接口读取台账后,再调用这个将台账拷贝过来
|
||||||
|
|
||||||
|
std::string generate_json( //构造装置主动上送数据的报文
|
||||||
|
int Mid, //需应答的报文订阅者收到后需以此ID应答,无需应答填入“-1”
|
||||||
|
int Did, //设备唯一标识Ldid,填入0代表Ndid。
|
||||||
|
int Pri, //报文处理的优先级
|
||||||
|
int Type, //消息类型
|
||||||
|
int Cldid, //逻辑子设备ID,0-逻辑设备本身,无填-1
|
||||||
|
int DataType, //数据类型,0-表示以数据集方式上送
|
||||||
|
int DataAttr, //数据属性:无“0”、实时“1”、统计“2”等。
|
||||||
|
int DsNameIdx, //数据集序号(以数据集方式上送),无填-1
|
||||||
|
const std::vector<DataArrayItem>& dataArray //数据数组。
|
||||||
|
);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,31 @@
|
|||||||
#include <queue>
|
#include <queue>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include "client2.h"
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "cloudfront/code/interface.h" //lnk20250708
|
||||||
|
#include "cloudfront/code/rocketmq.h" //lnk20250708
|
||||||
|
#include "client2.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
SafeMessageQueue message_queue; // ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
SafeMessageQueue message_queue; // ȫ<><C8AB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
|
//ʱ<><CAB1>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
time_t ConvertToTimestamp(const tagPqData_Float& data) {
|
||||||
|
struct tm t = {};
|
||||||
|
t.tm_year = data.time.DeviceYear - 1900; // tm_year <20><> 1900 <20><>ʼ<EFBFBD><CABC>
|
||||||
|
t.tm_mon = data.time.DeviceMonth - 1; // tm_mon <20><> 0<><30>1<EFBFBD>£<EFBFBD><C2A3><EFBFBD>ʼ
|
||||||
|
t.tm_mday = data.time.DeviceDay;
|
||||||
|
t.tm_hour = data.time.DeviceHour;
|
||||||
|
t.tm_min = data.time.DeviceMinute;
|
||||||
|
t.tm_sec = data.time.DeviceSecond;
|
||||||
|
|
||||||
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣩
|
||||||
|
return mktime(&t);
|
||||||
|
}
|
||||||
|
|
||||||
void process_received_message(string mac, string id,const char* data, size_t length) {
|
void process_received_message(string mac, string id,const char* data, size_t length) {
|
||||||
// ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// ʵ<>ʵ<EFBFBD><CAB5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@@ -151,11 +170,49 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
|||||||
tagPqData_Float cp95_data = all_data[3];
|
tagPqData_Float cp95_data = all_data[3];
|
||||||
|
|
||||||
// ת<><D7AA>ΪBase64<36>ַ<EFBFBD><D6B7><EFBFBD>
|
// ת<><D7AA>ΪBase64<36>ַ<EFBFBD><D6B7><EFBFBD>
|
||||||
std::string base64Str = max_data.ConvertToBase64();
|
std::string max_base64Str = max_data.ConvertToBase64();
|
||||||
|
std::string min_base64Str = min_data.ConvertToBase64();
|
||||||
|
std::string avg_base64Str = avg_data.ConvertToBase64();
|
||||||
|
std::string cp95_base64Str = cp95_data.ConvertToBase64();
|
||||||
|
|
||||||
|
//lnk20250708ʹ<38>ýӿڷ<D3BF><DAB7><EFBFBD>
|
||||||
|
time_t data_time = ConvertToTimestamp(avg_data);
|
||||||
|
|
||||||
|
std::vector<DataArrayItem> arr;
|
||||||
|
arr.push_back({1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1-<2D>ޣ<EFBFBD> 0-<2D><>Rt<52><74>,1-<2D><>Max<61><78>,2-<2D><>Min<69><6E>,3-<2D><>Avg<76><67>,4-<2D><>Cp95<39><35>
|
||||||
|
data_time, //<2F><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬<EFBFBD><E4A3AC><EFBFBD><EFBFBD>ʱ<EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD>1970<37><30><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EBA3AC>Ч<EFBFBD><D0A7><EFBFBD>롰-1<><31>
|
||||||
|
-1, //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>꣬<EAA3AC><CEA2><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>롰-1<><31>
|
||||||
|
0, //<2F><><EFBFBD>ݱ<EFBFBD>ʶ<EFBFBD><CAB6>1-<2D><>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD>쳣
|
||||||
|
max_base64Str});
|
||||||
|
arr.push_back({2, data_time, -1, 0, min_base64Str});
|
||||||
|
arr.push_back({3, data_time, -1, 0, avg_base64Str});
|
||||||
|
arr.push_back({4, data_time, -1, 0, cp95_base64Str});
|
||||||
|
|
||||||
|
std::string js = generate_json(
|
||||||
|
-1, //<2F><>Ӧ<EFBFBD><D3A6><EFBFBD>ı<EFBFBD><C4B1>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>IDӦ<44><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>롰-1<><31>
|
||||||
|
123456, //<2F>豸Ψһ<CEA8><D2BB>ʶLdid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>Ndid
|
||||||
|
1, //<2F><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
||||||
|
0x1302, //<2F>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
max_data.name, //<2F><EFBFBD><DFBC><EFBFBD><EFBFBD>豸ID<49><44>0-<2D><EFBFBD><DFBC>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
|
||||||
|
max_data.Data_Type, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3>ޡ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1>1<EFBFBD><31><EFBFBD><EFBFBD>ͳ<EFBFBD>ơ<EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>
|
||||||
|
1, //<2F><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
|
||||||
|
arr //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
);
|
||||||
|
std::cout << js << std::endl;
|
||||||
|
|
||||||
|
queue_data_t data;
|
||||||
|
data.monitor_no = 1;
|
||||||
|
data.strTopic = TOPIC_STAT;
|
||||||
|
data.strText = js;
|
||||||
|
data.mp_id = "test";
|
||||||
|
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||||
|
queue_data_list.push_back(data);
|
||||||
|
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
std::cout << "Base64 Encoded Data (" << max_data.CalculateFloatCount()
|
//std::cout << "Base64 Encoded Data (" << max_data.CalculateFloatCount()
|
||||||
<< " floats): " << base64Str << std::endl;
|
// << " floats): " << base64Str << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user