Fix for encrypted DSMR regression (#2679)

Co-authored-by: Maurice Makaay <account-github@makaay.nl>
This commit is contained in:
Maurice Makaay 2021-11-08 00:39:16 +01:00 committed by GitHub
parent 96a50f5c6b
commit be9439f10d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -76,9 +76,10 @@ void Dsmr::receive_telegram_() {
} }
// Check for the end of the hex checksum, i.e. a newline. // Check for the end of the hex checksum, i.e. a newline.
if (footer_found_ && c == '\n') { if (footer_found_ && c == '\n') {
header_found_ = false;
// Parse the telegram and publish sensor values. // Parse the telegram and publish sensor values.
parse_telegram(); parse_telegram();
header_found_ = false;
return; return;
} }
} }
@ -105,12 +106,12 @@ void Dsmr::receive_encrypted_() {
// Find a new telegram start byte. // Find a new telegram start byte.
if (!header_found_) { if (!header_found_) {
if ((uint8_t) c == 0xDB) { if ((uint8_t) c != 0xDB) {
continue;
}
ESP_LOGV(TAG, "Start byte 0xDB of encrypted telegram found"); ESP_LOGV(TAG, "Start byte 0xDB of encrypted telegram found");
header_found_ = true; header_found_ = true;
} }
continue;
}
// Check for buffer overflow. // Check for buffer overflow.
if (buffer_length >= MAX_TELEGRAM_LENGTH) { if (buffer_length >= MAX_TELEGRAM_LENGTH) {
@ -147,10 +148,10 @@ void Dsmr::receive_encrypted_() {
ESP_LOGV(TAG, "Decrypted telegram size: %d bytes", telegram_len_); ESP_LOGV(TAG, "Decrypted telegram size: %d bytes", telegram_len_);
ESP_LOGVV(TAG, "Decrypted telegram: %s", this->telegram_); ESP_LOGVV(TAG, "Decrypted telegram: %s", this->telegram_);
parse_telegram();
header_found_ = false; header_found_ = false;
telegram_len_ = 0; telegram_len_ = 0;
parse_telegram();
return; return;
} }
} }