feat: improve error management to avoid infinite loop
The device goes in deep sleep after 3 restarts when connection is not successful
This commit is contained in:
parent
244d1eea21
commit
61b0b740d2
5 changed files with 53 additions and 20 deletions
|
|
@ -18,7 +18,7 @@ LoRaTransmitter::LoRaTransmitter(
|
|||
memset(_noncesBuffer, 0, RADIOLIB_LORAWAN_NONCES_BUF_SIZE);
|
||||
}
|
||||
|
||||
void LoRaTransmitter::init()
|
||||
TransmitError LoRaTransmitter::init()
|
||||
{
|
||||
_reset();
|
||||
SPI.begin(LORA_SCK, LORA_MISO, LORA_MOSI, LORA_NSS);
|
||||
|
|
@ -28,15 +28,13 @@ void LoRaTransmitter::init()
|
|||
if (state != RADIOLIB_ERR_NONE)
|
||||
{
|
||||
Serial.printf("ERREUR %d\n", state);
|
||||
while (true)
|
||||
{
|
||||
delay(1000);
|
||||
}
|
||||
return TransmitError::INIT_FAILED;
|
||||
}
|
||||
Serial.println("OK");
|
||||
return TransmitError::OK;
|
||||
}
|
||||
|
||||
void LoRaTransmitter::join()
|
||||
TransmitError LoRaTransmitter::join()
|
||||
{
|
||||
int16_t state = RADIOLIB_ERR_NETWORK_NOT_JOINED;
|
||||
|
||||
|
|
@ -50,29 +48,31 @@ void LoRaTransmitter::join()
|
|||
if (state != RADIOLIB_LORAWAN_NEW_SESSION)
|
||||
{
|
||||
Serial.printf("Echec : %d\n", state);
|
||||
while (true)
|
||||
{
|
||||
delay(1000);
|
||||
}
|
||||
return TransmitError::JOIN_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
Serial.println("OK");
|
||||
_saveSession();
|
||||
return TransmitError::OK;
|
||||
}
|
||||
|
||||
void LoRaTransmitter::send(uint8_t payload[], size_t size)
|
||||
TransmitError LoRaTransmitter::send(uint8_t payload[], size_t size)
|
||||
{
|
||||
int state = _node.sendReceive(payload, size, 1);
|
||||
if (state == RADIOLIB_ERR_NONE || state == RADIOLIB_LORAWAN_NO_DOWNLINK)
|
||||
{
|
||||
Serial.println("[TX] OK");
|
||||
_saveSession();
|
||||
return TransmitError::OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.printf("[TX] Erreur : %d\n", state);
|
||||
_saveSession();
|
||||
return TransmitError::SEND_FAILED;
|
||||
}
|
||||
_saveSession();
|
||||
|
||||
}
|
||||
|
||||
void LoRaTransmitter::_reset()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue