Improve radio fail state check (#498)
This commit is contained in:
@@ -36,6 +36,7 @@ void stInitTransition() {
|
||||
// initialize status variables
|
||||
_transportSM.failedUplinkTransmissions = 0;
|
||||
_transportSM.pingActive = false;
|
||||
_transportSM.transportActive = false;
|
||||
|
||||
// Read node settings (ID, parentId, GW distance) from EEPROM
|
||||
hwReadConfigBlock((void*)&_nc, (void*)EEPROM_NODE_ID_ADDRESS, sizeof(NodeConfig));
|
||||
@@ -48,6 +49,7 @@ void stInitTransition() {
|
||||
}
|
||||
else {
|
||||
debug(PSTR("RADIO:OK\n"));
|
||||
_transportSM.transportActive = true;
|
||||
#if defined(MY_GATEWAY_FEATURE)
|
||||
// Set configuration for gateway
|
||||
debug(PSTR("TSM:GW MODE\n"));
|
||||
@@ -170,6 +172,7 @@ void stOKUpdate() {
|
||||
void stFailureTransition() {
|
||||
debug(PSTR("!TSM:FAILURE\n"));
|
||||
_transportSM.uplinkOk = false;
|
||||
_transportSM.transportActive = false;
|
||||
// power down transport, no need until re-init
|
||||
debug(PSTR("TSM:PDT\n"));
|
||||
transportPowerDown();
|
||||
@@ -221,7 +224,7 @@ void transportProcess() {
|
||||
// update state machine
|
||||
transportUpdateSM();
|
||||
// process transport FIFO
|
||||
transportProcessFIFO();
|
||||
if (_transportSM.transportActive) transportProcessFIFO();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -63,7 +63,8 @@ typedef struct {
|
||||
bool preferredParentFound : 1; //!< flag preferred parent found
|
||||
bool uplinkOk : 1; //!< flag uplink ok
|
||||
bool pingActive : 1; //!< flag ping active
|
||||
uint8_t reserved : 4; //!< reserved
|
||||
bool transportActive : 1; //!< flag transport active
|
||||
uint8_t reserved : 3; //!< reserved
|
||||
uint8_t retries : 4; //!< retries / state re-enter
|
||||
uint8_t failedUplinkTransmissions : 4; //!< counter failed uplink transmissions
|
||||
uint8_t pingResponse; //!< stores hops received in I_PONG
|
||||
|
||||
Reference in New Issue
Block a user