From 6014e4f8509476257bd3b42139cfdfac74f02982 Mon Sep 17 00:00:00 2001 From: Kai Gerken Date: Fri, 29 Jul 2022 16:20:07 +0200 Subject: [PATCH] Add handling for responses with Frame ID 0x00 --- tools/esp8266/app.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index dbb3ee9e..c1c3d78c 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -231,16 +231,20 @@ void app::loop(void) { Inverter<> *iv = mSys->findInverter(&p->packet[1]); if(NULL != iv) { uint8_t *pid = &p->packet[9]; - if((*pid & 0x7F) < 5) { - memcpy(mPayload[iv->id].data[(*pid & 0x7F) - 1], &p->packet[10], len-11); - mPayload[iv->id].len[(*pid & 0x7F) - 1] = len-11; - } + if (*pid == 0x00) { + DPRINT(DBG_DEBUG, "fragment number zero received and ignored"); + } else { + if((*pid & 0x7F) < 5) { + memcpy(mPayload[iv->id].data[(*pid & 0x7F) - 1], &p->packet[10], len-11); + mPayload[iv->id].len[(*pid & 0x7F) - 1] = len-11; + } - if((*pid & 0x80) == 0x80) { - if((*pid & 0x7f) > mPayload[iv->id].maxPackId) { - mPayload[iv->id].maxPackId = (*pid & 0x7f); - if(*pid > 0x81) - mLastPacketId = *pid; + if((*pid & 0x80) == 0x80) { + if((*pid & 0x7f) > mPayload[iv->id].maxPackId) { + mPayload[iv->id].maxPackId = (*pid & 0x7f); + if(*pid > 0x81) + mLastPacketId = *pid; + } } } }