add function

This commit is contained in:
lnk
2025-09-04 20:59:17 +08:00
parent 722512fad6
commit 869189d18e
85 changed files with 1209 additions and 15 deletions

View File

@@ -743,9 +743,34 @@ int parse_device_cfg_web()
///////////////////////////////////////////////////////////////////////////////用例这里将局部的map拷贝到全局map后续根据协议台账修改
// 先清空全局 container再逐个拷贝 map 中的 terminal_dev
std::lock_guard<std::mutex> lock(ledgermtx);
terminal_devlist.clear();
for (const auto& kv : terminal_dev_map) {
terminal_devlist.push_back(kv.second); // kv.second 是对象,不用判断指针
terminal_dev dev = kv.second; // kv.second 是对象,不用判断指针
// ======= [新增] 对 terminal_dev 中 web 未返回/未设置字段做统一初始化,避免脏值 =======
dev.guid.clear(); // [新增] 业务 guid 初始为空
dev.busytype = 0; // [新增] 业务类型(状态机)默认 0
dev.isbusy = 0; // [新增] 未进行业务
dev.busytimecount = 0; // [新增] 业务计时清零
dev.internal_values.clear(); // [新增] 内部定值清空,等后续业务真实填充
// ------------------------------------------------------------------------------------
// ======= [新增] 对每个监测点做必要的内部结构初始化 =======
for (auto &mon : dev.line) {
// 暂态事件容器显式清理(虽然默认构造已空,但这里确保无脏数据)
mon.qvvrevent.qvvrdata.clear(); // [新增]
mon.qvvrevent.qvvrfile.clear(); // [新增]
// 定值列表清理,等待后续配置/采集填充
mon.set_values.clear(); // [新增]
}
// ------------------------------------------------------------------------------------
terminal_devlist.push_back(dev);
}
// 判断监测点接线类型