modify for ledgerupdate

This commit is contained in:
lnk
2025-02-07 16:46:53 +08:00
parent 5795542cb9
commit 7549ec48bb
4 changed files with 192 additions and 94 deletions

View File

@@ -13997,7 +13997,6 @@ void SOEFileWeb_test()
/*/////////////////////////////////////////////////////////lnk10-24<32><34><EFBFBD><EFBFBD>web<65>ӿ<EFBFBD><D3BF>޸<EFBFBD>/////////////////////////////////////////////////////////////*/
/*<2A><>װC<D7B0>ɵ<EFBFBD><C9B5>õ<EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>º<EFBFBD><C2BA><EFBFBD> */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//3-д<><D0B4>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////
int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_index,int ied_take)
{
chnl_usr_t* chnl_usr = NULL;
@@ -14203,17 +14202,17 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
///////// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<D0B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ÿռ<C3BF>
if (ied_usr->LD_info[cpuno - 1]->autorecallcount != 0) {
for (int j = 0; j < ied_usr->LD_info[cpuno - 1]->autorecallcount; j++) {
if(NULL != ied_usr->LD_info[cpuno - 1]->autorecall[j]){
delete ied_usr->LD_info[cpuno - 1]->autorecall[j];
if (ied_usr->LD_info[cpuno - 1].autorecallcount != 0) {
for (int j = 0; j < ied_usr->LD_info[cpuno - 1].autorecallcount; j++) {
if(NULL != ied_usr->LD_info[cpuno - 1].autorecall[j]){
delete ied_usr->LD_info[cpuno - 1].autorecall[j];
}
}
if(NULL != ied_usr->LD_info[cpuno - 1]->autorecall){
delete ied_usr->LD_info[cpuno - 1]->autorecall;
if(NULL != ied_usr->LD_info[cpuno - 1].autorecall){
delete ied_usr->LD_info[cpuno - 1].autorecall;
}
ied_usr->LD_info[cpuno - 1]->autorecallcount = 0;
ied_usr->LD_info[cpuno - 1].autorecallcount = 0;
}
//////// //<2F><>¼ԭ<C2BC>еı<D0B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
@@ -14223,10 +14222,10 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
//<2F><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ棬<DAB4><E6A3AC><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>Ѵ<EFBFBD><D1B4>ڵ<EFBFBD>ied<65><64><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>֮ǰ<D6AE><C7B0>ʼ<EFBFBD><CABC><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>˹<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>̨<EFBFBD><CCA8>ʱû<CAB1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ied_usr->LD_info[cpuno - 1].ht_fcd != NULL) {
apr_hash_destroy(ied_usr->LD_info[cpuno - 1].ht_fcd);
apr_hash_clear(ied_usr->LD_info[cpuno - 1].ht_fcd);
}
if (ied_usr->LD_info[cpuno - 1].ht_full_fcda != NULL) {
apr_hash_destroy(ied_usr->LD_info[cpuno - 1].ht_full_fcda);
apr_hash_clear(ied_usr->LD_info[cpuno - 1].ht_full_fcda);
}
ied_usr->LD_info[cpuno - 1] = line_info;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><E6A3AC>Ϊ<EFBFBD><CEAA>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD>ԭ<EFBFBD>е<EFBFBD>ָ<EFBFBD><D6B8>
@@ -14251,12 +14250,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
}
return 0;
}
//3-д<><D0B4>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>///////////////////////////////////
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>//////////////////////////////
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>///////////////////////////////////
//6-init_rem_dib_table//////////////////////////////
//6-init_rem_dib_table///////////////////////////////////
////////////////////////////////////////////////////////////////////////̨<>˸<EFBFBD><CBB8>¼<EFBFBD>¼<EFBFBD><C2BC>־
// <20><>ȡ<EFBFBD><C8A1>ǰʱ<C7B0><EFBFBD><E4B2A2>ʽ<EFBFBD><CABD>Ϊ "YYYY-MM-DD HH:MM:SS"
std::string get_current_time() {
@@ -14273,7 +14267,7 @@ void write_log_entry(std::ofstream &log_file, const std::string &action, const s
log_file << terminal_id << "\t" << action << "time:" << current_time << "\n";
}
// <20><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>־
// <20><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
void create_ledger_log(trigger_update_xml_t* ledger_update_xml) {
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>
@@ -14402,13 +14396,12 @@ int parse_rpt_log_ini_one(ied_t* ied)
}
for (cpuno = 0; cpuno < ied->cpucount; cpuno++) {//<2F><><EFBFBD><EFBFBD>iedʵ<64>ʵļ<CAB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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
char str[256];
char* tmp = Get_IED(ied_usr->dev_type);
qDebug() << tmp << endl;
//<2F><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ڴ<EFBFBD>lnk20250122
apr_snprintf(str, sizeof(str), tmp, cpuno + 1);
//ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);//lnk20250122
// <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>
@@ -14417,9 +14410,8 @@ int parse_rpt_log_ini_one(ied_t* ied)
} 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));
}
//<2F><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ڴ<EFBFBD>lnk20250122
delete[] tmp;
delete[] tmp;//Get_IED<45>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ棬ʹ<E6A3AC>ú<EFBFBD>ɾ<EFBFBD><C9BE>
//<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());
@@ -14466,7 +14458,7 @@ apr_status_t init_rem_dib_table_one(ied_t *ied)
pos = ied_usr->dev_idx;
for(chnl_no=0 ; chnl_no<ied->chncount; chnl_no++) {
chnl_usr = ied->channel[chnl_no].connect;
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;
ip.s_addr = htonl(ied->channel[chnl_no].addr);
strcpy(chnl_usr->ip_str,inet_ntoa(ip));
@@ -14494,6 +14486,7 @@ void clearLogInfo(loginfo_t *loginfo) {
loginfo->IntgPd = 0;
loginfo->reasonCode = 0;
loginfo->TrgOpt = 0;
loginfo->start_time = 0;
loginfo->end_time = 0;
loginfo->need_steady = 0;
@@ -14516,20 +14509,29 @@ void clearRptInfo(rptinfo_t *rptinfo) {
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ա
rptinfo->instanceNeedSuffix = 0;
rptinfo->TrgOpt = 0;
memset(rptinfo->OptFlds, 0, sizeof(rptinfo->OptFlds));
rptinfo->IntgPd = 0;
rptinfo->report_PQ_type = 0;
rptinfo->rpt_registered = 0;
rptinfo->chnl_id = 0;
rptinfo->m_LastDataTime = 0;
rptinfo->m_LastGITime = 0;
rptinfo->m_LastRegisterFailedTime = 0;
rptinfo->m_LastUnRegisterFailedTime = 0;
memset(rptinfo->m_EntryID, 0, sizeof(rptinfo->m_EntryID));
rptinfo->m_curRptSuffix = 0;
rptinfo->count = 0;
rptinfo->rptNo = 0;
rptinfo->flickerflag = 0;
rptinfo->pstflag = 0;
// <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
@@ -14540,10 +14542,10 @@ void clearRptInfo(rptinfo_t *rptinfo) {
// <20><><EFBFBD><EFBFBD> LD_info <20><>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>򸸼<EFBFBD>
//rptinfo->LD_info = nullptr;
// <20><> RCBC_INFO <20><EFBFBD><E1B9B9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><> RCBC_INFO <20><EFBFBD><E1B9B9>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
if (rptinfo->m_rcb_info != nullptr) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9B9><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
rptinfo->m_rcb_info = nullptr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><D5A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ر<EFBFBD>ʱ<EFBFBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rptinfo->m_rcb_info = nullptr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><D5A3><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ر<EFBFBD>ʱ<EFBFBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD>
}
}
@@ -14552,41 +14554,41 @@ void clearLDInfo(LD_info_t *ld_info) {
std::cout << "ldinfo is null" << std::endl;
return;
}
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ա
if (ld_info->loginfo != nullptr) {
for (int i = 0; i < ld_info->logcount; ++i) {
if (ld_info->loginfo[i] != nullptr) {
clearLogInfold_info->loginfo[i]); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ƿ<EFBFBD>
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>iedָ<64><D6B8>
//<2F><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
if (ld_info->rptinfo != nullptr) {
for (int i = 0; i < ld_info->rptcount; ++i) {
if (ld_info->rptinfo[i] != nullptr) {
clearRptInfo(ld_info->rptinfo[i]); //<2F><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD>
}
}
}
std::cout << "clean RptInfo!!!" << std::endl;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
if (ld_info->loginfo != nullptr) {
for (int i = 0; i < ld_info->logcount; ++i) {
if (ld_info->loginfo[i] != nullptr) {
clearLogInfo(ld_info->loginfo[i]); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ƿ<EFBFBD>
}
}
}
std::cout << "clean loginfo_t!!!" << std::endl;
//<2F><><EFBFBD>ղ<EFBFBD><D5B2><EFBFBD>
if (ld_info->autorecall != nullptr) {
for (int i = 0; i < ld_info->autorecallcount; ++i) {
if (ld_info->autorecall[i] != nullptr) {
memset(ld_info->autorecall[i], 0, sizeof(autorecall_t));
delete ld_info->autorecall[i]; //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ؿռ<D8BF>
delete ld_info->autorecall[i]; //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ؿռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>Ҫ<EFBFBD>ͷ<EFBFBD>
}
}
delete ld_info->autorecall; //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
}
std::cout << "clean autorecall_t!!!" << std::endl;
if (ld_info->rptinfo != nullptr) {
for (int i = 0; i < ld_info->rptcount; ++i) {
if (ld_info->rptinfo[i] != nullptr) {
memset(ld_info->rptinfo[i], 0, sizeof(rptinfo_t));
}
}
}
std::cout << "clean rptinfo_t!!!" << std::endl;
if (ld_info->ht_fcd != nullptr) {
apr_hash_clear(ld_info->ht_fcd);
}
@@ -14595,6 +14597,9 @@ void clearLDInfo(LD_info_t *ld_info) {
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ա
if (ld_info->name != nullptr) {
memset(ld_info->name, 0, sizeof(char) * 256);
}
if (ld_info->LD_name != nullptr) {
memset(ld_info->LD_name, 0, sizeof(char) * 256);
}
@@ -14614,22 +14619,53 @@ void clearLDInfo(LD_info_t *ld_info) {
memset(ld_info->terminal_code, 0, sizeof(char) * 256);
}
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> LD_info_t <20><EFBFBD><E1B9B9><EFBFBD>еķ<D0B5>ָ<EFBFBD>벿<EFBFBD><EFBFBD>
ld_info->cpuno = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
ld_info->time = 0; //̨<>˸<EFBFBD><CBB8><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>0
ld_info->update_flag = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>־<EFBFBD><D6BE><EFBFBD>ݲ<EFBFBD>ʹ<EFBFBD><CAB9>
ld_info->rptRecvFlag = 0;//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>־
ld_info->rptRecvCheckFlag = 0;
ld_info->rptPstRecvFlag = 0;
ld_info->rptPstRecvCheckFlag = 0;
ld_info->read_flag = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
ld_info->rptcount = 0;
ld_info->read_flag = 0;
ld_info->logcount = 0;
ld_info->autorecallflag = 0;
ld_info->autorecallcount = 0;
//ld_info->group = 0; //<2F><>ʹ<EFBFBD><CAB9>
//<2F><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
ld_info->line_id = 0;
ld_info->real_data = 0;
ld_info->soe_data = 0;
ld_info->limit = 0;
ld_info->count = 0;
ld_info->SubV_Index = 0;
ld_info->Dev_Index = 0;
ld_info->Sub_Index = 0;
ld_info->GD_Index = 0;
ld_info->RDRE_FltNum = 0;
//ld_info->SubV_Index = 0; //<2F><>ʹ<EFBFBD><CAB9>
//ld_info->Dev_Index = 0; //<2F><>ʹ<EFBFBD><CAB9>
//ld_info->Sub_Index = 0; //<2F><>ʹ<EFBFBD><CAB9>
//ld_info->GD_Index = 0; //<2F><>ʹ<EFBFBD><CAB9>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>
for (int i = 0; i < QVVR_NUM; ++i) {
ld_info->qvvr[i].used_status = 0;
ld_info->qvvr[i].QVVR_start = 0;
ld_info->qvvr[i].QVVR_type = 0;
ld_info->qvvr[i].QVVR_time = 0;
ld_info->qvvr[i].QVVR_PerTime = 0.0f;
ld_info->qvvr[i].QVVR_Amg = 0.0f;
memset(ld_info->qvvr[i].QVVR_Rptname, 0, sizeof(ld_info->qvvr[i].QVVR_Rptname)); // <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
ld_info->qvvr[i].timestamp = 0;
}
ld_info->qvvr_idx = 0;
memset(ld_info->FltNum, 0, sizeof(ld_info->FltNum));
ld_info->RDRE_FltNum = 0; //¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
@@ -14644,24 +14680,24 @@ void clearIedUsr(ied_usr_t *ied_usr) {
//ied_usr->dev_idx = 0;//<2F><><EFBFBD><EFBFBD>index
ied_usr->dev_flag = UNUSED;
ied_usr->last_call_wavelist_time = 0;
ied_usr->time = 0;
ied_usr->update_flag = 0;//<2F>ݲ<EFBFBD>ʹ<EFBFBD><CAB9>
ied_usr->time = 0; //̨<>˸<EFBFBD><CBB8><EFBFBD>ʱ<EFBFBD><CAB1>
ied_usr->update_flag = 0; //̨<EFBFBD>˸<EFBFBD><EFBFBD>±<EFBFBD>־<EFBFBD>ݲ<EFBFBD>ʹ<EFBFBD><EFBFBD>
// <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] != nullptr) {
clearLDInfo(ied_usr->LD_info[i]);
if (&ied_usr->LD_info[i] != NULL) {
clearLDInfo(&ied_usr->LD_info[i]);
}
}
}
if (ied_usr->cookie != nullptr) {
if (ied_usr->cookie != nullptr) { //<2F><>ʹ<EFBFBD><CAB9>
std::cout << "cookie not null" << std::endl;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>벿<EFBFBD><EBB2BF>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>벿<EFBFBD>֣<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(ied_usr->dev_type, 0, sizeof(ied_usr->dev_type));
memset(ied_usr->dev_key, 0, sizeof(ied_usr->dev_key));
memset(ied_usr->dev_series, 0, sizeof(ied_usr->dev_series));
@@ -14674,45 +14710,88 @@ void clearIedUsr(ied_usr_t *ied_usr) {
memset(ied_usr->terminal_code, 0, sizeof(ied_usr->terminal_code));
}
// <20><><EFBFBD><EFBFBD> channel <20><> cpuinfo <20>ķ<EFBFBD>ָ<EFBFBD>벿<EFBFBD><EBB2BF>
void clear_channel_and_cpuinfo(byte_t chncount, channel_t *channel, byte_t cpucount, cpuinfo_t *cpuinfo) {
// <20><><EFBFBD><EFBFBD> channel <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ÿ<EFBFBD><C3BF>Ԫ<EFBFBD>صķ<D8B5>ָ<EFBFBD><D6B8><EFBFBD>ֶ<EFBFBD>
for (byte_t i = 0; i < chncount && (&channel[i] != NULL); ++i) {
channel[i].master = 0;
channel[i].channel_type = 0;
memset(channel[i].addr_str, 0, LONGNAME);
channel[i].addr = 0;
channel[i].port = 0;
channel[i].status = 0;
channel[i].last_ticks = 0;
channel[i].last_send_ticks = 0;
channel[i].ied_id = 0;
// <20><><EFBFBD><EFBFBD> channel <20><><EFBFBD><EFBFBD> chnl_usr_t <20><><EFBFBD><EFBFBD>
// <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBB1BE>
}
// <20><><EFBFBD><EFBFBD> cpuinfo <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ÿ<EFBFBD><C3BF>Ԫ<EFBFBD>صķ<D8B5>ָ<EFBFBD><D6B8><EFBFBD>ֶ<EFBFBD>
for (byte_t i = 0; i < cpucount && (&cpuinfo[i] != NULL); ++i) {
cpuinfo[i].addr = 0;
cpuinfo[i].status = 0;
cpuinfo[i].templ = 0;
memset(cpuinfo[i].name, 0, LONGNAME);
cpuinfo[i].last_gi = 0;
cpuinfo[i].last_gi_send = 0;
cpuinfo[i].next_gi_send = 0;
cpuinfo[i].last_ticks = 0;
cpuinfo[i].last_send_ticks = 0;
}
}
void clearIed(ied_t *ied) {
if (ied == nullptr) {
return;
}
// <20><><EFBFBD><EFBFBD> channel <20><><EFBFBD><EFBFBD> chnl_usr_t <20><><EFBFBD><EFBFBD>
if (ied->channel != nullptr && ied->channel[0].connect != nullptr) {
chnl_usr_t *chnl_usr = (chnl_usr_t*)ied->channel[0].connect;
memset(chnl_usr, 0, sizeof(chnl_usr_t));
chnl_usr->chnl_id = 0;
chnl_usr->m_state = CHANNEL_DISCONNECTED;
chnl_usr->m_ClosedMsTime = NEXT_CONNECT_TIME * (-1);
}
// <20><><EFBFBD><EFBFBD> ied_t <20><>id
ied->id = 0;
//ied->flags = 0; //δʹ<CEB4><CAB9>
//ied->type = 0; //δʹ<CEB4><CAB9>
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ied_t <20><EFBFBD><E1B9B9><EFBFBD>ķ<EFBFBD>ָ<EFBFBD>벿<EFBFBD><EBB2BF>
ied->id = 0;
ied->flags = 0;
ied->type = 0;
ied->chncount = 0;
ied->cpucount = 0;
ied->station = 0;
ied->node = 0;
ied->frequency = 0;
ied->delay = 0;
ied->count = 0;
ied->systoken_st = 0;
ied->index = 0;
ied->status = {0}; // <20><><EFBFBD><EFBFBD> status_t <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ied->last_ticks = 0;
ied->last_gi = 0;
//<2F><><EFBFBD><EFBFBD>channel //<2F><><EFBFBD><EFBFBD>cpuinfo
clear_channel_and_cpuinfo(ied->chncount,ied->channel,ied->cpucount,ied->cpuinfo);
ied->chncount = 0; //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
ied->cpucount = 0; //<2F><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memset(ied->name, 0, LONGNAME);
//ied->station = 0; //δʹ<CEB4><CAB9>
//ied->node = 0; //δʹ<CEB4><CAB9>
//ied->frequency = 0; //δʹ<CEB4><CAB9>
//ied->delay = 0; //δʹ<CEB4><CAB9>
//ied->count = 0; //δʹ<CEB4><CAB9>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>岿<EFBFBD><E5B2BF>δʹ<CEB4><CAB9>
//ied->groups = NULL;
//ied->htgroups = NULL;
//ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>δʹ<CEB4><CAB9>
//ied->systoken_st = 0;
//ied->index = 0; //δʹ<CEB4><CAB9>
ied->status = STATUS_NOINIT; //<2F>豸״̬<D7B4><CCAC>Ϊδ<CEAA><CEB4>ʼ<EFBFBD><CABC>
//ied->last_ticks = 0; //δʹ<CEB4><CAB9>
//ied->last_gi = 0; //δʹ<CEB4><CAB9>
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD>벿<EFBFBD><EBB2BF>
if (ied->usr_ext != nullptr) {
ied_usr_t *ied_usr = (ied_usr_t*)ied->usr_ext;
clearIedUsr(ied_usr);
}
memset(ied->name, 0, sizeof(ied->name));
memset(ied->channel, 0, sizeof(ied->channel));
memset(ied->cpuinfo, 0, sizeof(ied->cpuinfo)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ied->sys_ext != nullptr) {
//<2F><>ʹ<EFBFBD><EFBFBD>
}
if (ied->app_ext != nullptr) {
//<2F><>ʹ<EFBFBD><CAB9>
}
}
/*<2A><>װC<D7B0>ɵ<EFBFBD><C9B5>õ<EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>º<EFBFBD><C2BA><EFBFBD> */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -106,7 +106,15 @@ ST_VOID doCommService ();
ST_VOID init_log_cfg (ST_VOID);
ST_VOID set_rem_dib_table_size (ST_INT size);
//lnk20250207
#ifdef __cplusplus
extern "C" {
#endif
ST_VOID add_rem_dib_table (ST_INT pos,ST_CHAR *remAr,unsigned short port);
#ifdef __cplusplus
}
#endif
ST_RET mms_connectToServer (ST_CHAR * dev_key,ST_CHAR *dev_series, ST_CHAR *serverARName,
MVL_NET_INFO **clientNetInfo, MVL_REQ_PEND **reqCtrl);

View File

@@ -885,7 +885,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
if(ied_unused != NULL){
ied_usr_unused = (ied_usr_t*)ied_unused->usr_ext;
ied = ied_unused; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iedָ<64><D6B8><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>δʹ<CEB4>õ<EFBFBD>ied<65>ռ<EFBFBD>
terminal_index = ied_usr_unused->dev_idx //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ied<65>ı<EFBFBD><C4B1>ţ<EFBFBD><C5A3><EFBFBD>g_node<64><65><EFBFBD>±<EFBFBD>
terminal_index = ied_usr_unused->dev_idx; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ied<65>ı<EFBFBD><C4B1>ţ<EFBFBD><C5A3><EFBFBD>g_node<64><65><EFBFBD>±<EFBFBD>
//<2F><>ӡ<EFBFBD><D3A1>ʾ
printf("!!!!!!!!ied index:%d ,origin terminal_id:%s has been taken!!!!!!!!!!\n",ied_usr_unused->dev_idx,ied_usr_unused->terminal_id);
@@ -981,7 +981,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>///////////////////////////////////
//6-init_rem_dib_table//////////////////////////////
init_rem_dib_table_one(ied)
init_rem_dib_table_one(ied);
//6-init_rem_dib_table///////////////////////////////////
}
@@ -1003,7 +1003,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////////////////////////////////////////////
for(chnl_no=0 ; chnl_no<ied->chncount; chnl_no++) {
chnl_usr = (chnl_usr_t*)ied->channel[chnl_no].connect;
if (chnl_usr->m_state!=CHANNEL_CONNECTED){
if (chnl_usr->m_state!=CHANNEL_CONNECTED){//<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>ӵ<EFBFBD>ͨ<EFBFBD><CDA8>
continue;
}
closeChannel(chnl_usr);//<2F>رո<D8B1><D5B8><EFBFBD>̨<EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
@@ -1012,7 +1012,11 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/////////////////////////////////////////////////////////////////////////////////
//3-д<><D0B4>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////
ied_usr = ied->usr_ext;
int ret = update_one_terminal_ledger(update,i,ied,ied_usr->dev_idx);
//д<><D0B4>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
clearIedUsr(ied_usr);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dev_idx
int ret = update_one_terminal_ledger(update,i,ied,ied_usr->dev_idx,1);//1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ied
if(ret){
printf("ledger can not be update!!!!!quit process!!!!!\n");
return 0;
@@ -1043,11 +1047,11 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
//4-<2D><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD>///////////////////////////////////
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>//////////////////////////////
parse_rpt_log_ini_one(ied);
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>///////////////////////////////////
//6-init_rem_dib_table//////////////////////////////
init_rem_dib_table_one(ied);
//6-init_rem_dib_table///////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////////////////////////////////////////////
}
@@ -1059,7 +1063,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
}
///////////////////////////////////////////////////////////////////////////////delete
update = ledger_update_xml->delete_updates; //<2F><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>̨<EFBFBD>˲<EFBFBD><CBB2><EFBFBD>
update_num = ledger_update_xml->delete_update_num;
update_num = ledger_update_xml->delete_update_num; //ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("delete ledger num:%d\n",update_num);
for (i=0; i<update_num; i++){ //<2F><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>
@@ -1067,7 +1071,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
if(update[i].terminal_id != NULL){ //<2F><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>̨<EFBFBD><CCA8>
printf("delete ledger of %s\n",update[i].terminal_id);
ied = find_ied_from_terminal_id(update[i].terminal_id); //ͨ<><CDA8><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD><D0B5>ն˺<D5B6><CBBA>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>
ied = find_ied_from_terminal_id(update[i].terminal_id); //ͨ<><CDA8><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD><D0B5>ն˺<D5B6><CBBA>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (ied){
printf("find ied by terminal_id, terminal already exsist\n");
new_in_work_found = TRUE; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>е<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1078,12 +1082,13 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
if (chnl_usr->m_state!=CHANNEL_CONNECTED){ //<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ӵ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>һ<EFBFBD><D2BB><EFBFBD>ն<EFBFBD>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB>
continue;
}
closeChannel(chnl_usr);//<2F>رո<D8B1><D5B8><EFBFBD>̨<EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
closeChannel(chnl_usr);//<2F>رո<D8B1><D5B8><EFBFBD>̨<EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>򲻻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻᱻע<EFBFBD><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////////////////////////////////////////////
//3-ɾ<><C9BE>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>Ҫɾ<D2AA><C9BE> g_node->clients <20>е<EFBFBD>ij<EFBFBD><C4B3> ied<65><64>index Ϊɾ<CEAA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int index_to_remove = 0;
ied_t* ied_find = NULL;
@@ -1105,8 +1110,10 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
if(ied_to_remove == ied){//ͨ<><CDA8><EFBFBD>ն<EFBFBD>id<69>ҵ<EFBFBD><D2B5><EFBFBD>iedӦ<64><D3A6>Ҳָ<D2B2><D6B8>g_node<64><65>Ӧ<EFBFBD><D3A6><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
printf("this ied is ied_to_remove\n");
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
clearIed(ied_to_remove);
//3-ɾ<><C9BE>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>///////////////////////////////////
@@ -1115,11 +1122,11 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
//4-<2D><><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>ļ<EFBFBD>///////////////////////////////////
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ鱣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ied<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied<EFBFBD><EFBFBD>Ӧ<EFBFBD>Ŀ<EFBFBD><EFBFBD>ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//5-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>///////////////////////////////////
//6-init_rem_dib_table//////////////////////////////
//rem_dib_table<6C><65><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>̨<EFBFBD><CCA8>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>
//6-init_rem_dib_table///////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//////////////////////////////////////////////////////////////////////
}

View File

@@ -478,6 +478,10 @@ void create_ledger_log(trigger_update_xml_t* ledger_update_xml);
ied_t* find_ied_unused();
int parse_rpt_log_ini_one(ied_t* ied);
apr_status_t init_rem_dib_table_one(ied_t *ied);
void clearIed(ied_t *ied);
void clearIedUsr(ied_usr_t *ied_usr);
////////////////////////////////
int parse_3s_xml(trigger_3s_xml_t* trigger_3s_xml);
int create_3s_xml(trigger_3s_xml_t* trigger_3s_xml);