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