@ -129,19 +129,23 @@ class HmRadio : public Radio {
//(mLastIv->mRxChanIdx + RF_MAX_CHANNEL_ID -1) % RF_MAX_CHANNEL_ID; // make sure, we start with last successfull channel (result will be increased in loop)
//(mLastIv->mRxChanIdx + RF_MAX_CHANNEL_ID -1) % RF_MAX_CHANNEL_ID; // make sure, we start with last successfull channel (result will be increased in loop)
//mRxChannels - 1; //
//mRxChannels - 1; //
//(mTxChIdx + mRxChannels) % RF_MAX_CHANNEL_ID; // start with a fixed offset
//(mTxChIdx + mRxChannels) % RF_MAX_CHANNEL_ID; // start with a fixed offset
boolswitchch=true;
while((millis()-loopMillis)<mRxTmoOuterLoop){
while((millis()-loopMillis)<mRxTmoOuterLoop){
while((micros()-startMicros)<mRxTmoInnerLoop){// listen (4088us or?) 5110us to each channel
while((micros()-startMicros)<mRxTmoInnerLoop){// listen (4088us or?) 5110us to each channel
if(mIrqRcvd){
if(mIrqRcvd){
mIrqRcvd=false;
mIrqRcvd=false;
if(getReceived()){// everything received
if(getReceived()){// everything received
mLastIv->mRxChanIdx=mRxChIdx;
return;
return;
}
}
}
}
yield();
yield();
}
}
// switch to next RX channel
// switch to next RX channel
/*if (mLastIv->mRxChanSync) {
switchch=!switchch;
mRxChIdx=mLastIv->mRxChanIdx-switchch;
}*/
if(++mRxChIdx>=RF_CHANNELS)
if(++mRxChIdx>=RF_CHANNELS)
mRxChIdx=0;
mRxChIdx=0;
@ -161,6 +165,7 @@ class HmRadio : public Radio {
//if(!mLastIv->mGotFragment)
//if(!mLastIv->mGotFragment)
mLastIv->mRxChanIdx=mLastIv->mRxChanIdx+1;// + 2;
mLastIv->mRxChanIdx=mLastIv->mRxChanIdx+1;// + 2;
//mLastIv->mRxChanIdx = ++mRxChIdx;
//mLastIv->mRxChanIdx = ++mRxChIdx;
mLastIv->mRxChanSync=false;
return;
return;
}
}
@ -326,6 +331,9 @@ class HmRadio : public Radio {
returnfalse;
returnfalse;
}
}
mLastIv->mGotFragment=true;
mLastIv->mGotFragment=true;
mLastIv->mRxChanIdx=mRxChIdx;
mLastIv->mRxChanSync=true;
mBufCtrl.push(p);
mBufCtrl.push(p);
if(p.packet[0]==(TX_REQ_INFO+ALL_FRAMES))// response from get information command
if(p.packet[0]==(TX_REQ_INFO+ALL_FRAMES))// response from get information command
isLastPackage=(p.packet[9]>ALL_FRAMES);// > ALL_FRAMES indicates last packet received
isLastPackage=(p.packet[9]>ALL_FRAMES);// > ALL_FRAMES indicates last packet received