Merge branch '测试2' of http://192.168.1.22:3000/zw/Linux_Front1056 into 测试2
This commit is contained in:
@@ -2827,6 +2827,9 @@ bool compare_qvvr_and_file(const std::string& cfg_path, const std::vector<qvvr_d
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//打印提取到的时间戳
|
||||||
|
std::cout << "[调试] 提取到的起始时间戳: " << start_tm << ", 触发时间戳: " << trig_tm << "\n";
|
||||||
|
|
||||||
// 遍历所有暂态事件,查找与 trig_tm 匹配的
|
// 遍历所有暂态事件,查找与 trig_tm 匹配的
|
||||||
for (const auto& data : data_list) {
|
for (const auto& data : data_list) {
|
||||||
long long diff = static_cast<long long>(data.QVVR_time) - trig_tm;
|
long long diff = static_cast<long long>(data.QVVR_time) - trig_tm;
|
||||||
@@ -3067,6 +3070,9 @@ bool SendAllQvvrFiles(qvvr_file& qfile, std::string& out_wavepath) {
|
|||||||
//文件下载结束接口
|
//文件下载结束接口
|
||||||
bool update_qvvr_file_download(const std::string& filename_with_mac, const std::string& terminal_id) {
|
bool update_qvvr_file_download(const std::string& filename_with_mac, const std::string& terminal_id) {
|
||||||
|
|
||||||
|
std::cout << "[update_qvvr_file_download] filename_with_mac=" << filename_with_mac
|
||||||
|
<< " terminal_id=" << terminal_id << std::endl;
|
||||||
|
|
||||||
//台账加锁
|
//台账加锁
|
||||||
std::lock_guard<std::mutex> lock(ledgermtx);
|
std::lock_guard<std::mutex> lock(ledgermtx);
|
||||||
|
|
||||||
@@ -3093,8 +3099,31 @@ bool update_qvvr_file_download(const std::string& filename_with_mac, const std::
|
|||||||
try {
|
try {
|
||||||
// 将监测点台账中的 logical_device_seq 转换为数字进行匹配
|
// 将监测点台账中的 logical_device_seq 转换为数字进行匹配
|
||||||
ushort monitor_seq = static_cast<ushort>(std::stoi(monitor.logical_device_seq));
|
ushort monitor_seq = static_cast<ushort>(std::stoi(monitor.logical_device_seq));
|
||||||
if (monitor_seq != logical_seq) continue;
|
if (monitor_seq != logical_seq) {
|
||||||
|
// ★新增:不匹配时对比打印
|
||||||
|
std::cout << "[cmp-monitor-seq][NOT-MATCH]"
|
||||||
|
<< " monitor_id=" << monitor.monitor_id
|
||||||
|
<< " seq_in_ledger=\"" << seq_str << "\""
|
||||||
|
<< " parsed=" << monitor_seq
|
||||||
|
<< " target_seq=" << logical_seq
|
||||||
|
<< std::endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
// ★新增:解析失败详细原因
|
||||||
|
std::cout << "[cmp-monitor-seq][PARSE-FAIL]"
|
||||||
|
<< " monitor_id=" << monitor.monitor_id
|
||||||
|
<< " seq_in_ledger=\"" << monitor.logical_device_seq << "\""
|
||||||
|
<< " err=" << e.what()
|
||||||
|
<< std::endl;
|
||||||
|
continue; // logical_device_seq 非法,跳过
|
||||||
}catch (...) {
|
}catch (...) {
|
||||||
|
// ★新增:未知异常
|
||||||
|
std::cout << "[cmp-monitor-seq][PARSE-FAIL]"
|
||||||
|
<< " monitor_id=" << monitor.monitor_id
|
||||||
|
<< " seq_in_ledger=\"" << monitor.logical_device_seq << "\""
|
||||||
|
<< " err=<unknown>"
|
||||||
|
<< std::endl;
|
||||||
continue; // logical_device_seq 非法,跳过
|
continue; // logical_device_seq 非法,跳过
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3108,6 +3137,7 @@ bool update_qvvr_file_download(const std::string& filename_with_mac, const std::
|
|||||||
if (it != qfile.file_name.end()) {
|
if (it != qfile.file_name.end()) {
|
||||||
// 添加到 file_download(记录完整路径,避免重复)
|
// 添加到 file_download(记录完整路径,避免重复)
|
||||||
if (std::find(qfile.file_download.begin(), qfile.file_download.end(), filename_with_mac) == qfile.file_download.end()) {
|
if (std::find(qfile.file_download.begin(), qfile.file_download.end(), filename_with_mac) == qfile.file_download.end()) {
|
||||||
|
std::cout << "[update_qvvr_file_download] Adding downloaded file: " << filename_with_mac << std::endl;
|
||||||
qfile.file_download.push_back(filename_with_mac);
|
qfile.file_download.push_back(filename_with_mac);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3120,8 +3150,16 @@ bool update_qvvr_file_download(const std::string& filename_with_mac, const std::
|
|||||||
s_down.insert(extract_filename1(path)); // 提取每个路径中的文件名
|
s_down.insert(extract_filename1(path)); // 提取每个路径中的文件名
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//打印s_name和s_down内容
|
||||||
|
std::cout << "[update_qvvr_file_download] Expected files (file_name): ";
|
||||||
|
for (const auto& fn : s_name) std::cout << fn << " ";
|
||||||
|
std::cout << std::endl;
|
||||||
|
std::cout << "[update_qvvr_file_download] Downloaded files (file_download): ";
|
||||||
|
for (const auto& fn : s_down) std::cout << fn << " ";
|
||||||
|
|
||||||
// 检查 file_download 是否与 file_name 完全一致(集合相同)
|
// 检查 file_download 是否与 file_name 完全一致(集合相同)
|
||||||
if (s_name == s_down) {
|
if (s_name == s_down) {
|
||||||
|
std::cout << "[update_qvvr_file_download] All files downloaded for qfile in logical_seq=" << logical_seq << std::endl;
|
||||||
qfile.is_download = true; // 全部下载完成
|
qfile.is_download = true; // 全部下载完成
|
||||||
|
|
||||||
// 找到其中的 .cfg 文件进行匹配
|
// 找到其中的 .cfg 文件进行匹配
|
||||||
@@ -3170,6 +3208,12 @@ bool update_qvvr_file_download(const std::string& filename_with_mac, const std::
|
|||||||
monitor.qvvrevent.qvvrdata.erase(it);
|
monitor.qvvrevent.qvvrdata.erase(it);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
std::cerr << "[update_qvvr_file_download] Failed to send qvvr files for logical_seq=" << logical_seq << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
std::cout << "[update_qvvr_file_download] No matching qvvr_data found for cfg file: " << fpath << std::endl;
|
||||||
}
|
}
|
||||||
break; // 只处理第一个 cfg 文件
|
break; // 只处理第一个 cfg 文件
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -609,7 +609,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
|||||||
cid, //<2F><EFBFBD><DFBC><EFBFBD><EFBFBD>豸ID<49><44>0-<2D><EFBFBD><DFBC>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
|
cid, //<2F><EFBFBD><DFBC><EFBFBD><EFBFBD>豸ID<49><44>0-<2D><EFBFBD><DFBC>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-1
|
||||||
0x04, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<CDB9>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
0x04, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<CDB9>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
1, //<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><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
|
2, //<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>
|
arr //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
);
|
);
|
||||||
//std::cout << js << std::en
|
//std::cout << js << std::en
|
||||||
@@ -1031,6 +1031,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
|||||||
uint8_t monitor_index = parser.RecvData[0];
|
uint8_t monitor_index = parser.RecvData[0];
|
||||||
std::cout << "Monitor Index: " << static_cast<int>(monitor_index) << std::endl;
|
std::cout << "Monitor Index: " << static_cast<int>(monitor_index) << std::endl;
|
||||||
send_set_value_reply(id, monitor_index, dz_list);
|
send_set_value_reply(id, monitor_index, dz_list);
|
||||||
|
on_device_response_minimal(static_cast<int>(ResponseCode::OK), id, 0, static_cast<int>(DeviceState::READING_FIXEDVALUE));
|
||||||
|
|
||||||
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||||
@@ -1261,6 +1262,7 @@ void process_received_message(string mac, string id,const char* data, size_t len
|
|||||||
}
|
}
|
||||||
|
|
||||||
send_internal_value_reply(id, control_words);
|
send_internal_value_reply(id, control_words);
|
||||||
|
on_device_response_minimal(static_cast<int>(ResponseCode::OK), id, 0, static_cast<int>(DeviceState::READING_INTERFIXEDVALUE));
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
ClientManager::instance().change_device_state(id, DeviceState::IDLE);
|
||||||
|
|||||||
@@ -154,17 +154,17 @@ void* client_manager_thread(void* arg) {
|
|||||||
printf("Started client connections\n");
|
printf("Started client connections\n");
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
std::vector<PointInfo> points1 = {
|
/*std::vector<PointInfo> points1 = {
|
||||||
{"P001", "Main Voltage", "D001",1 ,1, 1, 1, 1,"0.38k",0},
|
{"P001", "Main Voltage", "D001",1 ,1, 1, 1, 1,"0.38k",0},
|
||||||
{"P002", "Backup Voltage", "D001",2 ,1, 1, 1, 1,"0.38k",0}
|
{"P002", "Backup Voltage", "D001",2 ,1, 1, 1, 1,"0.38k",0}
|
||||||
};
|
};
|
||||||
std::vector<PointInfo> points2 = {
|
std::vector<PointInfo> points2 = {
|
||||||
{"P003", "Main Voltage", "D002",1 ,1, 1, 1, 1,"0.38k",0},
|
{"P003", "Main Voltage", "D002",1 ,1, 1, 1, 1,"0.38k",0},
|
||||||
{"P004", "Backup Voltage", "D002",2 ,1, 1, 1, 1,"0.38k",0}
|
{"P004", "Backup Voltage", "D002",2 ,1, 1, 1, 1,"0.38k",0}
|
||||||
};
|
};*/
|
||||||
//00B78DA800D6 00-B7-8D-01-79-06 00-B7-8D-A8-00-D6 00-B7-8D-01-71-09 00-B7-8D-01-88-7f
|
//00B78DA800D6 00-B7-8D-01-79-06 00-B7-8D-A8-00-D6 00-B7-8D-01-71-09 00-B7-8D-01-88-7f
|
||||||
// <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>б<EFBFBD>
|
// <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>б<EFBFBD>
|
||||||
std::vector<DeviceInfo> devices = {
|
/*std::vector<DeviceInfo> devices = {
|
||||||
{
|
{
|
||||||
"D001", "Primary Device", "Model-X", "00-B7-8D-01-88-7f",
|
"D001", "Primary Device", "Model-X", "00-B7-8D-01-88-7f",
|
||||||
1, points1,true
|
1, points1,true
|
||||||
@@ -173,13 +173,13 @@ void* client_manager_thread(void* arg) {
|
|||||||
"D002", "Primary Device1", "Model-X1", "00-B7-8D-01-71-09",
|
"D002", "Primary Device1", "Model-X1", "00-B7-8D-01-71-09",
|
||||||
1, points2,true
|
1, points2,true
|
||||||
}
|
}
|
||||||
};
|
};*/
|
||||||
|
|
||||||
// <20><><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
|
// <20><><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
|
||||||
//std::vector<DeviceInfo> test_devices = generate_test_devices(100);
|
//std::vector<DeviceInfo> test_devices = generate_test_devices(100);
|
||||||
|
|
||||||
//lnk<6E><6B>̨<EFBFBD>˶<EFBFBD>ȡ<EFBFBD>豸
|
//lnk<6E><6B>̨<EFBFBD>˶<EFBFBD>ȡ<EFBFBD>豸
|
||||||
//std::vector<DeviceInfo> devices = GenerateDeviceInfoFromLedger(terminal_devlist);//lnk<6E><6B><EFBFBD><EFBFBD>
|
std::vector<DeviceInfo> devices = GenerateDeviceInfoFromLedger(terminal_devlist);//lnk<6E><6B><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
//̨<>˴<EFBFBD>ӡ
|
//̨<>˴<EFBFBD>ӡ
|
||||||
PrintDevices(devices);
|
PrintDevices(devices);
|
||||||
@@ -310,7 +310,7 @@ int main(int argc ,char** argv) {//
|
|||||||
std::cerr << "process param error,exit" << std::endl;
|
std::cerr << "process param error,exit" << std::endl;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
//init_daemon();
|
init_daemon();
|
||||||
srand(time(NULL)); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
srand(time(NULL)); // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|
||||||
// <20><>ʼ<EFBFBD><CABC><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
|||||||
Reference in New Issue
Block a user