Strip non-ascii from meter id

This commit is contained in:
Gunnar Skjold
2025-01-24 07:44:21 +01:00
parent f9d0cdfa47
commit 094e588ad5
2 changed files with 3 additions and 2 deletions

View File

@@ -35,7 +35,7 @@ bool stripNonAscii(uint8_t* in, uint16_t size, bool extended) {
memset(in+i, 0, size-i);
break;
}
if(extended && (in[i] < 32 || in[i] == 127 || in[i] == 129 || in[i] == 141 || in[i] == 143 || in[i] == 144 || in[i] == 157)) {
if(extended && (in[i] < 32 || in[i] == 127 || in[i] == 129 || in[i] == 141 || in[i] == 143 || in[i] == 144 || in[i] == 157 || in[i] == 160)) {
memset(in+i, ' ', 1);
ret = true;
} else if(!extended && (in[i] < 32 || in[i] > 126)) {

View File

@@ -901,7 +901,7 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo
}
if(meterType != AmsTypeUnknown) {
stripNonAscii((uint8_t*) ctx.system_title, 8, true);
stripNonAscii((uint8_t*) ctx.system_title, 8);
meterId = String((const char*)ctx.system_title);
}
}
@@ -946,6 +946,7 @@ IEC6205675::IEC6205675(const char* d, uint8_t useMeterType, MeterConfig* meterCo
threePhase = true;
}
}
meterId.trim();
}
CosemData* IEC6205675::getCosemDataAt(uint8_t index, const char* ptr) {