Ignore fragment number zero. Should fix #29

It seems that some inverters send packages with fragment number zero and a valid CRC. Must ignore such packets!
This commit is contained in:
Thomas Basler 2022-07-15 22:37:42 +02:00
parent cd9f77acbd
commit c6499e09bd

View File

@ -66,6 +66,11 @@ void InverterAbstract::addRxFragment(uint8_t fragment[], uint8_t len)
} }
uint8_t fragmentCount = fragment[9]; uint8_t fragmentCount = fragment[9];
if (fragmentCount == 0) {
Serial.println("ERROR: fragment number zero received and ignored");
return;
}
if ((fragmentCount & 0b01111111) < MAX_RF_FRAGMENT_COUNT) { if ((fragmentCount & 0b01111111) < MAX_RF_FRAGMENT_COUNT) {
// Packets with 0x81 will be seen as 1 // Packets with 0x81 will be seen as 1
memcpy(_rxFragmentBuffer[(fragmentCount & 0b01111111) - 1].fragment, &fragment[10], len - 11); memcpy(_rxFragmentBuffer[(fragmentCount & 0b01111111) - 1].fragment, &fragment[10], len - 11);