modify for ledgerupdate
This commit is contained in:
@@ -3484,21 +3484,21 @@ int GetServerIndexFromDB() //
|
||||
void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* log_cfg_strlist, char* type)
|
||||
{
|
||||
char* tmp;
|
||||
tmp = Get_xmlpath(type);
|
||||
if (tmp == NULL) {
|
||||
tmp = Get_xmlpath(type);//<2F><>ȡģ<C8A1><C4A3>id<69><64>
|
||||
if (tmp == NULL) {//<2F>Ҳ<EFBFBD><D2B2><EFBFBD>ģ<EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD>ϵ<EFBFBD><CFB5>ͺź<CDBA><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
//zw<7A><EFBFBD> 2023 - 8 - 15 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML ԭ<><D4AD><EFBFBD><EFBFBD>RptLogCfg.iniȡ<69><C8A1>
|
||||
if (strcmp(subdir, "cfg_stat_data") == 0)
|
||||
{
|
||||
QString devtype;
|
||||
devtype.append(type);
|
||||
QString devtype2;
|
||||
devtype2.append("HL-6810");
|
||||
devtype2.append("HL-6810");//<2F><>̬Ĭ<CCAC><C4AC><EFBFBD>ͺ<EFBFBD>HL-6810
|
||||
|
||||
qDebug() << "cfg_stat_data";
|
||||
QString xml_dir = QString("../") + QString("etc/"); //Linux<75>µ<EFBFBD><C2B5><EFBFBD>·<EFBFBD><C2B7>
|
||||
|
||||
QDomDocument doc; //<2F>½<EFBFBD>QDomDocument<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>XML<4D>ĵ<EFBFBD>
|
||||
QFile file(xml_dir + QString("JiangSu_Config.xml"));
|
||||
QFile file(xml_dir + QString("JiangSu_Config.xml"));//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>JiangSu_Config.xml
|
||||
if (!file.open(QIODevice::ReadOnly | QFile::Text)) //<2F><>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>xml
|
||||
{
|
||||
qDebug() << "Read RPT Error1";
|
||||
@@ -3622,7 +3622,7 @@ void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* l
|
||||
log_cfg_strlist->append(log_cfg_str);
|
||||
}
|
||||
}
|
||||
else
|
||||
else//<2F>ͺŲ<CDBA>Ϊ<EFBFBD>ն<EFBFBD>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
{
|
||||
QString tmppath;
|
||||
tmppath.append("/FeProject/dat/").append(tmp).append(".xml");
|
||||
@@ -3685,7 +3685,7 @@ void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* l
|
||||
if (node2.isElement())
|
||||
{
|
||||
rpt_cfg_strlist->append(node2.toElement().attribute("ReportControl"));
|
||||
qDebug() << node2.toElement().attribute("ReportControl").toAscii().data();
|
||||
qDebug() << node2.toElement().attribute("ReportControl").toAscii().data();//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3697,7 +3697,7 @@ void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* l
|
||||
n = n.nextSibling();
|
||||
}
|
||||
|
||||
QString log_cfg_str = "LLN0$LG$lcStatisticData,dsStatisticData,PQM1,0,600000,1,0,0,0";
|
||||
QString log_cfg_str = "LLN0$LG$lcStatisticData,dsStatisticData,PQM1,0,600000,1,0,0,0";//<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
||||
log_cfg_strlist->append(log_cfg_str);
|
||||
}
|
||||
|
||||
@@ -3759,6 +3759,7 @@ void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* l
|
||||
n = n.nextSibling();
|
||||
}
|
||||
|
||||
//ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>־
|
||||
//QString log_cfg_str = "LLN0$LG$lcStatisticData,dsStatisticData,PQM1,0,600000,1,0,0,0";
|
||||
//log_cfg_strlist->append(log_cfg_str);
|
||||
}
|
||||
@@ -3799,7 +3800,7 @@ void parse_one_rpt_log_ini(int idx, QStringList* rpt_cfg_strlist, QStringList* l
|
||||
if (node.isElement())
|
||||
{
|
||||
QString strTag2 = node.toElement().tagName(); //DataType<70>ڵ<EFBFBD>
|
||||
if ("ReportEvent" == strTag2)
|
||||
if ("ReportEvent" == strTag2)//<2F><><EFBFBD>ֵ<EFBFBD>
|
||||
{
|
||||
QDomNodeList list2 = node.childNodes(); //<2F><><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>DataType<70><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD><DAB5><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
for (int i2 = 0; i2 < list2.count(); i2++) //<2F><><EFBFBD><EFBFBD> Monitor<6F>б<EFBFBD>
|
||||
@@ -3887,7 +3888,7 @@ int parse_rpt_log_ini()
|
||||
|
||||
apr_snprintf(buf, sizeof(buf), "%s", rpt_cfg_strlists[type]->at(i).toAscii().constData());
|
||||
|
||||
fill_rptctrl_by_cfg(LD_info, i, buf);
|
||||
fill_rptctrl_by_cfg(LD_info, i, buf);//
|
||||
|
||||
}
|
||||
|
||||
@@ -4905,7 +4906,7 @@ void process_recall_config(recall_xml_t* recall_xml)
|
||||
}
|
||||
else {
|
||||
printf("\n Find LD_info != null \n");
|
||||
if (LD_info->autorecallflag != 0 || LD_info->autorecallcount == 0) {
|
||||
if (LD_info->autorecallflag != 0 || LD_info->autorecallcount == 0) { //
|
||||
if (LD_info->autorecallcount != 0) {
|
||||
for (int j = 0; j < LD_info->autorecallcount; j++) {
|
||||
delete LD_info->autorecall[j];
|
||||
@@ -12221,7 +12222,7 @@ int parse_device_cfg_web()
|
||||
return APR_ENOMEM;
|
||||
|
||||
ied_usr->dev_flag = ENABLE;//<2F>ն<EFBFBD><D5B6><EFBFBD>Ч
|
||||
ied->chncount = 1;
|
||||
ied->chncount = 1;//<2F>豸ͨ<E8B1B8>Ŷ˿<C5B6><CBBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ<C4BF><D5BC><EFBFBD><EFBFBD><EFBFBD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ied<65><64>
|
||||
ied->channel = (channel_t*)apr_pcalloc(g_cfg_pool, sizeof(channel_t) * ied->chncount);//ͨ<>Žṹ<C5BD><E1B9B9>g_cfg_pool<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣺<D5BC>ն˵<D5B6>ip<69>˿ڵ<CBBF>
|
||||
ied->channel[0].ied = ied;
|
||||
@@ -14039,7 +14040,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
printf("ied_usr->dev_key (default): %s\n", ied_usr->dev_key);
|
||||
}
|
||||
|
||||
ied_usr->dev_idx = terminal_index; //<2F>ն<EFBFBD><D5B6>ź<EFBFBD>
|
||||
ied_usr->dev_idx = terminal_index; //<2F>ն<EFBFBD><D5B6>źţ<EFBFBD>g_node<EFBFBD>±<EFBFBD>
|
||||
printf("dev_idx: %d\n", ied_usr->dev_idx);
|
||||
|
||||
ied->channel[0].channel_type = CHANNEL_TYPE_IPV4; // channel
|
||||
@@ -14104,7 +14105,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
chnl_usr = (chnl_usr_t*)ied->channel[0].connect;
|
||||
}
|
||||
|
||||
chnl_usr->chnl = &(ied->channel[0]);
|
||||
chnl_usr->chnl = &(ied->channel[0]);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ԭ<EFBFBD><D4AD><EFBFBD>ʹ<EFBFBD><CDB4>ڵģ<DAB5><C4A3>ٸ<EFBFBD>ֵһ<D6B5><D2BB>
|
||||
chnl_usr->chnl_id = 0;
|
||||
chnl_usr->m_state = CHANNEL_DISCONNECTED;
|
||||
chnl_usr->m_ClosedMsTime = NEXT_CONNECT_TIME * (-1);
|
||||
@@ -14176,12 +14177,22 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
// <20><><EFBFBD><EFBFBD> LD_info
|
||||
if (ied && ied->usr_ext && line_info.cpuno && ((int)line_info.cpuno < 10)) {
|
||||
char str[256];
|
||||
byte_t cpuno = line_info.cpuno;
|
||||
byte_t cpuno = line_info.cpuno; //ʹ<><CAB9><EFBFBD><EFBFBD>̨<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><DFBC><EFBFBD><EFBFBD>кţ<D0BA><C5A3><EFBFBD>ʹ<EFBFBD><CAB9>ԭ<EFBFBD><D4AD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>µIJ<C2B5><C4B2>ֻᱻ<D6BB><E1B1BB><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʱû<CAB1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᱻʹ<E1B1BB><CAB9>
|
||||
printf("cpuno: %d\n", line_info.cpuno);
|
||||
printf("index cpuno: %d\n", cpuno - 1);
|
||||
|
||||
ied_usr = (ied_usr_t*)ied->usr_ext;
|
||||
ied_usr->LD_info[cpuno - 1] = line_info; // cpunoĬ<6F><C4AC><EFBFBD><EFBFBD>1
|
||||
ied_usr->LD_info[cpuno - 1].ied = ied;
|
||||
//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><EFBFBD>
|
||||
//ied_usr->LD_info[cpuno - 1].ied = ied; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>棬<EFBFBD><E6A3AC>Ϊ<EFBFBD><CEAA>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD>ԭ<EFBFBD>е<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>е<EFBFBD>ldname
|
||||
char *ldname = NULL;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еı<D0B5><C4B1>桢<EFBFBD><E6A1A2>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||||
loginfo_t **loginfo = NULL;
|
||||
rptinfo_t **rptinfo = NULL;
|
||||
|
||||
//<2F><>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ڴ棬<DAB4><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>ɾ<EFBFBD><C9BE>ʱ<EFBFBD><CAB1>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
apr_snprintf(str, sizeof(str), "PQMonitorPQM%d", cpuno);
|
||||
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD> LD_name<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
if (ied_usr->LD_info[cpuno - 1].LD_name == NULL) {
|
||||
@@ -14189,21 +14200,53 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
} else {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB><EFBFBD><EFBFBD>ԭ<EFBFBD>пռ<D0BF><D5BC>ϸ<EFBFBD><CFB8><EFBFBD>
|
||||
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, sizeof(ied_usr->LD_info[cpuno - 1].LD_name));
|
||||
}
|
||||
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
|
||||
|
||||
// <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><EFBFBD><EFBFBD><EFBFBD>ʱû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (ied_usr->LD_info[cpuno - 1].ht_fcd == NULL) {
|
||||
ied_usr->LD_info[cpuno - 1].ht_fcd = apr_hash_make(g_init_pool);
|
||||
///////// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ÿռ<EFBFBD>
|
||||
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;
|
||||
}
|
||||
|
||||
ied_usr->LD_info[cpuno - 1]->autorecallcount = 0;
|
||||
}
|
||||
|
||||
//////// //<2F><>¼ԭ<C2BC>еı<D0B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||||
loginfo = ied_usr->LD_info[cpuno - 1].loginfo?ied_usr->LD_info[cpuno - 1].loginfo:NULL;
|
||||
rptinfo = ied_usr->LD_info[cpuno - 1].rptinfo?ied_usr->LD_info[cpuno - 1].rptinfo:NULL;
|
||||
|
||||
|
||||
//<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);
|
||||
}
|
||||
if (ied_usr->LD_info[cpuno - 1].ht_full_fcda == NULL) {
|
||||
ied_usr->LD_info[cpuno - 1].ht_full_fcda = apr_hash_make(g_init_pool);
|
||||
if (ied_usr->LD_info[cpuno - 1].ht_full_fcda != NULL) {
|
||||
apr_hash_destroy(ied_usr->LD_info[cpuno - 1].ht_full_fcda);
|
||||
}
|
||||
ied_usr->LD_info[cpuno - 1].rptcount = 0;
|
||||
|
||||
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>
|
||||
ied_usr->LD_info[cpuno - 1].ied = ied; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>棬<EFBFBD><E6A3AC>Ϊ<EFBFBD><CEAA>Ҫ<EFBFBD><D2AA><EFBFBD>ж<EFBFBD>ԭ<EFBFBD>е<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
ied_usr->LD_info[cpuno - 1].LD_name = ldname;//<2F><>¼ԭ<C2BC>еĻ<D0B5><C4BB><EFBFBD><EFBFBD>µ<EFBFBD>ldname
|
||||
|
||||
ied_usr->LD_info[cpuno - 1].ht_fcd = apr_hash_make(g_init_pool); //<2F><><EFBFBD>´<EFBFBD><C2B4><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3>
|
||||
ied_usr->LD_info[cpuno - 1].ht_full_fcda = apr_hash_make(g_init_pool);
|
||||
|
||||
ied_usr->LD_info[cpuno - 1].rptcount = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ied_usr->LD_info[cpuno - 1] = line_info;ʱӦ<CAB1>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ<C4BF><D5BC><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
printf("rptcount: %d\n", ied_usr->LD_info[cpuno - 1].rptcount);
|
||||
if (cpuno > ied->cpucount) {
|
||||
ied->cpucount = cpuno;//<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>ǵIJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ᱣ֤<EFBFBD><EFBFBD><EFBFBD>Dz<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_usr->LD_info[cpuno - 1].loginfo = loginfo;
|
||||
ied_usr->LD_info[cpuno - 1].rptinfo = rptinfo;
|
||||
|
||||
if (cpuno > ied->cpucount) {//<2F><>̨<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><DFBC>Ŵ<EFBFBD><C5B4><EFBFBD>iedԭ<64>е<EFBFBD>cpu<70><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cpu<70><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ж<EFBFBD><D0B6>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ied->cpucount = cpuno;
|
||||
}
|
||||
}
|
||||
// ied_usr->LD_info[j] = line_info;
|
||||
printf("Monitor Info [ID: %s, Name: %s] saved in LD_info\n", line_info.mp_id, line_info.name);
|
||||
}
|
||||
return 0;
|
||||
@@ -14333,6 +14376,111 @@ apr_pool_t* create_sub_pool(apr_pool_t* parent_pool, const char* terminal_id) {
|
||||
|
||||
return new_sub_pool;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//̨<>˱<EFBFBD><CBB1><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
int parse_rpt_log_ini_one(ied_t* ied)
|
||||
{
|
||||
QMap<QString, QStringList*> rpt_cfg_strlists;
|
||||
QMap<QString, QStringList*> log_cfg_strlists;
|
||||
|
||||
int iedno, cpuno;
|
||||
ied_usr_t* ied_usr;
|
||||
LD_info_t* LD_info;
|
||||
char buf[256];
|
||||
|
||||
ied_usr = GET_IEDEXT_ADDR(ied);
|
||||
QString type;
|
||||
type.append(ied_usr->dev_type);
|
||||
if (!rpt_cfg_strlists.contains(type))
|
||||
{
|
||||
QStringList* rpt_temp = new QStringList();
|
||||
QStringList* log_temp = new QStringList();
|
||||
rpt_cfg_strlists.insert(type, rpt_temp);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
log_cfg_strlists.insert(type, log_temp);//<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
//g_DevFlagû<67><C3BB>ʹ<EFBFBD><CAB9>
|
||||
parse_one_rpt_log_ini(g_DevFlag, rpt_cfg_strlists[type], log_cfg_strlists[type], ied_usr->dev_type);
|
||||
}
|
||||
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]);
|
||||
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>
|
||||
if (ied_usr->LD_info[cpuno].LD_name == NULL) {
|
||||
ied_usr->LD_info[cpuno].LD_name = apr_pstrdup(g_init_pool, str);
|
||||
} 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;
|
||||
|
||||
//<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());
|
||||
for (int i = 0; i < rpt_cfg_strlists[type]->size(); ++i) {
|
||||
apr_snprintf(buf, sizeof(buf), "%s", rpt_cfg_strlists[type]->at(i).toAscii().constData());
|
||||
fill_rptctrl_by_cfg(LD_info, i, buf);
|
||||
}
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
||||
init_logctrl_by_count(LD_info, log_cfg_strlists[type]->size());
|
||||
for (int i = 0; i < log_cfg_strlists[type]->size(); ++i) {
|
||||
apr_snprintf(buf, sizeof(buf), "%s", log_cfg_strlists[type]->at(i).toAscii().constData());
|
||||
char* tmp = Get_LDevice(ied_usr->dev_type);
|
||||
fill_logctrl_by_cfg(LD_info, i, buf, tmp);
|
||||
delete[] tmp;
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>ƿ鴦<C6BF><E9B4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (QMap<QString, QStringList*>::iterator it1 = log_cfg_strlists.begin(); it1 != log_cfg_strlists.end(); ++it1)
|
||||
{
|
||||
delete it1.value();
|
||||
}
|
||||
for (QMap<QString, QStringList*>::iterator it2 = rpt_cfg_strlists.begin(); it2 != rpt_cfg_strlists.end(); ++it2)
|
||||
{
|
||||
delete it2.value();
|
||||
}
|
||||
rpt_cfg_strlists.clear();
|
||||
log_cfg_strlists.clear();
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
////////////////////////////////////////////////////////////remdibtable
|
||||
apr_status_t init_rem_dib_table_one(ied_t *ied)
|
||||
{
|
||||
int pos = 0;
|
||||
int iedno,chnl_no;
|
||||
struct in_addr ip;
|
||||
chnl_usr_t *chnl_usr;
|
||||
|
||||
ied_usr_t* ied_usr;
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD>g_nodeһ<65><D2BB>
|
||||
ied_usr = (ied_usr_t*)ied->usr_ext;
|
||||
pos = ied_usr->dev_idx;
|
||||
|
||||
for(chnl_no=0 ; chnl_no<ied->chncount; chnl_no++) {
|
||||
chnl_usr = ied->channel[chnl_no].connect;
|
||||
g_pt61850app->chnl_usr[pos] = chnl_usr;
|
||||
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 );
|
||||
add_rem_dib_table (pos++,chnl_usr->ip_str,ied->channel[chnl_no].port );//<2F><>ǰ<EFBFBD>ն˵<D5B6>IP<49>˿ڼ<CBBF>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>Ҫע<D2AA><D7A2><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>±꣬<C2B1><EAA3AC><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>նˣ<D5B6><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ڣ<EFBFBD><DAA3>ٴ<EFBFBD>ʹ<EFBFBD><CAB9>ʱ<EFBFBD>ᱻ<EFBFBD>滻
|
||||
{
|
||||
char comm_str[256];
|
||||
memset(comm_str,0,256);
|
||||
apr_snprintf(comm_str,sizeof(comm_str),"%16s:%d\t\tinited",chnl_usr->ip_str,ied->channel[chnl_no].port);
|
||||
add_comm_log(comm_str);
|
||||
}
|
||||
}
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
/*<2A><>װC<D7B0>ɵ<EFBFBD><C9B5>õ<EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>º<EFBFBD><C2BA><EFBFBD> */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
@@ -79,7 +79,8 @@ extern int recall_daily;
|
||||
extern char* UDS_UPLOAD_URL;
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
//lnk20250122start
|
||||
#if 0
|
||||
apr_status_t init_rem_dib_table()
|
||||
{
|
||||
int pos = 0;
|
||||
@@ -110,7 +111,40 @@ apr_status_t init_rem_dib_table()
|
||||
}
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
apr_status_t init_rem_dib_table()
|
||||
{
|
||||
int pos = 0;
|
||||
int iedno,chnl_no;
|
||||
ied_t *ied;
|
||||
struct in_addr ip;
|
||||
chnl_usr_t *chnl_usr;
|
||||
|
||||
set_rem_dib_table_size( IED_COUNT );//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
g_pt61850app->chnl_usr = apr_pcalloc( g_init_pool,IED_COUNT*sizeof(chnl_usr_t*) );
|
||||
printf( "set_rem_dib_table_size %d \n",IED_COUNT );
|
||||
|
||||
for(iedno=0 ; iedno<g_node->n_clients; iedno++) {
|
||||
ied = g_node->clients[iedno];
|
||||
for(chnl_no=0 ; chnl_no<ied->chncount; chnl_no++) {
|
||||
chnl_usr = ied->channel[chnl_no].connect;
|
||||
g_pt61850app->chnl_usr[pos] = chnl_usr;
|
||||
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 );
|
||||
add_rem_dib_table (pos++,chnl_usr->ip_str,ied->channel[chnl_no].port );
|
||||
{
|
||||
char comm_str[256];
|
||||
memset(comm_str,0,256);
|
||||
apr_snprintf(comm_str,sizeof(comm_str),"%16s:%d\t\tinited",chnl_usr->ip_str,ied->channel[chnl_no].port);
|
||||
add_comm_log(comm_str);
|
||||
}
|
||||
}
|
||||
}
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
//lnk20250122end
|
||||
|
||||
void CloseIECReports(chnl_usr_t *chnl_usr)
|
||||
{
|
||||
@@ -844,17 +878,17 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
|
||||
int new_client_count = g_node->n_clients + 1; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD>̨<EFBFBD><CCA8>
|
||||
|
||||
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA>Ƿ<C7B7>ԭ<EFBFBD>е<EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾ʹӲ<CDB4>ʹ<EFBFBD>ܵ<EFBFBD>ied<65>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF>ÿռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ܺ<EFBFBD><DCBA>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ն<EFBFBD>
|
||||
if(new_client_count > IED_COUNT){
|
||||
if(new_client_count > IED_COUNT){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ied_t *ied_unused = NULL;
|
||||
ied_usr_t* ied_usr_unused = NULL;
|
||||
ied_unused = find_ied_from_terminal_id();
|
||||
ied_unused = find_ied_unused();//<2F><><EFBFBD><EFBFBD>g_node<64>ҵ<EFBFBD><D2B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ied֮ǰ<D6AE><C7B0>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ䣬ֱ<E4A3AC><D6B1>ռ<EFBFBD><D5BC>
|
||||
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>
|
||||
terminal_index = ied_usr_unused->dev_idx //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ied<65>ı<EFBFBD><C4B1>ţ<EFBFBD><EFBFBD><EFBFBD>g_node<EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>
|
||||
|
||||
//<2F><>ӡ<EFBFBD><D3A1>ʾ
|
||||
printf("!!!!!!!!ied index:%d ,terminal_id:%s has been taken!!!!!!!!!!\n",ied_usr_unused->dev_idx,ied_usr_unused->terminal_id);
|
||||
printf("!!!!!!!!ied index:%d ,origin terminal_id:%s has been taken!!!!!!!!!!\n",ied_usr_unused->dev_idx,ied_usr_unused->terminal_id);
|
||||
|
||||
//<2F>ն˳<D5B6>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
|
||||
ied_usr = (ied_usr_t*)ied->usr_ext;
|
||||
@@ -863,6 +897,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
|
||||
ied_usr->dev_flag = ENABLE;//<2F>ն<EFBFBD><D5B6><EFBFBD>Ч
|
||||
|
||||
ied->chncount = 1; //ͨ<>Ŷ˿<C5B6><CBBF><EFBFBD>
|
||||
//<2F><><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ռ<EFBFBD>
|
||||
ied->channel[0].ied = ied; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
||||
ied->channel[0].status = STATUS_BREAKOFF;//<2F><>ʼ<EFBFBD><CABC>Ϊͨ<CEAA><CDA8><EFBFBD>ж<EFBFBD>
|
||||
ied->cpucount = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼΪ0<CEAA><30><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>ʱд<CAB1><D0B4>
|
||||
@@ -870,13 +905,13 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
|
||||
ied_take = 1;//ied֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
else{
|
||||
else{ //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ȫ<EFBFBD><C8AB>̨<EFBFBD><CCA8><EFBFBD>ж<EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>ied<65><64>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̿ɹҵ<C9B9>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD>
|
||||
printf("!!!!!!!!!!ledger array is full!!!!!!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
else{//<2F><><EFBFBD><EFBFBD>̨<EFBFBD>ʺ<EFBFBD><CABA><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˷<EFBFBD>Χ
|
||||
}//<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>趨<EFBFBD><E8B6A8>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else{
|
||||
// <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));
|
||||
|
||||
@@ -942,18 +977,18 @@ 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///////////////////////////////////
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////modify
|
||||
update = ledger_update_xml->modify_updates; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>
|
||||
update = ledger_update_xml->modify_updates; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD>
|
||||
update_num = ledger_update_xml->modify_update_num;
|
||||
printf("modify ledger num:%d\n",update_num);
|
||||
for (i=0; i<update_num; i++){ //<2F>鿴<EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>
|
||||
@@ -1070,39 +1105,7 @@ void process_ledger_update(trigger_update_xml_t *ledger_update_xml)
|
||||
printf("this ied is ied_to_remove\n");
|
||||
}
|
||||
|
||||
//<2F>ͷ<EFBFBD>iedͨ<64>ŵ<EFBFBD><C5B5>ڴ<EFBFBD>
|
||||
if (ied_to_remove->channel) {
|
||||
apr_pool_clear(ied_to_remove->channel); // <20>ͷ<EFBFBD> g_cfg_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>е<EFBFBD> channel <20>ڴ<EFBFBD>
|
||||
ied_to_remove->channel = NULL;
|
||||
}
|
||||
|
||||
// <20>ͷ<EFBFBD> ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>˽ṹ<CBBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
if (ied_to_remove->usr_ext->LD_info) {
|
||||
apr_pool_clear(ied_to_remove->usr_ext->LD_info); // <20>ͷ<EFBFBD> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>е<EFBFBD> LD_info <20>ڴ<EFBFBD>
|
||||
ed_to_remove->usr_ext->LD_info = NULL;
|
||||
}
|
||||
|
||||
// <20>ͷ<EFBFBD> ied̨<64>˽ṹ<CBBD><E1B9B9><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
if (ied_to_remove->usr_ext) {
|
||||
apr_pool_clear(ied_to_remove->usr_ext); // <20>ͷ<EFBFBD> g_init_pool <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>е<EFBFBD> ied_usr <20>ڴ<EFBFBD>
|
||||
ied_to_remove->usr_ext = NULL;
|
||||
}
|
||||
|
||||
// <20>ƶ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>Ԫ<EFBFBD><D4AA>
|
||||
for (i = index_to_remove; i < g_node->n_clients - 1; i++) {
|
||||
g_node->clients[i] = g_node->clients[i + 1];
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>Ե<EFBFBD><D4B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
|
||||
ied_t** new_clients = (ied_t**)apr_pcalloc(g_cfg_pool, (g_node->n_clients - 1) * sizeof(ied_t*));
|
||||
memcpy(new_clients, g_node->clients, (g_node->n_clients - 1) * sizeof(ied_t*));
|
||||
|
||||
//<2F>ͷ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
||||
apr_pool_clear(g_node->clients);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
g_node->clients = new_clients;
|
||||
g_node->n_clients--;
|
||||
|
||||
//3-ɾ<><C9BE>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>///////////////////////////////////
|
||||
|
||||
|
||||
@@ -97,6 +97,8 @@ apr_status_t app_get_private_config(const char *myfilename)
|
||||
<!-- װ<><D7B0>ID,CPUID,ReportCtrlNum -->
|
||||
<ReportControlCount>104,1,2</ReportControlCount>
|
||||
*/
|
||||
//lnk20250122start
|
||||
#if 0
|
||||
int init_rptctrl_by_count(LD_info_t* LD_info,int rptcount)
|
||||
{
|
||||
int j,i;
|
||||
@@ -117,6 +119,37 @@ int init_rptctrl_by_count(LD_info_t* LD_info,int rptcount)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MAX_RPT_COUNT 20
|
||||
|
||||
int init_rptctrl_by_count(LD_info_t* LD_info,int rptcount)
|
||||
{
|
||||
int j,i;
|
||||
LD_info->rptcount = rptcount;
|
||||
|
||||
if(LD_info->rptinfo == NULL){ //<2F><><EFBFBD><EFBFBD><EFBFBD>ǿյ<C7BF>˵<EFBFBD><CBB5><EFBFBD>ǵ<EFBFBD>һ<EFBFBD>γ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ռ䣬ֱ<E4A3AC>Ӹ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>20<32><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8>ɾ<EFBFBD><C9BE>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD>ֵ
|
||||
LD_info->rptinfo = apr_pcalloc( g_init_pool,MAX_RPT_COUNT*sizeof(rptinfo_t*) );
|
||||
}
|
||||
|
||||
for(j=0; j<rptcount; j++) {
|
||||
if(LD_info->rptinfo[j] == NULL){//<2F><><EFBFBD><EFBFBD><EFBFBD>ǿյ<C7BF>˵<EFBFBD><CBB5><EFBFBD>ǵ<EFBFBD>һ<EFBFBD>γ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ռ䣬<D5BC><E4A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>Ŀռ䣬ֱ<E4A3AC>ӽ<EFBFBD><D3BD><EFBFBD>ֵ<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
LD_info->rptinfo[j] = apr_pcalloc( g_init_pool,sizeof(rptinfo_t) );
|
||||
}
|
||||
LD_info->rptinfo[j]->LD_info = LD_info;
|
||||
LD_info->rptinfo[j]->m_LastRegisterFailedTime = sGetMsTime() -10*60*1000;
|
||||
LD_info->rptinfo[j]->m_LastUnRegisterFailedTime = sGetMsTime() -10*60*1000;
|
||||
LD_info->rptinfo[j]->IntgPd = 60;
|
||||
LD_info->rptinfo[j]->m_rcb_info = NULL;
|
||||
LD_info->rptinfo[j]->rpt_registered = FALSE;
|
||||
LD_info->rptinfo[j]->m_curRptSuffix = -1;
|
||||
for(i=0; i<8; i++)
|
||||
LD_info->rptinfo[j]->m_EntryID[i] = 0xff;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
//lnk20250122end
|
||||
|
||||
//ReportControl: װ<><D7B0>ID,CPUID,ID,RCBName, intgPd, dchg, qchg, dupd, period ,gi, ʵ<><CAB5><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Ӻ<EFBFBD>,<2C><>
|
||||
// seqNum, timeStamp, reasonCode, dataSet, dataRef, bufOvfl, entryID, configRef, segmentation
|
||||
@@ -218,6 +251,9 @@ int fill_rptctrl_by_cfg(LD_info_t* LD_info,int rptno,char *buf)
|
||||
<!-- װ<><D7B0>ID,CPUID,LogCtrlNum -->
|
||||
<LogControlCount>104,1,2</LogControlCount>
|
||||
*/
|
||||
|
||||
//lnk20250122start
|
||||
#if 0
|
||||
int init_logctrl_by_count(LD_info_t* LD_info,int logcount)
|
||||
{
|
||||
int j;
|
||||
@@ -233,6 +269,31 @@ int init_logctrl_by_count(LD_info_t* LD_info,int logcount)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MAX_LOG_COUNT 20
|
||||
|
||||
int init_logctrl_by_count(LD_info_t* LD_info,int logcount)
|
||||
{
|
||||
int j;
|
||||
LD_info->logcount = logcount;
|
||||
|
||||
if(LD_info->loginfo == NULL){
|
||||
LD_info->loginfo = apr_pcalloc(g_init_pool, MAX_LOG_COUNT * sizeof(loginfo_t*)); //new loginfo_t*[logcount];
|
||||
}
|
||||
for(j=0; j<logcount; j++) {
|
||||
if(LD_info->loginfo[j] == NULL){
|
||||
LD_info->loginfo[j] = apr_pcalloc(g_init_pool, sizeof(loginfo_t));//new loginfo_t[1];
|
||||
}
|
||||
LD_info->loginfo[j]->LD_info = LD_info;
|
||||
|
||||
LD_info->loginfo[j]->IntgPd = 600;
|
||||
//LD_info->loginfo[j]->m_lcb_info = NULL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
//lnk20250122end
|
||||
|
||||
//<!--LogControl:IEDID,CPUID,ID,LCBName,DatasetName,LogName,reasonCode,intgPd,dchg,qchg,dupd,period -->
|
||||
// <LogControl>106,2,1,LLN0$LG$lcStatisticData,dsStatisticData,PQM1,0,600000,1,0,0,0</LogControl>
|
||||
|
||||
@@ -475,7 +475,9 @@ void print_trigger_update_xml(const trigger_update_xml_t* trigger_update);
|
||||
char* parse_model_cfg_web_one(ied_t* ied);
|
||||
void Set_xml_nodeinfo_one(char* dev_type);
|
||||
void create_ledger_log(trigger_update_xml_t* ledger_update_xml);
|
||||
ied_t* find_ied_from_terminal_id();
|
||||
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);
|
||||
////////////////////////////////
|
||||
int parse_3s_xml(trigger_3s_xml_t* trigger_3s_xml);
|
||||
int create_3s_xml(trigger_3s_xml_t* trigger_3s_xml);
|
||||
|
||||
@@ -309,7 +309,7 @@ ied_t* find_ied_from_terminal_id(char terminal_id[])
|
||||
return NULL;
|
||||
}
|
||||
//lnk20250121<32>Ҳ<EFBFBD>ʹ<EFBFBD>õ<EFBFBD>ied<65>ռ<EFBFBD>
|
||||
ied_t* find_ied_from_terminal_id()
|
||||
ied_t* find_ied_unused()
|
||||
{
|
||||
ied_t* ied_find_unused = NULL;
|
||||
int iedno;
|
||||
@@ -318,7 +318,7 @@ ied_t* find_ied_from_terminal_id()
|
||||
ied_find_unused = g_node->clients[iedno];
|
||||
ied_usr_find_unused = (ied_usr_t*)ied_find_unused->usr_ext;
|
||||
if (ied_usr_find_unused && ied_usr_find_unused->dev_flag == UNUSED) {
|
||||
return ied_find_unused;
|
||||
return ied_find_unused;//<2F>ҵ<EFBFBD><D2B5><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user