flash fail fix + boolean HandleHandshakeACK()

This commit is contained in:
Felix Rusu 2020-08-04 18:42:09 -04:00
parent 89b37ff869
commit d6b2c19f2a
2 changed files with 5 additions and 4 deletions

View File

@ -76,7 +76,7 @@ void CheckForWirelessHEX(RFM69& radio, SPIFlash& flash, uint8_t DEBUG, uint8_t L
//=================================================================================================================== //===================================================================================================================
// HandleHandshakeACK() - checks there is a FLASH chip and sends an ACK for the OTA request handshake // HandleHandshakeACK() - checks there is a FLASH chip and sends an ACK for the OTA request handshake
//=================================================================================================================== //===================================================================================================================
void HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck) { uint8_t HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck) {
if (flashCheck) if (flashCheck)
{ {
uint16_t deviceID=0; uint16_t deviceID=0;
@ -91,10 +91,11 @@ void HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck) {
if (deviceID==0) { if (deviceID==0) {
radio.sendACK("FLX?NOK:NOFLASH",15); //NO FLASH CHIP FOUND, ABORTING radio.sendACK("FLX?NOK:NOFLASH",15); //NO FLASH CHIP FOUND, ABORTING
Serial.println(F("FAIL:NO FLASH MEM")); Serial.println(F("FAIL:NO FLASH MEM"));
return; return false;
} }
} }
radio.sendACK("FLX?OK",6); //ACK the HANDSHAKE radio.sendACK("FLX?OK",6); //ACK the HANDSHAKE
return true;
} }
@ -104,7 +105,7 @@ void HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck) {
//=================================================================================================================== //===================================================================================================================
#ifdef SHIFTCHANNEL #ifdef SHIFTCHANNEL
uint8_t HandleWirelessHEXDataWrapper(RFM69& radio, uint16_t remoteID, SPIFlash& flash, uint8_t DEBUG, uint8_t LEDpin) { uint8_t HandleWirelessHEXDataWrapper(RFM69& radio, uint16_t remoteID, SPIFlash& flash, uint8_t DEBUG, uint8_t LEDpin) {
HandleHandshakeACK(radio, flash); if (!HandleHandshakeACK(radio, flash)) return false;
if (DEBUG) { Serial.println(F("FLX?OK (ACK sent)")); Serial.print(F("Shifting channel to ")); Serial.println(radio.getFrequency() + SHIFTCHANNEL);} if (DEBUG) { Serial.println(F("FLX?OK (ACK sent)")); Serial.print(F("Shifting channel to ")); Serial.println(radio.getFrequency() + SHIFTCHANNEL);}
radio.setFrequency(radio.getFrequency() + SHIFTCHANNEL); //shift center freq by SHIFTCHANNEL amount radio.setFrequency(radio.getFrequency() + SHIFTCHANNEL); //shift center freq by SHIFTCHANNEL amount
uint8_t result = HandleWirelessHEXData(radio, remoteID, flash, DEBUG, LEDpin); uint8_t result = HandleWirelessHEXData(radio, remoteID, flash, DEBUG, LEDpin);

View File

@ -59,7 +59,7 @@
//functions used in the REMOTE node //functions used in the REMOTE node
void CheckForWirelessHEX(RFM69& radio, SPIFlash& flash, uint8_t DEBUG=false, uint8_t LEDpin=LED); void CheckForWirelessHEX(RFM69& radio, SPIFlash& flash, uint8_t DEBUG=false, uint8_t LEDpin=LED);
void HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck=true); uint8_t HandleHandshakeACK(RFM69& radio, SPIFlash& flash, uint8_t flashCheck=true);
void resetUsingWatchdog(uint8_t DEBUG=false); void resetUsingWatchdog(uint8_t DEBUG=false);
uint8_t HandleWirelessHEXData(RFM69& radio, uint16_t remoteID, SPIFlash& flash, uint8_t DEBUG=false, uint8_t LEDpin=LED); uint8_t HandleWirelessHEXData(RFM69& radio, uint16_t remoteID, SPIFlash& flash, uint8_t DEBUG=false, uint8_t LEDpin=LED);