Improve radio fail state check (#498)

This commit is contained in:
Olivier
2016-07-01 14:29:57 +02:00
committed by GitHub
parent 0a26d857aa
commit ff8982148f
2 changed files with 6 additions and 2 deletions
+4 -1
View File
@@ -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();
}
+2 -1
View File
@@ -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