ledgerupdate testing

This commit is contained in:
lnk
2025-02-11 18:23:19 +08:00
parent faaef4f166
commit 898d5e043d
10 changed files with 201 additions and 52 deletions

View File

@@ -766,6 +766,21 @@ void rocketmq_test_set()//用来测试进程控制脚本
data.mp_id = 123123;
my_rocketmq_send(data);
}
void rocketmq_test_only()//用来测试进程控制脚本
{
Ckafka_data_t data;
data.monitor_id = 123123;
data.strTopic = QString::fromStdString(G_MQCONSUMER_TOPIC_SET);
std::ifstream file("set_debug.txt"); // 文件中存储长字符串
std::stringstream buffer;
buffer << file.rdbuf(); // 读取整个文件内容
data.strText = QString::fromStdString(buffer.str());
data.mp_id = 123123;
my_rocketmq_send(data);
}
extern std::string G_MQCONSUMER_TOPIC_RC;
void rocketmq_test_rc()
{

View File

@@ -4086,7 +4086,7 @@ void add_terminal_to_trigger_update(trigger_update_xml_t* trigger_update_xml, co
std::cout << "new ledger!!!!"<<std::endl;
if (trigger_update_xml->new_update_num < MAX_UPDATEA_NUM) {
trigger_update_xml->new_updates[trigger_update_xml->new_update_num] = work_terminal;
trigger_update_xml->new_update_num++; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
trigger_update_xml->new_update_num+= 1; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
} else {
std::cerr << "Exceeded MAX_UPDATEA_NUM limit for new updates!" << std::endl;
}
@@ -4095,7 +4095,7 @@ void add_terminal_to_trigger_update(trigger_update_xml_t* trigger_update_xml, co
std::cout << "modify ledger!!!"<<std::endl;
if (trigger_update_xml->modify_update_num < MAX_UPDATEA_NUM) {
trigger_update_xml->modify_updates[trigger_update_xml->modify_update_num] = work_terminal;
trigger_update_xml->modify_update_num++; // <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
trigger_update_xml->modify_update_num+= 1; // <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
} else {
std::cerr << "Exceeded MAX_UPDATEA_NUM limit for modify updates!" << std::endl;
}
@@ -4189,7 +4189,7 @@ void parse_ledger_update(trigger_update_xml_t* trigger_update_xml, const std::st
std::cout << "delete ledger!!!!!"<<std::endl;
if (trigger_update_xml->delete_update_num < MAX_UPDATEA_NUM) {
trigger_update_xml->delete_updates[trigger_update_xml->delete_update_num] = delete_terminal;
trigger_update_xml->delete_update_num++; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>
trigger_update_xml->delete_update_num += 1; // <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD>
}
}
@@ -4316,7 +4316,7 @@ int parse_ledger_update_xml(trigger_update_xml_t* trigger_update_xml)
}
}
else {
//std::cout << "No matching XML files found." << std::endl;
std::cout << "No matching XML files found." << std::endl;
return APR_EGENERAL;
}
@@ -12210,8 +12210,13 @@ int parse_device_cfg_web()
//<2F><><EFBFBD><EFBFBD>ٵ<EFBFBD>ied<65>Ŀռ<C4BF><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD><D0B5>ն<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250121
g_node->clients = (ied_t**)apr_pcalloc(g_cfg_pool, IED_COUNT * sizeof(ied_t*));//g_node->clients <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD><D5BC><EFBFBD><E6B4A2> count_cfg <20><> ied_t* <20><><EFBFBD>͵<EFBFBD>ָ<EFBFBD><EFBFBD><EBA3A8>һ<EFBFBD><D2BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3A9><EFBFBD>ǣ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3A9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (int k = 0; k < count_cfg; k++)
g_node->clients[k] = (ied_t*)apr_pcalloc(g_cfg_pool, sizeof(ied_t));//ÿ<><C3BF> g_node->clients[k] ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>ģ<EFBFBD>ÿ<EFBFBD><C3BF> ied_t <20><EFBFBD><E1B9B9>ռ<EFBFBD>õ<EFBFBD><C3B5>ڴ<EFBFBD><DAB4><EFBFBD><E9A3A9><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
for (int k = 0; k < count_cfg; k++){
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "!!!!!!!!!!gnodeindex:" << k << std::endl;
g_node->clients[k] = (ied_t*)apr_pcalloc(g_cfg_pool, sizeof(ied_t));}//ÿ<><C3BF> g_node->clients[k] ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>ģ<EFBFBD>ÿ<EFBFBD><C3BF> ied_t <20><EFBFBD><E1B9B9>ռ<EFBFBD>õ<EFBFBD><C3B5>ڴ<EFBFBD><DAB4><EFBFBD><E9A3A9><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
//<2F><>ȡ<EFBFBD>ն<EFBFBD>̨<EFBFBD>˱<EFBFBD><CBB1>滻Ϊweb<65>ӿ<EFBFBD>
//////////////////////////////////////////////////////////////////////////////////////////////////
@@ -13013,6 +13018,9 @@ void OnTimerThread::run()
pgmin = localTime.tm_min;
pgflag = 1;
}*/
//<2F><><EFBFBD><EFBFBD>
printf("check error10 !!!!!!!!!!!!!!\n");
//<2F><>־<EFBFBD><D6BE>¼
if (mp_num_hour != localTime.tm_hour) {
@@ -13027,6 +13035,8 @@ void OnTimerThread::run()
mp_num_hour = localTime.tm_hour;
pthread_mutex_unlock(&mtx);//<2F><><EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD>
printf("check error11 !!!!!!!!!!!!!!\n");
}
//<2F><>ʹ<EFBFBD>õĴ<C3B5><C4B4><EFBFBD>lnk20241206
@@ -14091,6 +14101,10 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
apr_snprintf(ied_usr->dev_type, sizeof(ied_usr->dev_type), "%s", update[i].dev_type);
printf("ied_usr->dev_type: %s\n", ied_usr->dev_type);
}
if (update[i].processNo != NULL) {
apr_snprintf(ied_usr->processNo, sizeof(ied_usr->processNo), "%s", update[i].processNo);
printf("ied_usr->processNo: %s\n", ied_usr->processNo);
}
if (update[i].dev_series != NULL) {
apr_snprintf(ied_usr->dev_series, sizeof(ied_usr->dev_series), "%s", update[i].dev_series);
printf("ied_usr->dev_series: %s\n", ied_usr->dev_series);
@@ -14278,7 +14292,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
//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);
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, sizeof(str));
}
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
@@ -14350,6 +14364,9 @@ void write_log_entry(std::ofstream &log_file, const std::string &action, const s
// <20><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>־
void create_ledger_log(trigger_update_xml_t* ledger_update_xml) {
std::cout << "create_ledger_log." << std::endl;
std::string log_filename = "../etc/" + std::string(LEDGER_UPDATE_FN);
std::ofstream log_file(log_filename.c_str(), std::ios::app); // <20><>׷<EFBFBD><D7B7>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
@@ -14512,7 +14529,7 @@ int parse_rpt_log_ini_one(ied_t* ied)
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::cout << "strlen(str):" << strlen(str) << "strlen(ied_usr->LD_info[cpuno].LD_name)" << strlen(ied_usr->LD_info[cpuno].LD_name) <<std::endl;
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, 256);//apr_palloc ֻ<>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><E9A3AC>û<EFBFBD><C3BB><EFBFBD>ṩֱ<E1B9A9>ӵĻ<D3B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>֤<EFBFBD><D6A4><EFBFBD>Ŀռ<C4BF><D5BC>Ƿ<EFBFBD><C7B7>ѱ<EFBFBD>ʹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8>Ǽ<EFBFBD><C7BC><EFBFBD>
apr_cpystrn(ied_usr->LD_info[cpuno].LD_name, str, sizeof(str));//apr_palloc ֻ<>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>̶<EFBFBD><CCB6><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><E9A3AC>û<EFBFBD><C3BB><EFBFBD>ṩֱ<E1B9A9>ӵĻ<D3B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>֤<EFBFBD><D6A4><EFBFBD>Ŀռ<C4BF><D5BC>Ƿ<EFBFBD><C7B7>ѱ<EFBFBD>ʹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><E4B5BD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8>Ǽ<EFBFBD><C7BC><EFBFBD>
}
@@ -14563,11 +14580,16 @@ apr_status_t init_rem_dib_table_one(ied_t *ied)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD>g_nodeһ<65><D2BB>
ied_usr = (ied_usr_t*)ied->usr_ext;
pos = ied_usr->dev_idx;
pos = ied_usr->dev_idx - 1;
std::cout << "!!!!!!!!!rem_dib_table pos is " << pos << std::endl;
for(chnl_no=0 ; chnl_no<ied->chncount; chnl_no++) {
chnl_usr = (chnl_usr_t*)ied->channel[chnl_no].connect;//<2F><>ʼ<EFBFBD><CABC>ʱ<EFBFBD>Ѹ<EFBFBD><D1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
g_pt61850app->chnl_usr[pos] = chnl_usr;
std::cout << "!!!!!!!!!g_pt61850app pos " << pos << "is " << ied_usr->terminal_id << "is" << (chnl_usr == NULL?"NULL":"NOTNULL") << std::endl;
ip.s_addr = htonl(ied->channel[chnl_no].addr);
strcpy(chnl_usr->ip_str,inet_ntoa(ip));
printf( " add_rem_dib_table %s:%d \n",chnl_usr->ip_str ,ied->channel[chnl_no].port );

View File

@@ -21,6 +21,7 @@ void rocketmq_test_rt();
void rocketmq_test_ud();
void rocketmq_test_rc();
void rocketmq_test_set();
void rocketmq_test_only();
void rocketmq_test_300(int mpnum,int front_index);
}
//void rocketmq_test_300(int mpnum,int front_index);//20241202lnk

View File

@@ -1017,7 +1017,7 @@ void parse_set(const std::string& json_str) {
return;
}
cJSON* index = cJSON_GetObjectItem(root, "index");
cJSON* index = cJSON_GetObjectItem(messageBoy, "index");
if (index == nullptr) {
std::cout << "Missing 'index' in JSON." << std::endl;
cJSON_Delete(root);
@@ -1047,7 +1047,7 @@ void parse_set(const std::string& json_str) {
if(g_node_id == STAT_DATA_BASE_NODE_ID && g_front_seg_index == 1){
std::cout << "cfg_stat_data process" << g_front_seg_index <<" handle this msg" << std::endl;
// <20><><EFBFBD><EFBFBD> set_process
cJSON* data = cJSON_GetObjectItem(root, "data");
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
if (data != nullptr && data->type == cJSON_Array) {
int data_size = cJSON_GetArraySize(data);
for (int i = 0; i < data_size; i++) {
@@ -1084,7 +1084,7 @@ void parse_set(const std::string& json_str) {
if(g_node_id == STAT_DATA_BASE_NODE_ID && g_front_seg_index == 1){
std::cout << "cfg_stat_data process" << g_front_seg_index <<" handle this msg" << std::endl;
// <20><><EFBFBD><EFBFBD> set_process
cJSON* data = cJSON_GetObjectItem(root, "data");
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
if (data != nullptr && data->type == cJSON_Array) {
int data_size = cJSON_GetArraySize(data);
for (int i = 0; i < data_size; i++) {

View File

@@ -220,6 +220,11 @@ private slots:
historyIndex = commandHistory.size(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
// <20><EFBFBD><E6B4A2>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
if (!currentCommand.isEmpty() && command != "up" && command != "down" && command != "\x7f") {
currentCommand.append(command);
}
// <20><><EFBFBD>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7>͡<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1B1><EFBFBD><EFBFBD>
clientSocket->write("Received command\n> ");
clientSocket->flush();
@@ -281,6 +286,12 @@ private slots:
rocketmq_test_set(); // <20><><EFBFBD><EFBFBD> set <20><><EFBFBD><EFBFBD>
clientSocket->write("Executed rocketmq_test_set\n> ");
}
else if (command.startsWith("only")) {
qDebug() << "Executing rocketmq_test_only()";
std::cout << "Executing rocketmq_test_only()\n";
rocketmq_test_only(); // <20><><EFBFBD><EFBFBD> set <20><><EFBFBD><EFBFBD>
clientSocket->write("Executed rocketmq_test_only\n> ");
}
else if (command.startsWith("ledger")) {
qDebug() << "Executing ledger()";
std::cout << "Executing ledger()\n";
@@ -326,26 +337,29 @@ private slots:
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
else if (command == "up" || command == "down") {
// <20><><EFBFBD>¼<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EEB4A6>
if (command == "up") {
// <20>ϼ<EFBFBD>ͷ<EFBFBD><CDB7>ѡ<EFBFBD><D1A1>ǰһ<C7B0><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
if (historyIndex > 0) {
historyIndex--;
}
} else if (command == "down") {
// <20>¼<EFBFBD>ͷ<EFBFBD><CDB7>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
if (historyIndex < commandHistory.size() - 1) {
historyIndex++;
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
if (historyIndex >= 0 && historyIndex < commandHistory.size()) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ
if (command == "up") {
if (historyIndex > 0) {
historyIndex--;
clientSocket->write(commandHistory[historyIndex].toUtf8());
} else {
clientSocket->write("No history available\n> ");
clientSocket->write("No previous command\n> ");
}
} else if (command == "down") {
if (historyIndex < commandHistory.size() - 1) {
historyIndex++;
clientSocket->write(commandHistory[historyIndex].toUtf8());
} else {
clientSocket->write("No next command\n> ");
}
}
// <20><><EFBFBD><EFBFBD> backspace <20><>
else if (command == "\x7f") {
if (!currentCommand.isEmpty()) {
currentCommand.chop(1); // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD>
clientSocket->write(currentCommand.toUtf8());
}
clientSocket->flush();
}
// <20><><EFBFBD><EFBFBD> exit <20><><EFBFBD><EFBFBD>
else if (command == "exit") {
@@ -369,6 +383,7 @@ signals:
private:
QList<QString> commandHistory; // <20><EFBFBD><E6B4A2>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>
int historyIndex = -1; // <20><>ǰ<EFBFBD><C7B0>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
QString currentCommand; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
QTcpServer *server;
QTimer *timer;
int TEST_NUM;

View File

@@ -326,6 +326,8 @@ int main(int argc, const char **argv)
exit(-1039);
}
//<2F><><EFBFBD><EFBFBD>
printf("check error12 !!!!!!!!!!!!!!\n");
//lnk20241211 <20><><EFBFBD>Ӳ<EFBFBD><D3B2>Կ<EFBFBD><D4BF><EFBFBD>
pthread_mutex_lock(&mtx);//<2F><><EFBFBD>̶߳<DFB3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD>ȡ̨<C8A1>˼<EFBFBD><CBBC><EFBFBD>
if (!G_TEST_FLAG && g_front_num_count >= 30 && g_onlyIP[0] == 0 && g_node->n_clients>10) {//30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˴<EFBFBD><CBB4><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD>ն<EFBFBD>
@@ -337,6 +339,8 @@ int main(int argc, const char **argv)
exit(-1039);
}
pthread_mutex_unlock(&mtx);
//<2F><><EFBFBD><EFBFBD>
printf("check error13 !!!!!!!!!!!!!!\n");
}

View File

@@ -912,6 +912,10 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
}//<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><E8B6A8>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("!!!!!!!!!!gnodeindex:%d!!!!!!\n",new_client_count - 1);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼
g_node->clients[new_client_count - 1] = (ied_t*)apr_pcalloc(g_cfg_pool, sizeof(ied_t));
@@ -980,6 +984,9 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
parse_rpt_log_ini_one(ied);
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>///////////////////////////////////
//<2F><><EFBFBD><EFBFBD>
printf("ledger id: %s\n", ((ied_usr_t*)ied->channel[0].ied->usr_ext)->terminal_id);
//6-init_rem_dib_table//////////////////////////////
init_rem_dib_table_one(ied);
//6-init_rem_dib_table///////////////////////////////////
@@ -1227,23 +1234,36 @@ void check_ledger_update()//lnk20250113
if ( fabs(now - last_check_3s_config_time) < 3*1000 ) //wait 3secs //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><EFBFBD><E9BFB4>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ִ<EFBFBD><D6B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>3<EFBFBD>벻ִ<EBB2BB>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
return;
trigger_update_xml_t trigger_ledger_update_xml; //̨<>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>
// <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD> trigger_ledger_update_xml <20><EFBFBD><E1B9B9>
trigger_update_xml_t* trigger_ledger_update_xml = (trigger_update_xml_t*)malloc(sizeof(trigger_update_xml_t));
if (trigger_ledger_update_xml == NULL) {
printf("Memory allocation failed!\n");
return; // <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>
}
printf("check ledger update...\n");
//ÿ<>ζ<EFBFBD><CEB6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ֹ<EFBFBD>ظ<EFBFBD>
memset(trigger_ledger_update_xml, 0, sizeof(trigger_update_xml_t));
printf("check ledger update...trigger_ledger_update_xml:%d\n",trigger_ledger_update_xml->modify_update_num);
last_check_3s_config_time = now; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>նˣ<D5B6><CBA3><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>ļ<EFBFBD>
if (APR_SUCCESS==parse_ledger_update_xml(&trigger_ledger_update_xml)){ //<2F><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>ļ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>Ը<EFBFBD><D4B8>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˵<EFBFBD>
if (APR_SUCCESS==parse_ledger_update_xml(trigger_ledger_update_xml)){ //<2F><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>ļ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>Ը<EFBFBD><D4B8>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˵<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
print_trigger_update_xml(&trigger_ledger_update_xml);
print_trigger_update_xml(trigger_ledger_update_xml);
//<2F><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>¼<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>lnk20250114
pthread_mutex_lock(&mtx);
process_ledger_update(&trigger_ledger_update_xml); //̨<>˸<EFBFBD><CBB8><EFBFBD>
process_ledger_update(trigger_ledger_update_xml); //̨<>˸<EFBFBD><CBB8><EFBFBD>
pthread_mutex_unlock(&mtx);
}
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷŶ<CDB7>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
free(trigger_ledger_update_xml);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef _OS_UNIX_
@@ -1510,7 +1530,10 @@ void CheckNextNotConnectedChannel()
do {
chnl_usr = g_pt61850app->chnl_usr[chnl_total_no];
chnl_total_no = (chnl_total_no+1) % g_pt61850app->chnl_counts;
} while ( (g_onlyIP[0]!=0) && (strcmp(g_onlyIP,chnl_usr->ip_str)!=0) ) ;
} while ( (g_onlyIP[0]!=0) && (strcmp(g_onlyIP,chnl_usr->ip_str)!=0) );
printf("check error chnl_total_no !!!!!!!!!!!!!! %d\n",chnl_total_no);
//10-11-01 22:03 beijing
if( ( (chnl_total_no+1)==g_pt61850app->chnl_counts) || (g_onlyIP[0]!=0) ){
if(g_pt61850app->initNum<255)
@@ -1533,13 +1556,22 @@ void CheckNextNotConnectedChannel()
// }
//}
}
printf("check error94 !!!!!!!!!!!!!!\n");
printf("check error %s !!!!!!!!!!!!!!\n",((ied_usr_t*)chnl_usr->chnl->ied->usr_ext)->terminal_id);
if(chnl_usr->m_state == CHANNEL_CONNECTING)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
MVL_REQ_PEND* reqCtrl= chnl_usr->m_reqCtrl ;
printf("check error93 !!!!!!!!!!!!!!\n");
MVL_REQ_PEND* reqCtrl= chnl_usr->m_reqCtrl ;
printf("check error60 !!!!!!!!!!!!!!\n");
if( reqCtrl->done == SD_TRUE)
{
printf("check error92 !!!!!!!!!!!!!!\n");
if(reqCtrl->result == SD_SUCCESS)
{
printf("check error91 !!!!!!!!!!!!!!\n");
ALL_RCB_INFO *all_rcb_info;
// cout<<endl<<endl<<pChannel->GetIP()<<" CHANNEL_CONNECTED netInfo "<<chnl_usr->net_info<<endl;
echo_warn4("\nCHANNEL_CONNECTED %s:%d ,NetInfo= %x chnl_usr= %x \n",
@@ -1573,17 +1605,20 @@ void CheckNextNotConnectedChannel()
//lnk202411-1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳɹ<D3B3><C9B9>ļ<EFBFBD>¼
ied_usr_t* ied_usr = (ied_usr_t*)chnl_usr->chnl->ied->usr_ext;
connectlog_pgsql(ied_usr->terminal_code,convertMsToDateTimeString((int)sGetMsTime()),1);//1<>ɹ<EFBFBD>
}
else
{// solaris 9 <20><> 224<32><34>
printf("check error90 !!!!!!!!!!!!!!\n");
int secsSince = (int)(sGetMsTime() - chnl_usr->m_StartConnectingTime)/1000 ;
//cout<<"reqCtrl->result == FAIL, Since StartConnecting "<<secsSince<<"<22><> "<<pChannel->GetIP()<<" !!! "<<endl;
ied_usr_t* ied_usr = (ied_usr_t*)chnl_usr->chnl->ied->usr_ext;
if (g_node_id == STAT_DATA_BASE_NODE_ID || g_node_id == NEW_HIS_DATA_BASE_NODE_ID) {
//lnk202411-4
//connectlog_pgsql(ied_usr->terminal_code);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
printf("check error89 !!!!!!!!!!!!!!\n");
connectlog_pgsql(ied_usr->terminal_code,convertMsToDateTimeString((int)sGetMsTime()),0);//0ʧ<30><CAA7>
printf("check error88 !!!!!!!!!!!!!!\n");
}
printf( "reqCtrl->result == FAIL, Since StartConnecting %i <20><> ,channel IP %s:%d \n",secsSince,chnl_usr->ip_str,chnl_usr->chnl->port);
mvl_free_req_ctrl(chnl_usr->m_reqCtrl);
@@ -1595,6 +1630,7 @@ void CheckNextNotConnectedChannel()
}
else
{//
printf("check error61 !!!!!!!!!!!!!!\n");
if ( (sGetMsTime() - chnl_usr->m_StartConnectingTime) > 300*1000 ) //300*1000 ) //wait 300 secs ?????
{
ied_usr_t* ied_usr = (ied_usr_t*)chnl_usr->chnl->ied->usr_ext;
@@ -1628,16 +1664,25 @@ void CheckNextNotConnectedChannel()
else if(chnl_usr->m_state == CHANNEL_DISCONNECTED)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error99 !!!!!!!!!!!!!!\n");
if ( (sGetMsTime() - chnl_usr->m_ClosedMsTime) > NEXT_CONNECT_TIME ) //wait 10 secs
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error98 !!!!!!!!!!!!!!\n");
ST_RET ret;
ST_CHAR serverARName[32];
ied_usr_t *ied_usr = (ied_usr_t*)chnl_usr->chnl->ied->usr_ext;
apr_snprintf(serverARName,sizeof(serverARName),"%s:%d",chnl_usr->ip_str,chnl_usr->chnl->port);
if (chnl_usr->chnl->ied->cpucount != NULL && chnl_usr->chnl->ied->cpucount > 0 && ied_usr->dev_flag == ENABLE) {//2023-09-26 czy <20><><EFBFBD><EFBFBD>line count<0 <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>//lnk20250121<32><31><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ret = mms_connectToServer(ied_usr->dev_key, ied_usr->dev_series, serverARName, &(chnl_usr->net_info), &(chnl_usr->m_reqCtrl));
printf("check error73 !!!!!!!!!!!!!!\n");
if (ret == SD_SUCCESS)
{
printf("check error74 !!!!!!!!!!!!!!\n");
//if(chnl_usr->chnl->ied->id==virtual_ied){
// chnl_usr->m_state = CHANNEL_CONNECTED;
// chnl_usr->chnl->ied->status = STATUS_NORMAL;
@@ -1659,11 +1704,16 @@ void CheckNextNotConnectedChannel()
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error97 !!!!!!!!!!!!!!\n");
chnl_usr->m_ClosedMsTime = sGetMsTime();
if (g_node_id == STAT_DATA_BASE_NODE_ID || g_node_id == NEW_HIS_DATA_BASE_NODE_ID) {
//lnk202411-4
//connectlog_pgsql(ied_usr->terminal_code);//<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error96 !!!!!!!!!!!!!!\n");
connectlog_pgsql(ied_usr->terminal_code,convertMsToDateTimeString((int)sGetMsTime()),0);//0ʧ<30><CAA7>
printf("check error95 !!!!!!!!!!!!!!\n");
}
echo_warn3("FAILED: mms_connectToServer IP %s:%d ,NetInfo= %x \n", chnl_usr->ip_str, chnl_usr->chnl->port, chnl_usr->net_info);
}
@@ -1673,9 +1723,11 @@ void CheckNextNotConnectedChannel()
}//if(pChannel->m_state == CHANNEL_DISCONNECTED)
else if(chnl_usr->m_state == CHANNEL_DISCONNECTING) //need check timeout?<3F><EFBFBD><E1B2BB><EFBFBD><EFBFBD>Զͣ<D4B6><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>???
{
printf("check error92 !!!!!!!!!!!!!!\n");
MVL_REQ_PEND* reqCtrl= chnl_usr->m_reqCtrl ;
if( reqCtrl->done == SD_TRUE)
{
{
printf("check error72 !!!!!!!!!!!!!!\n");
//cout<<endl<<endl<<pChannel->GetIP()<<" CHANNEL_DISCONNECTING done"<<endl;
echo_warn3( "CHANNEL_DISCONNECTING done %s:%d,NetInfo= %x ",chnl_usr->ip_str,chnl_usr->chnl->port,chnl_usr->net_info);
mvl_free_req_ctrl(chnl_usr->m_reqCtrl);
@@ -1690,11 +1742,12 @@ void CheckNextNotConnectedChannel()
}
else
{//
printf("check error70 !!!!!!!!!!!!!!\n");
// cout<<endl<<endl<<pChannel->GetIP()<<" CHANNEL_DISCONNECTING waiting ..."<<endl;
echo_warn2( "CHANNEL_DISCONNECTING waiting ... %s,NetInfo= %x ",chnl_usr->ip_str,chnl_usr->net_info);
if ( (sGetMsTime() - chnl_usr->m_StartDisconnectingTime) > 30*1000 ) // //wait 30 secs ?????
{
{ printf("check error71 !!!!!!!!!!!!!!\n");
//cout<<pChannel->GetIP()<<"CHANNEL_DISCONNECTING reqCtrl->done == SD_false but time over 180 secs, close channel !!!"<<endl;
echo_warn2( "CHANNEL_DISCONNECTING reqCtrl->doneδ<65><CEB4><EFBFBD><EFBFBD>,but time over 180 secs, close channel IP %s,NetInfo= %x ",chnl_usr->ip_str,chnl_usr->net_info);
mvl_free_req_ctrl(chnl_usr->m_reqCtrl);
@@ -1710,6 +1763,7 @@ void CheckNextNotConnectedChannel()
}
}//if(pChannel->m_state == CHANNEL_DISCONNECTING)
//////////////////
printf("check error77 !!!!!!!!!!!!!!\n");
}
////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -2153,10 +2153,14 @@ ST_RET u_iec_rpt_ind(MVL_COMM_EVENT* event)
/* Perform 3rd decode (everything). */
mvl_info_data_to_local(event, va_num, info_va);
//<2F><><EFBFBD><EFBFBD>
printf("check error14 !!!!!!!!!!!!!!\n");
//<2F><><EFBFBD><EFBFBD><E6B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250114
pthread_mutex_lock(&mtx);
u_iec_rpt_ind_data(info_va, OptFldsData, InclusionData, rcb_info, va_total, event->net_info);
pthread_mutex_unlock(&mtx);
//<2F><><EFBFBD><EFBFBD>
printf("check error15 !!!!!!!!!!!!!!\n");
}
CLEANUP:

View File

@@ -283,11 +283,15 @@ apr_status_t run_protocol()
if (g_onlyIP[0] != 0 || g_node_id == NEW_HIS_DATA_BASE_NODE_ID || g_node_id == HIS_DATA_BASE_NODE_ID || g_node_id == RECALL_ALL_DATA_BASE_NODE_ID)
{
printf("g_onlyIP[0] != 0!\n\a");
//lnk20250211<31><31>ǰ<EFBFBD>õĽ<C3B5><C4BD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD>Ϊ999<39><39><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><E9BFB4>־<EFBFBD><D6BE>,webһ<62><D2BB>ֻ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
g_front_seg_index = 999;
}
else
{
printf("g_onlyIP[0] == 0!\n\a");
if(1 == SOCKETENABLE)
if (1 == SOCKETENABLE)
{
server_socket = socket(AF_INET, SOCK_STREAM, 0);
if (server_socket == -1) {
@@ -332,7 +336,8 @@ apr_status_t run_protocol()
printf("try_start_socket_thread \n");
try_start_socket_thread();
}
if(HTTPENABLE)
if (1 == HTTPENABLE)
{
//lnk20241029<32><39><EFBFBD><EFBFBD>http<74>߳<EFBFBD>///////////////////////////////////////////////////////////////////////////////////////////////
if (g_node_id == STAT_DATA_BASE_NODE_ID)//ͳ<>Ʋɼ<C6B2>
@@ -352,30 +357,29 @@ apr_status_t run_protocol()
try_start_http_thread();
//lnk20241029<32><39><EFBFBD><EFBFBD>http<74>߳<EFBFBD>///////////////////////////////////////////////////////////////////////////////////////////////////
}
if (1 == G_TEST_FLAG) {
//lnk<6E><6B><EFBFBD><EFBFBD>mqģ<71><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("try_start_mqtest_thread \n");
try_start_mqtest_thread(0,NULL);
}
}
if (1 == G_TEST_FLAG) {
//lnk<6E><6B><EFBFBD><EFBFBD>mqģ<71><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("try_start_mqtest_thread \n");
try_start_mqtest_thread(0,NULL);
}
//lnkɾ<6B><C9BE><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>߳<EFBFBD>
#if 0
if (1 == g_iOTLFlag) {
printf("try_start_sql_thread \n");
try_start_sql_thread();
}
else
printf("sql_thread ignore \n");
#endif
printf("try_start_ontimer_thread \n");
try_start_ontimer_thread();
//OTLTestSelect();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
///////////////////WW end
return APR_SUCCESS;
@@ -396,29 +400,59 @@ static void* APR_THREAD_FUNC rtdb_worker(apr_thread_t* thd, void* data)
/*<2A><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>rocketmq<6D><71>Ϣ lnk10-10*/
//producer_send0();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error4 !!!!!!!!!!!!!!\n");
doCommService();//<2F><><EFBFBD><EFBFBD>61850<35><30>Ϣ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error5 !!!!!!!!!!!!!!\n");
check_3s_config();//3<><33><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>̶<EFBFBD>ȡ3<C8A1><EFBFBD><EBB4A5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error6 !!!!!!!!!!!!!!\n");
pthread_mutex_lock(&mtx);
CheckNextNotConnectedChannel();//<2F><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>״̬
pthread_mutex_unlock(&mtx);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error7 !!!!!!!!!!!!!!\n");
pthread_mutex_lock(&mtx);
CheckAllConnectedChannel();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A1A2>־<EFBFBD><D6BE><EFBFBD>١<EFBFBD><D9A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pthread_mutex_unlock(&mtx);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error8 !!!!!!!!!!!!!!\n");
//check_recall_config();//<2F><><EFBFBD>ٽ<EFBFBD><D9BD>̶<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
create_recall_xml();//<2F><><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD>xml<6D>ļ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error9 !!!!!!!!!!!!!!\n");
check_ledger_update();//lnk20250113<31><33>ȡ̨<C8A1>˸<EFBFBD><CBB8>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error3 !!!!!!!!!!!!!!\n");
//Check_Recall_Config();
/*if ((g_protect_file) && (g_pt61850app->initNum>=MIN_INIT_NUM) ) {
tryCallWaveList_in_AllIeds();
}*/
//clear_old_comtrade_files();
check_disk_quota();//<2F>жϴ<D0B6><CFB4>̿ռ<CCBF>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error1 !!!!!!!!!!!!!!\n");
apr_pool_clear(g_pt61850app->tmp_pool);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("check error2 !!!!!!!!!!!!!!\n");
g_dead_lock_counter = 0;
g_thread_blocked_times = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
}

View File

@@ -97,7 +97,7 @@ struct ied_info_t{
char value[50][20];
};
//lnk20250113<31><33><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>½ṹ///////////////////////////////
#define MAX_UPDATEA_NUM 300
#define MAX_UPDATEA_NUM 10
typedef struct trigger_update_xml_t trigger_update_xml_t;
struct trigger_update_xml_t{
int work_update_num;