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:
parent
cd9f77acbd
commit
c6499e09bd
@ -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);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user