Browse Source

fixed radio statistics

pull/1222/head
lumapu 1 year ago
parent
commit
ac246bb763
  1. 19
      src/hm/Communication.h

19
src/hm/Communication.h

@ -56,6 +56,7 @@ class Communication : public CommQueue<> {
mHeu.printStatus(q->iv);
mHeu.getTxCh(q->iv);
mGotFragment = false;
mState = States::START;
break;
@ -87,16 +88,20 @@ class Communication : public CommQueue<> {
DBGPRINT(String(millis() - mWaitTimeout + timeout));
DBGPRINTLN(F("ms"));
q->iv->radioStatistics.rxFailNoAnser++; // got nothing
mHeu.setGotNothing(q->iv);
if((IV_HMS == q->iv->ivGen) || (IV_HMT == q->iv->ivGen)) {
q->iv->radio->switchFrequency(q->iv, HOY_BOOT_FREQ_KHZ, WORK_FREQ_KHZ);
mWaitTimeout = millis() + 1000;
}
if(!mGotFragment) {
q->iv->radioStatistics.rxFailNoAnser++; // got nothing
mHeu.setGotNothing(q->iv);
if((IV_HMS == q->iv->ivGen) || (IV_HMT == q->iv->ivGen)) {
q->iv->radio->switchFrequency(q->iv, HOY_BOOT_FREQ_KHZ, WORK_FREQ_KHZ);
mWaitTimeout = millis() + 1000;
}
} else
q->iv->radioStatistics.rxFail++;
mState = States::RESET;
break;
}
mGotFragment = true;
States nextState = States::RESET;
while(!q->iv->radio->mBufCtrl.empty()) {
packet_t *p = &q->iv->radio->mBufCtrl.front();
@ -132,6 +137,7 @@ class Communication : public CommQueue<> {
parseMiFrame(p, q);
}
} else {
q->iv->radioStatistics.rxFail++; // got no complete payload
DPRINTLN(DBG_WARN, F("Inverter serial does not match"));
mWaitTimeout = millis() + timeout;
}
@ -712,6 +718,7 @@ class Communication : public CommQueue<> {
uint32_t *mTimestamp;
uint32_t mWaitTimeout = 0;
std::array<frame_t, MAX_PAYLOAD_ENTRIES> mLocalBuf;
bool mGotFragment = false;
uint8_t mMaxFrameId;
uint8_t mPayload[MAX_BUFFER];
payloadListenerType mCbPayload = NULL;

Loading…
Cancel
Save