Browse Source

no retransmit on Restart / CleanState_LockAndAlarm

pull/328/head
stefan123t 2 years ago
parent
commit
f5c784f44c
  1. 6
      tools/esp8266/app.cpp
  2. 8
      tools/esp8266/hmRadio.h

6
tools/esp8266/app.cpp

@ -325,6 +325,11 @@ void app::processPayload(bool retransmit) {
if(!buildPayload(iv->id)) { // payload not complete if(!buildPayload(iv->id)) { // payload not complete
if(mPayload[iv->id].requested) { if(mPayload[iv->id].requested) {
if(retransmit) { if(retransmit) {
if(iv->devControlCmd == Restart || CleanState_LockAndAlarm || iv->devControlCmd) {
// This is required to prevent retransmissions without answer.
DPRINTLN(DBG_INFO, F("Prevent retransmit on Restart / CleanState_LockAndAlarm..."));
mPayload[iv->id].retransmits = mConfig.maxRetransPerPyld;
} else {
if(mPayload[iv->id].retransmits < mConfig.maxRetransPerPyld) { if(mPayload[iv->id].retransmits < mConfig.maxRetransPerPyld) {
mPayload[iv->id].retransmits++; mPayload[iv->id].retransmits++;
if(mPayload[iv->id].maxPackId != 0) { if(mPayload[iv->id].maxPackId != 0) {
@ -353,6 +358,7 @@ void app::processPayload(bool retransmit) {
} }
} }
} }
}
else { // payload complete else { // payload complete
DPRINTLN(DBG_INFO, F("procPyld: cmd: ") + String(mPayload[iv->id].txCmd)); DPRINTLN(DBG_INFO, F("procPyld: cmd: ") + String(mPayload[iv->id].txCmd));
DPRINTLN(DBG_INFO, F("procPyld: txid: 0x") + String(mPayload[iv->id].txId, HEX)); DPRINTLN(DBG_INFO, F("procPyld: txid: 0x") + String(mPayload[iv->id].txId, HEX));

8
tools/esp8266/hmRadio.h

@ -190,14 +190,6 @@ class HmRadio {
mTxBuf[10 + cnt] = Ahoy::crc8(mTxBuf, 10 + cnt); mTxBuf[10 + cnt] = Ahoy::crc8(mTxBuf, 10 + cnt);
sendPacket(invId, mTxBuf, 10 + (++cnt), true); sendPacket(invId, mTxBuf, 10 + (++cnt), true);
// Is required to prevent retransmissions without answer.
if (cmd == CleanState_LockAndAlarm || cmd == Restart)
{
DPRINTLN(DBG_INFO, F("TODO: Prevent retransmit after Reboot / CleanState_LockAndAlarm..."));
// if(mPayload[iv->id].retransmits < mConfig.maxRetransPerPyld)
//mPayload[iv->id].retransmits = mConfig.maxRetransPerPyld;
}
} }
void sendTimePacket(uint64_t invId, uint8_t cmd, uint32_t ts, uint16_t alarmMesId) { void sendTimePacket(uint64_t invId, uint8_t cmd, uint32_t ts, uint16_t alarmMesId) {

Loading…
Cancel
Save