fix phpst and phplt in statistic data

This commit is contained in:
lnk
2026-01-27 16:58:15 +08:00
parent 79676aa90d
commit a2aa627b1e
2 changed files with 53 additions and 4 deletions

View File

@@ -145,7 +145,8 @@ public:
QString WavePhasicA;
QString WavePhasicB;
QString WavePhasicC;
QString UnitOfTimeUnit; //暂态事件持续事件单位0 - 毫秒 1 - 秒
QString TypeOfData; //闪变和统计是否合并 0-分开 1-合并
QString UnitOfTimeUnit; //暂态事件持续事件单位0 - 毫秒 1 - 秒 lnk20260127
QString ValueOfTimeUnit; //上送值的时间UTC-UTC时间 beijing-北京时间
QString WaveTimeFlag; //录波文件的时间UTC-UTC时间 beijing-北京时间
QString IEDname; //例PQMonitor
@@ -244,6 +245,8 @@ bool get_xml_config_by_dev_type(const char* dev_type, XmlConfigC* out_cfg) {
return false;
}
memset(out_cfg, 0, sizeof(*out_cfg));
QString dev_type_q = QString::fromUtf8(dev_type);
QMap<QString, Xmldata*>::iterator it = xmlinfo_list.find(dev_type_q);
if (it == xmlinfo_list.end() || it.value() == nullptr) {
@@ -259,6 +262,7 @@ bool get_xml_config_by_dev_type(const char* dev_type, XmlConfigC* out_cfg) {
strncpy(out_cfg->WavePhasicB, cfg.WavePhasicB.toUtf8().constData(), sizeof(out_cfg->WavePhasicB) - 1);
strncpy(out_cfg->WavePhasicC, cfg.WavePhasicC.toUtf8().constData(), sizeof(out_cfg->WavePhasicC) - 1);
strncpy(out_cfg->UnitOfTimeUnit, cfg.UnitOfTimeUnit.toUtf8().constData(), sizeof(out_cfg->UnitOfTimeUnit) - 1);
strncpy(out_cfg->TypeOfData, cfg.TypeOfData.toUtf8().constData(), sizeof(out_cfg->TypeOfData) - 1); out_cfg->TypeOfData[sizeof(out_cfg->TypeOfData) - 1] = '\0';//lnk20260127
strncpy(out_cfg->ValueOfTimeUnit, cfg.ValueOfTimeUnit.toUtf8().constData(),sizeof(out_cfg->ValueOfTimeUnit) - 1);
strncpy(out_cfg->WaveTimeFlag, cfg.WaveTimeFlag.toUtf8().constData(), sizeof(out_cfg->WaveTimeFlag) - 1);
strncpy(out_cfg->IEDname, cfg.IEDname.toUtf8().constData(), sizeof(out_cfg->IEDname) - 1);
@@ -898,6 +902,11 @@ bool ParseXMLConfig2(int xml_flag, XmlConfig *cfg, list<CTopic*> *ctopiclist,QSt
{
cfg->UnitOfTimeUnit.append(e.attribute("Unit"));
}
//lnk 20260127
if ("TypeOfData" == strTag)
{
cfg->TypeOfData.append(e.attribute("Unit"));
}
if ("ValueOfTime" == strTag)
{
cfg->ValueOfTimeUnit.append(e.attribute("Unit"));
@@ -1063,6 +1072,40 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json
}
}
//lnk20260127 添加数据类型区分
bool typeofdata = false;
QString devType = data->dev_type;
QByteArray devTypeBytes = devType.toUtf8();
const char* dev_type_cstr = devTypeBytes.constData();
qDebug() << "[DBG] devType (QString) =" << devType;
qDebug() << "[DBG] devType length =" << devType.length();
qDebug() << "[DBG] devTypeBytes =" << devTypeBytes;
qDebug() << "[DBG] devTypeBytes size =" << devTypeBytes.size();
printf("[DBG] dev_type_cstr = '%s'\n", dev_type_cstr);
XmlConfigC cfg1;
if (get_xml_config_by_dev_type(dev_type_cstr, &cfg1)) {
printf("========== XmlConfigC dump ==========\n");
printf("WavePhasicFlag = '%s'\n", cfg1.WavePhasicFlag);
printf("WavePhasicA = '%s'\n", cfg1.WavePhasicA);
printf("WavePhasicB = '%s'\n", cfg1.WavePhasicB);
printf("WavePhasicC = '%s'\n", cfg1.WavePhasicC);
printf("UnitOfTimeUnit = '%s'\n", cfg1.UnitOfTimeUnit);
printf("TypeOfData = '%s'\n", cfg1.TypeOfData);
printf("ValueOfTimeUnit = '%s'\n", cfg1.ValueOfTimeUnit);
printf("WaveTimeFlag = '%s'\n", cfg1.WaveTimeFlag);
printf("IEDname = '%s'\n", cfg1.IEDname);
printf("LDevicePrefix = '%s'\n", cfg1.LDevicePrefix);
printf("=====================================\n");
// 如果 TypeOfData == "1",则置 true
if (strcmp(cfg1.TypeOfData, "1") == 0) {
typeofdata = true;
}
} else {
printf("not find this dev_type\n");
}
bool shortjumpflag = false;
bool longjumpflag = false;
@@ -1336,11 +1379,16 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json
kafka_data_list_mutex.unlock(); //解锁
longjumpflag = true;
}
if (longjumpflag == true || shortjumpflag == true) {
return 1;
}
//lnk20260127
if (typeofdata == false) {//不合并则处理完闪变就不处理其他数据
if (longjumpflag == true || shortjumpflag == true) {
return 1;
}
}
} //②-②历史闪变数据解析结束!--------------------------------
//合并则继续处理其他数据
if (1 == pDataType->iDataType) //②-①历史稳态数据-----------------------------------------------------------
{
Ckafka_data_t KafkaData; //kafka发送数据结构类对象

View File

@@ -160,6 +160,7 @@ typedef struct {
char WavePhasicB[64];
char WavePhasicC[64];
char UnitOfTimeUnit[64];
char TypeOfData[64];
char ValueOfTimeUnit[64];
char WaveTimeFlag[64];
char IEDname[64];