add delta process

This commit is contained in:
lnk
2025-02-14 16:44:38 +08:00
parent 399c3151a8
commit 322f41a03b
9 changed files with 931 additions and 83 deletions

View File

@@ -212,6 +212,11 @@ std::string g_strOTLType = "PostgreSQL"; //OTL
//std::string g_strOTLConnect = "postgres/postgres@pgsql"; //OTL<54><4C><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
std::string g_strOTLConnect = "postgres/bmdev@123@pgsql"; //OTL<54><4C><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
//lnk2024-8-14<31><34><EFBFBD>ӽ<EFBFBD><D3BD>ͽ<EFBFBD><CDBD>߱<EFBFBD>־,0<><30><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD>ν<EFBFBD><CEBD>ߣ<EFBFBD>1<EFBFBD><31><EFBFBD>ڽ<EFBFBD><DABD>ν<EFBFBD><CEBD><EFBFBD>
int isdelta_flag = 0;
//////CZY 2023-09-06 config
//<2F><>ǰ<EFBFBD><C7B0>flag:1Ϊ<31><CEAA><EFBFBD><EFBFBD>,0Ϊ<30>ر<EFBFBD>
int MULTIPLE_NODE_FLAG = 1;
@@ -11731,6 +11736,7 @@ void printLedgerinshell(const ied_usr_t& ied_usr, QIODevice* outputDevice) {
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2><EFBFBD>ض<EFBFBD><D8B6>ն<EFBFBD><D5B6><EFBFBD>Ϣ
void ledger(const char* terminal_id, QIODevice* outputDevice) {
outputDevice->write("print ledger in shell");
pthread_mutex_lock(&mtx);
bool found = false;
ied_t* ied;
@@ -12040,13 +12046,13 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
terminal_dev_map->remove(key);
// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> terminal_dev <20><><EFBFBD><EFBFBD>
if(atoi(dev->processNo) == g_front_seg_index){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
if(atoi(dev->processNo) == g_front_seg_index || g_front_seg_index == 0){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout<< "process num match" << std::endl;
terminal_dev_map->insert(key, dev);}//<2F><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ϊֻ<CEAA>н<EFBFBD><D0BD>̺<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>index<65><78>¼<EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD>
} else {
// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> terminal_dev <20><><EFBFBD><EFBFBD>
if(atoi(dev->processNo) == g_front_seg_index){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
if(atoi(dev->processNo) == g_front_seg_index || g_front_seg_index == 0){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout<< "process num match" << std::endl;
terminal_dev_map->insert(key, dev);}//<2F><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>Ϊֻ<CEAA>н<EFBFBD><D0BD>̺<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>index<65><78>¼<EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD>
@@ -12489,6 +12495,13 @@ int parse_device_cfg_web()
strcpy(line_info.v_wiring_type, terminal_connect);
cout << "v_wiring_type:" << line_info.v_wiring_type << endl;
//lnk2024-8-14<31><34>¼<EFBFBD><C2BC><EFBFBD>߱<EFBFBD>־
if (strcmp(line_info.v_wiring_type, "02") == 0)
{
isdelta_flag = 1; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>þ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
cout << "monitor_id" << monitor_id << "v_wiring_type:" << line_info.v_wiring_type << "is delta wiring:" << isdelta_flag << endl;
}
strcpy(line_info.monitor_status, monitor_status);
cout << "monitor_status:" << line_info.monitor_status << endl;
@@ -12516,7 +12529,7 @@ int parse_device_cfg_web()
char str[256]; //256<35><36>С
byte_t cpuno = line_info.cpuno;
cout << "cpuno:" << line_info.cpuno << endl;
cout << "cpuno:" << (int)line_info.cpuno << endl;
cout << "index cpuno:" << cpuno-1 << endl;
ied_usr = (ied_usr_t*)ied->usr_ext;
@@ -14227,10 +14240,10 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
strncpy(logical_device_seq, monitor_data.logical_device_seq, sizeof(logical_device_seq) - 1);
if (isCharPtrEmpty(logical_device_seq)) {
line_info.cpuno = 1; // Ĭ<>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>1
printf("logical_device_seq: is null, set cpuno: %d\n", line_info.cpuno);
printf("logical_device_seq: is null, set cpuno: %d\n", (int)line_info.cpuno);
} else {
line_info.cpuno = atoi(logical_device_seq);
printf("logical_device_seq: %d\n", line_info.cpuno);
printf("logical_device_seq: %d\n", (int)line_info.cpuno);
}
line_info.line_id = count_real_monitor; // <20><>¼<EFBFBD>ն<EFBFBD><D5B6>ź<EFBFBD>
@@ -14242,6 +14255,13 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
printf("monitor_status: %s\n", line_info.monitor_status);
printf("name: %s\n", line_info.name);
//lnk20250214<31><34><EFBFBD><EFBFBD>
if (strcmp(line_info.v_wiring_type, "02") == 0)
{
isdelta_flag = 1; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>þ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
cout << "monitor_id" << line_info.mp_id << "v_wiring_type:" << line_info.v_wiring_type << "is delta wiring:" << isdelta_flag << endl;
}
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
if (update[i].timestamp[0] != '\0') {
struct tm timeinfo;
@@ -14273,7 +14293,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
if (ied && ied->usr_ext && line_info.cpuno && ((int)line_info.cpuno < 10)) {
char str[256];
byte_t cpuno = line_info.cpuno; //ʹ<><CAB9><EFBFBD><EFBFBD>̨<EFBFBD>˵<EFBFBD><CBB5>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>кţ<D0BA><C5A3><EFBFBD>ʹ<EFBFBD><CAB9>ԭ<EFBFBD><D4AD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>µIJ<C2B5><C4B2>ֻᱻ<D6BB><E1B1BB><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʱû<CAB1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<E1B1BB><CAB9>
printf("cpuno: %d\n", line_info.cpuno);
printf("cpuno: %d\n", (int)line_info.cpuno);
printf("index cpuno: %d\n", cpuno - 1);
ied_usr = (ied_usr_t*)ied->usr_ext;
@@ -14331,7 +14351,7 @@ 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_take) {
if (ied_usr->LD_info[cpuno - 1].LD_name == NULL) {
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "new space for LD_name" << std::endl;
@@ -14350,12 +14370,16 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
} else {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD>ԭ<EFBFBD>пռ<D0BF><D5BC>ϸ<EFBFBD><CFB8><EFBFBD>
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "old space for LD_name:" << ied_usr->LD_info[cpuno].LD_name <<std::endl;
std::cout << "old space for LD_name:" << ied_usr->LD_info[cpuno - 1].LD_name <<std::endl;
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ棬<DAB4><E6A3AC>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(ied_usr->LD_info[cpuno - 1].LD_name, 0, 256);
printf("check error333 !!!!!!!!!!!!!!\n");
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, 256); //ԭ<>пռ<D5BC><E4B8B2>
printf("check error222 !!!!!!!!!!!!!!\n");
}
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
@@ -14876,10 +14900,13 @@ void clearIedUsr(ied_usr_t *ied_usr) {
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD>벿<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ָ<EFBFBD><D6B8>
if (ied_usr->LD_info != nullptr) {
// <20><><EFBFBD><EFBFBD> LD_info <20><>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (int i = 0; i < MAX_CPUNO; ++i) {
if (&ied_usr->LD_info[i] != NULL) {
clearLDInfo(&ied_usr->LD_info[i]);
LD_info_t * ld =NULL;
ld = (LD_info_t *)&ied_usr->LD_info[i];
if (ld != NULL) {
clearLDInfo(ld);
}
}
}