add ledger update

This commit is contained in:
lnk
2025-09-25 16:36:04 +08:00
parent 5616d9096a
commit caf3c308c1
5 changed files with 298 additions and 72 deletions

View File

@@ -752,7 +752,7 @@ int parse_device_cfg_web()
DIY_DEBUGLOG("process", "【DEBUG】前置的%d号进程调用获取到的台账的数量为:%d", g_front_seg_index, count_cfg);
if (IED_COUNT < count_cfg) {
std::cout << "!!!!!!!!!!single process can not add any ledger unless reboot!!!!!!!" << std::endl;
std::cout << "!!!!!!!!!!single process has ledger count more than config!!!!!!!" << std::endl;
//DIY_WARNLOG("process","【WARN】前置的%d号进程获取到的台账的数量大于配置文件中给单个进程配置的台账数量:%d,这个进程将按照获取到的台账的数量来创建台账空间,这个进程不能直接通过台账添加来新增台账,只能通过重启进程或者先删除已有台账再添加台账的方式来添加新台账", g_front_seg_index, IED_COUNT);
} else {
//DIY_INFOLOG("process","【NORMAL】前置的%d号进程根据配置文件中给单个进程配置的台账数量:%d来创建台账空间", g_front_seg_index, IED_COUNT);
@@ -764,17 +764,22 @@ int parse_device_cfg_web()
terminal_devlist.clear();
int idx = 0;
for (const auto& kv : terminal_dev_map) {
terminal_dev dev = kv.second; // kv.second 是对象,不用判断指针
//dev.dev_index = static_cast<int>(idx++);
// ======= [新增] 对 terminal_dev 中 web 未返回/未设置字段做统一初始化,避免脏值 =======
dev.guid.clear(); // [新增] 业务 guid 初始为空
dev.busytype = 0; // [新增] 业务类型(状态机)默认 0
dev.isbusy = 0; // [新增] 未进行业务
dev.busytimecount = 0; // [新增] 业务计时清零
dev.internal_values.clear(); // [新增] 内部定值清空,等后续业务真实填充
dev.dz_internal_info_list.clear(); // [新增] 内部定值信息清空,等后续业务真实填充
dev.control_words.clear();
// ------------------------------------------------------------------------------------
// ======= [新增] 对每个监测点做必要的内部结构初始化 =======
@@ -786,6 +791,10 @@ int parse_device_cfg_web()
// 定值列表清理,等待后续配置/采集填充
mon.set_values.clear(); // [新增]
mon.dz_info_list.clear(); // [新增]
//补招列表清理
mon.recall_list.clear();
mon.recall_list_static.clear();
}
// ------------------------------------------------------------------------------------