generate ledger to main thread
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
#include "tinyxml2.h"
|
||||
#include "rocketmq.h"
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
using namespace std;
|
||||
@@ -58,8 +60,6 @@ extern std::list<queue_data_t> queue_data_list; //queue发送数据链表
|
||||
|
||||
extern int three_secs_enabled;
|
||||
|
||||
extern std::vector<terminal_dev> terminal_devlist;
|
||||
|
||||
extern std::map<std::string, Xmldata*> xmlinfo_list;//保存所有型号对应的icd映射文件解析数据
|
||||
extern XmlConfig xmlcfg;//星形接线xml节点解析的数据-默认映射文件解析数据
|
||||
extern std::list<CTopic *> topicList; //队列发送主题链表
|
||||
@@ -2686,15 +2686,15 @@ void to_json(nlohmann::json& j, const FullObj& f) {
|
||||
};
|
||||
}
|
||||
std::string generate_json(
|
||||
int Mid,
|
||||
int Did,
|
||||
int Pri,
|
||||
int Type,
|
||||
int Cldid,
|
||||
int DataType,
|
||||
int DataAttr,
|
||||
int DsNameIdx,
|
||||
const std::vector<DataArrayItem>& dataArray //构造出array后调用这个函数
|
||||
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 //数据数组。
|
||||
) {
|
||||
FullObj fobj;
|
||||
fobj.Mid = Mid;
|
||||
@@ -2712,7 +2712,11 @@ std::string generate_json(
|
||||
|
||||
void upload_data_test(){
|
||||
std::vector<DataArrayItem> arr;
|
||||
arr.push_back({1, 1725477660, 0, 1, "xxxx"});
|
||||
arr.push_back({1, 1725477660, 0, 1, "xxxx"}); //数据属性 -1-无, 0-“Rt”,1-“Max”,2-“Min”,3-“Avg”,4-“Cp95”
|
||||
//数据时标,相对1970年的秒,无效填入“-1”
|
||||
//数据时标,微秒钟,无效填入“-1”
|
||||
//数据标识,1-标识数据异常
|
||||
//数据序列(数据集上送时将二进制数据流转换成Base64字符串,其他数据为object)
|
||||
arr.push_back({2, 1691741340, 0, 1, "yyyy"});
|
||||
|
||||
std::string js = generate_json(
|
||||
@@ -2728,3 +2732,34 @@ void upload_data_test(){
|
||||
std::lock_guard<std::mutex> lock(queue_data_list_mutex);
|
||||
queue_data_list.push_back(data);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////台账赋值给通信
|
||||
|
||||
std::vector<DeviceInfo> GenerateDeviceInfoFromLedger(const std::vector<terminal_dev>& terminal_devlist) {
|
||||
std::vector<DeviceInfo> devices;
|
||||
|
||||
for (const auto& terminal : terminal_devlist) {
|
||||
DeviceInfo device;
|
||||
device.device_id = terminal.terminal_id;
|
||||
device.name = terminal.terminal_name;
|
||||
device.model = terminal.dev_series;
|
||||
device.mac = terminal.mac;
|
||||
|
||||
for (const auto& monitor : terminal.line) {
|
||||
PointInfo point;
|
||||
point.point_id = monitor.monitor_id;
|
||||
point.name = monitor.monitor_name;
|
||||
point.device_id = terminal.terminal_id;
|
||||
point.PT1 = monitor.PT1;
|
||||
point.PT2 = monitor.PT2;
|
||||
point.CT1 = monitor.CT1;
|
||||
point.CT2 = monitor.CT2;
|
||||
|
||||
device.points.push_back(point);
|
||||
}
|
||||
|
||||
devices.push_back(device);
|
||||
}
|
||||
|
||||
return devices;
|
||||
}
|
||||
Reference in New Issue
Block a user