@@ -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 ) {
clearLogInfo ld_info - > log info[ 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- > rpt info ! = 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> */ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////