Fixed receive buffer for large payloads

This commit is contained in:
Gunnar Skjold
2023-12-21 15:25:23 +01:00
parent 378b67a5bd
commit 8816097bca
3 changed files with 29 additions and 12 deletions

View File

@@ -17,8 +17,8 @@ int8_t DSMRParser::parse(uint8_t *buf, DataParserContext &ctx, bool verified) {
if(!reachedEnd) return DATA_PARSE_INCOMPLETE;
buf[ctx.length+1] = '\0';
if(crcPos > 0) {
uint16_t crc_calc = crc16(buf, crcPos);
uint16_t crc = 0x0000;
crc_calc = crc16(buf, crcPos);
crc = 0x0000;
fromHex((uint8_t*) &crc, String((char*) buf+crcPos), 2);
crc = ntohs(crc);
@@ -26,4 +26,11 @@ int8_t DSMRParser::parse(uint8_t *buf, DataParserContext &ctx, bool verified) {
return DATA_PARSE_FOOTER_CHECKSUM_ERROR;
}
return DATA_PARSE_OK;
}
uint16_t DSMRParser::getCrc() {
return crc;
}
uint16_t DSMRParser::getCrcCalc() {
return crc_calc;
}