modify for ledgerupdate
This commit is contained in:
@@ -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> */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
Reference in New Issue
Block a user