From 7baa95c7599eb52ceb688314f6c0c2782544fe8b Mon Sep 17 00:00:00 2001 From: rejoe2 Date: Mon, 27 Mar 2023 20:21:01 +0200 Subject: [PATCH] MI - change logic for progressing 4ch dev info cmd Not tested yet, but compiled on 0.5.107. So no urgent check in is required, but most likely this will perform more consistent than the previous version. --- src/hm/miPayload.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hm/miPayload.h b/src/hm/miPayload.h index 44f79e08..dbe43c06 100644 --- a/src/hm/miPayload.h +++ b/src/hm/miPayload.h @@ -448,8 +448,8 @@ const byteAssign_t InfoAssignment[] = { } else { bool change = false; if ( cmd >= 0x36 && cmd < 0x39 ) { // MI-1500 Data command - cmd++; // just request the next channel - change = true; + //cmd++; // just request the next channel + //change = true; } else if ( cmd == 0x09 ) {//MI single or dual channel device if ( mPayload[iv->id].dataAB[CH1] && iv->type == INV_TYPE_2CH ) { if (!mPayload[iv->id].stsAB[CH1] && mPayload[iv->id].retransmits<2) {} @@ -472,6 +472,7 @@ const byteAssign_t InfoAssignment[] = { if (change) { DBGPRINT(F("next request is")); //mPayload[iv->id].skipfirstrepeat = 0; + mPayload[iv->id].txCmd = cmd; } else { DBGPRINT(F("sth.")); DBGPRINT(F(" missing: Request Retransmit")); @@ -480,7 +481,6 @@ const byteAssign_t InfoAssignment[] = { DBGHEXLN(cmd); //mSys->Radio.sendCmdPacket(iv->radioId.u64, cmd, cmd, true); mSys->Radio.prepareDevInformCmd(iv->radioId.u64, cmd, mPayload[iv->id].ts, iv->alarmMesIndex, true, cmd); - mPayload[iv->id].txCmd = cmd; yield(); } } @@ -682,11 +682,13 @@ const byteAssign_t InfoAssignment[] = { }*/ miStsConsolidate(iv, datachan, rec, p->packet[23], p->packet[24]); - if (p->packet[0] < (0x39 + ALL_FRAMES) ) { /*uint8_t cmd = p->packet[0] - ALL_FRAMES + 1; mSys->Radio.prepareDevInformCmd(iv->radioId.u64, cmd, mPayload[iv->id].ts, iv->alarmMesIndex, false, cmd); mPayload[iv->id].txCmd = cmd;*/ + mPayload[iv->id].txCmd++; + if (mPayload[iv->id].retransmits) + mPayload[iv->id].retransmits--; // reserve retransmissions for each response mPayload[iv->id].complete = false; }