modify for ledgerupdate

This commit is contained in:
lnk
2025-02-08 17:04:39 +08:00
parent 7549ec48bb
commit 3a37ce9c5b
4 changed files with 223 additions and 30 deletions

View File

@@ -130,13 +130,13 @@ RocketMQConsumer::RocketMQConsumer(const std::string& consumerName, const std::s
std::cout << "error setting groupId"<< std::endl;
throw std::runtime_error("Failed to set Consumer Group ID.");
}
/*
// 设置消费模式为广播模式
if (SetPushConsumerMessageModel(consumer_, BROADCASTING) != 0) {
DestroyPushConsumer(consumer_);
std::cout << "error setting messagemodel"<< std::endl;
}
*/
//调试用
std::string consumerlog = "./mqconsumer/" + consumerName +".log";
if ( (SetPushConsumerLogPath(consumer_,consumerlog.c_str()) || SetPushConsumerLogFileNumAndSize(consumer_,10,100) || SetPushConsumerLogLevel(consumer_,E_LOG_LEVEL_DEBUG) ) != 0) {//记录消费日志

View File

@@ -3872,13 +3872,18 @@ int parse_rpt_log_ini()
for (cpuno = 0; cpuno < ied->cpucount; cpuno++) {
LD_info = &(ied_usr->LD_info[cpuno]);
char str[256];
char str[256]; //256<35><36>С
char* tmp = Get_IED(ied_usr->dev_type);
qDebug() << tmp << endl;
apr_snprintf(str, sizeof(str), tmp, cpuno + 1);
ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);//domin
//lnk20250208<30><38>ʹ<EFBFBD><CAB9>apr_pstrdup<75><70>ʹ<EFBFBD>ù̶<C3B9><CCB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>
//ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);//domin
// <20><> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>̶<EFBFBD> 256 <20>ֽڵ<D6BD><DAB5>ڴ<EFBFBD>
ied_usr->LD_info[cpuno].LD_name = (char *)apr_palloc(g_init_pool, 256);
// <20><> str <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>Ԥ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><E0B8B4> 256 <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);
delete[] tmp;
@@ -12437,7 +12442,7 @@ int parse_device_cfg_web()
//ied = find_ied_from_dev_code(line_info.terminal_code); //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC>ն<EFBFBD><D5B6>ˣ<EFBFBD><CBA3>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
if (ied && ied->usr_ext && line_info.cpuno && (static_cast<int>(line_info.cpuno) < 10)) {
char str[256];
char str[256]; //256<35><36>С
byte_t cpuno = line_info.cpuno;
cout << "cpuno:" << line_info.cpuno << endl;
@@ -12447,7 +12452,14 @@ int parse_device_cfg_web()
ied_usr->LD_info[cpuno - 1] = line_info; //cpunoĬ<6F><C4AC><EFBFBD><EFBFBD>1
ied_usr->LD_info[cpuno - 1].ied = ied;
apr_snprintf(str, sizeof(str), "PQMonitorPQM%d", cpuno);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD>תΪPQMonitorPQM+<2B>߼<EFBFBD><DFBC><EFBFBD>
ied_usr->LD_info[cpuno - 1].LD_name = apr_pstrdup(g_init_pool, str);//<2F><> str <20>еĸ<D0B5>ʽ<EFBFBD><CABD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ڴ<EFBFBD><DAB4><EFBFBD> g_init_pool <20>С<EFBFBD>ied_usr->LD_info[cpuno - 1].LD_name <20><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>LD_name <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PQMonitorPQM{cpuno} <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
//lnk20250208<30><38>ʹ<EFBFBD><CAB9>apr_pstrdup<75><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>
//ied_usr->LD_info[cpuno - 1].LD_name = apr_pstrdup(g_init_pool, str);//<2F><> str <20>еĸ<D0B5>ʽ<EFBFBD><CABD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>ڴ<EFBFBD><DAB4><EFBFBD> g_init_pool <20>С<EFBFBD>ied_usr->LD_info[cpuno - 1].LD_name <20><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>LD_name <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PQMonitorPQM{cpuno} <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
// <20><> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>̶<EFBFBD> 256 <20>ֽڵ<D6BD><DAB5>ڴ<EFBFBD>
ied_usr->LD_info[cpuno].LD_name = (char *)apr_palloc(g_init_pool, 256);
// <20><> str <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>Ԥ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><E0B8B4> 256 <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ<C4BF><D5BC><EFBFBD><EFBFBD><EFBFBD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ied<65><64>
ied_usr->LD_info[cpuno - 1].ht_fcd = apr_hash_make(g_init_pool); //<2F><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ ied_usr->LD_info[cpuno - 1] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ht_fcd <20><> ht_full_fcda<64><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿յĹ<D5B5>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>apr_hash_make(g_init_pool) <20><><EFBFBD><EFBFBD> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD>
ied_usr->LD_info[cpuno - 1].ht_full_fcda = apr_hash_make(g_init_pool);//<2F><><EFBFBD>ǵ<EFBFBD> key ֵ<><D6B5> value <20>ں<EFBFBD><DABA><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>п<EFBFBD><D0BF>ܻᱻ<DCBB><E1B1BB><EFBFBD><EFBFBD>
@@ -14195,9 +14207,23 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
apr_snprintf(str, sizeof(str), "PQMonitorPQM%d", cpuno);
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD> LD_name<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
if (ied_usr->LD_info[cpuno - 1].LD_name == NULL) {
ied_usr->LD_info[cpuno - 1].LD_name = apr_pstrdup(g_init_pool, str);
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "new space for LD_name" << std::endl;
//lnk20250208<30><38>ʹ<EFBFBD><CAB9>apr_pstrdup<75><70>ʹ<EFBFBD>ù̶<C3B9><CCB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>
//ied_usr->LD_info[cpuno - 1].LD_name = apr_pstrdup(g_init_pool, str);
// <20><> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>̶<EFBFBD> 256 <20>ֽڵ<D6BD><DAB5>ڴ<EFBFBD>
ied_usr->LD_info[cpuno].LD_name = (char *)apr_palloc(g_init_pool, 256);
// <20><> str <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>Ԥ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><E0B8B4> 256 <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);
} else {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD>ԭ<EFBFBD>пռ<D0BF><D5BC>ϸ<EFBFBD><CFB8><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, sizeof(ied_usr->LD_info[cpuno - 1].LD_name));
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "old space for LD_name" << std::endl;
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, 256);
}
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
@@ -14394,7 +14420,15 @@ int parse_rpt_log_ini_one(ied_t* ied)
//g_DevFlagû<67><C3BB>ʹ<EFBFBD><CAB9>
parse_one_rpt_log_ini(g_DevFlag, rpt_cfg_strlists[type], log_cfg_strlists[type], ied_usr->dev_type);
}
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "ied->cpucount:" << (int)(ied->cpucount) <<std::endl;
for (cpuno = 0; cpuno < ied->cpucount; cpuno++) {//<2F><><EFBFBD><EFBFBD>iedʵ<64>ʵļ<CAB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "cpuno:" << cpuno << "log init !!!!!!" <<std::endl;
LD_info = &(ied_usr->LD_info[cpuno]);
//<2F><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ڴ棬<DAB4><E6A3AC><EFBFBD><EFBFBD><EFBFBD>жϲ<D0B6><CFB2>ܴ<EFBFBD>g_init_pool<6F>з<EFBFBD><D0B7><EFBFBD><EFBFBD>ڴ棬lnk20250122
@@ -14406,13 +14440,39 @@ int parse_rpt_log_ini_one(ied_t* ied)
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD> LD_name<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
if (ied_usr->LD_info[cpuno].LD_name == NULL) {
ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "cpuno:" << cpuno << "apr_pstrdup" <<std::endl;
//lnk20250208<30><38>ʹ<EFBFBD><CAB9>apr_pstrdup<75><70>ʹ<EFBFBD>ù̶<C3B9><CCB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>
//ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);
// <20><> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>̶<EFBFBD> 256 <20>ֽڵ<D6BD><DAB5>ڴ<EFBFBD>
ied_usr->LD_info[cpuno].LD_name = (char *)apr_palloc(g_init_pool, 256);
// <20><> str <20>е<EFBFBD><D0B5><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8>Ƶ<EFBFBD>Ԥ<EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><E0B8B4> 256 <20>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);
} else {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD>ԭ<EFBFBD>пռ<D0BF><D5BC>ϸ<EFBFBD><CFB8><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, sizeof(ied_usr->LD_info[cpuno - 1].LD_name));
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "cpuno:" << cpuno << "apr_cpystrn" <<std::endl;
// ȷ<><C8B7>Ŀ<EFBFBD><EFBFBD><EABBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B9BB>
std::cout << "strlen(str):" << strlen(str) << "strlen(ied_usr->LD_info[cpuno].LD_name)" << strlen(ied_usr->LD_info[cpuno].LD_name) <<std::endl;
if (strlen(str) < strlen(ied_usr->LD_info[cpuno].LD_name)) {
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);
} else {
std::cerr << "Error: target buffer is too small." << std::endl;
// <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
}
}
delete[] tmp;//Get_IED<45>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ棬ʹ<E6A3AC>ú<EFBFBD>ɾ<EFBFBD><C9BE>
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "cpuno:" << cpuno << " fill report control" <<std::endl;
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
init_rptctrl_by_count(LD_info, rpt_cfg_strlists[type]->size());
for (int i = 0; i < rpt_cfg_strlists[type]->size(); ++i) {