fix ledger update

This commit is contained in:
lnk
2025-03-13 16:35:19 +08:00
parent f2bec8c94e
commit 97e4da3df7
3 changed files with 104 additions and 22 deletions

View File

@@ -3820,9 +3820,13 @@ char* Get_xmlpath(char* devtype)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20241125
std::cout << type.toStdString() << std::endl;
if (xmlinfo_list.contains(type)) {
if (xmlinfo_list.contains(devtype) &&
xmlinfo_list[devtype] != NULL && // <20>ȼ<EFBFBD><C8BC><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
!xmlinfo_list[devtype]->xmlbase.MODEL_ID.isNull() && // ȷ<><C8B7> QString <20><><EFBFBD><EFBFBD> NULL
!xmlinfo_list[devtype]->xmlbase.MODEL_ID.isEmpty() && // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
xmlinfo_list[devtype]->xmlbase.MODEL_ID.trimmed().length() >= 4) { //ȷ<><C8B7>modelid<69><64><EFBFBD><EFBFBD>lnk20250313
cout << "!!!!!!!!!! xmlinfo_list.contains(devtype) == 1 !!!!!!!!!!!" << endl;
QByteArray byteArray = xmlinfo_list[devtype]->xmlbase.MODEL_ID.toLocal8Bit();
QByteArray byteArray = xmlinfo_list[devtype]->xmlbase.MODEL_ID.toLocal8Bit();//<2F>ױ<EFBFBD><D7B1><EFBFBD><EFBFBD><EFBFBD>,һ<><D2BB>Ҫȷ<D2AA><C8B7>modelid<69><64><EFBFBD><EFBFBD>lnk20250313
char* charArray = new char[byteArray.size()+1];//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʱ+1<><31>ֹ<EFBFBD>ڴ<EFBFBD>й©lnk20250305
memcpy(charArray, byteArray.data(), byteArray.size());
charArray[byteArray.size()] = '\0';
@@ -3838,18 +3842,39 @@ char* Get_IED(char* devtype)
{
QString type;
type.append(devtype);
if (xmlinfo_list.contains(type)) {
if (xmlinfo_list.contains(type) && xmlinfo_list[type] != NULL) {
cout << "!!!!!!!!!! Get_IED xmlinfo_list.contains(devtype) == 1 !!!!!!!!!!!" << endl;
// ȷ<><C8B7> xmlcfg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ǿ<EFBFBD>
if (xmlinfo_list[type]->xmlcfg.IEDname.isNull() || xmlinfo_list[type]->xmlcfg.LDevicePrefix.isNull()) {
cout << "Error: IEDname or LDevicePrefix is NULL in Get_IED!" << endl;
return NULL;
}
QString ied;
ied.append(xmlinfo_list[devtype]->xmlcfg.IEDname);//PQMonitor
ied.append(xmlinfo_list[devtype]->xmlcfg.LDevicePrefix);
ied.append(xmlinfo_list[type]->xmlcfg.IEDname); // PQMonitor
ied.append(xmlinfo_list[type]->xmlcfg.LDevicePrefix);
ied.append("%d");
QByteArray byteArray = ied.toLocal8Bit();
char* charArray = new char[byteArray.size()+1];//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʱ+1<><31>ֹ<EFBFBD>ڴ<EFBFBD>й©lnk20250305
if (byteArray.isEmpty()) {
cout << "Error: Generated QByteArray is empty!" << endl;
return NULL;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ棬ȷ<E6A3AC><C8B7><EFBFBD><EFBFBD><E3B9BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
char* charArray = new char[byteArray.size() + 1];
if (!charArray) {
cout << "Error: Memory allocation failed!" << endl;
return NULL;
}
memcpy(charArray, byteArray.data(), byteArray.size());
charArray[byteArray.size()] = '\0';
charArray[byteArray.size()] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> '\0' <20><>β
return charArray;
}
}
else {
cout << "!!!!!!!!!! Get_IED xmlinfo_list.contains(devtype) == 0 !!!!!!!!!!!" << endl;
//cout << "ttttttttttttttt" << topicList.size() << endl;
@@ -3869,14 +3894,33 @@ char* Get_LDevice(char* devtype)
{
QString type;
type.append(devtype);
if (xmlinfo_list.contains(type)) {//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD>а<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (xmlinfo_list.contains(type) && xmlinfo_list[type] != NULL) { // ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD>Ϊ<EFBFBD><EFBFBD>
if (xmlinfo_list[type]->xmlcfg.LDevicePrefix.isNull() || xmlinfo_list[type]->xmlcfg.LDevicePrefix.isEmpty()) {
cout << "Error: LDevicePrefix is NULL or empty in Get_IED!" << endl;
return NULL;
}
QString ied;
ied.append(xmlinfo_list[devtype]->xmlcfg.LDevicePrefix);//ʹ<>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ն<EFBFBD>ǰ׺
ied.append(xmlinfo_list[type]->xmlcfg.LDevicePrefix); // ʹ<EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>ǰ׺
ied.append("%d");
QByteArray byteArray = ied.toLocal8Bit();
char* charArray = new char[byteArray.size()+1];//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ʱ+1<><31>ֹ<EFBFBD>ڴ<EFBFBD>й©lnk20250305
if (byteArray.isEmpty()) {
cout << "Error: Generated QByteArray is empty!" << endl;
return NULL;
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ棬ȷ<E6A3AC><C8B7><EFBFBD><EFBFBD><E3B9BB>С
char* charArray = new char[byteArray.size() + 1];
if (!charArray) {
cout << "Error: Memory allocation failed!" << endl;
return NULL;
}
memcpy(charArray, byteArray.data(), byteArray.size());
charArray[byteArray.size()] = '\0';
charArray[byteArray.size()] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> '\0' <20><>β
return charArray;
}
else {