diff --git a/lib/esp32FOTA/src/esp32fota.cpp b/lib/esp32FOTA/src/esp32fota.cpp index 51b8c7b..c54e23f 100644 --- a/lib/esp32FOTA/src/esp32fota.cpp +++ b/lib/esp32FOTA/src/esp32fota.cpp @@ -25,10 +25,11 @@ extern void forceBootInit(); #define USE_QUEUE -esp32FOTA::esp32FOTA(String firwmareType, int firwmareVersion) +esp32FOTA::esp32FOTA(String firwmareType, int firwmareVersion, bool isBeta) { _firwmareType = firwmareType; _firwmareVersion = firwmareVersion; + _bIsBeta = isBeta; useDeviceID = false; // _endCallback = NULL; _queue = xQueueCreate(1, 256); @@ -254,6 +255,7 @@ esp32FOTA::execHTTPcheck() delete[] JSONMessage; Serial.println("Parsing failed"); delay(5000); + http.end(); //Free the resources return false; } @@ -273,23 +275,32 @@ esp32FOTA::execHTTPcheck() delete[] JSONMessage; - if (plversion > _firwmareVersion && fwtype == _firwmareType) - { - _newVersion = plversion; - return true; + if(fwtype == _firwmareType) { + if(_bIsBeta) { // if beta version being used, check for equal version number + if (plversion >= _firwmareVersion) + { + _newVersion = plversion; + http.end(); //Free the resources + return true; + } + } + else { + if (plversion > _firwmareVersion) + { + _newVersion = plversion; + http.end(); //Free the resources + return true; + } + } } - else - { - _newVersion = 0; - return false; - } - + _newVersion = 0; + } else { Serial.println("Error on HTTP request"); - return false; + // return false; } http.end(); //Free the resources @@ -454,16 +465,25 @@ esp32FOTA::decodeResponse(char* resp) _bin = plbin; - if (plversion > _firwmareVersion && fwtype == _firwmareType) - { - _newVersion = plversion; - return true; - } - else - { - _newVersion = 0; - return false; + if(fwtype == _firwmareType) { + if(_bIsBeta) { // if beta version being used, check for equal version number + if (plversion >= _firwmareVersion) + { + _newVersion = plversion; + return true; + } + } + else { + if (plversion > _firwmareVersion) + { + _newVersion = plversion; + return true; + } + } } + _newVersion = 0; + return false; + } void diff --git a/lib/esp32FOTA/src/esp32fota.h b/lib/esp32FOTA/src/esp32fota.h index b6bdbca..a51c9f1 100644 --- a/lib/esp32FOTA/src/esp32fota.h +++ b/lib/esp32FOTA/src/esp32fota.h @@ -26,7 +26,7 @@ struct sFOTAqueue{ class esp32FOTA { public: - esp32FOTA(String firwmareType, int firwmareVersion); + esp32FOTA(String firwmareType, int firwmareVersion, bool isBeta); void execOTA(); bool execHTTPcheck(); bool useDeviceID; @@ -50,6 +50,7 @@ private: String _firwmareType; int _firwmareVersion; int _newVersion; + bool _bIsBeta; String _checkURL; String _host; String _bin; diff --git a/src/Afterburner.cpp b/src/Afterburner.cpp index 50c2cbc..cfbb68d 100644 --- a/src/Afterburner.cpp +++ b/src/Afterburner.cpp @@ -135,7 +135,7 @@ const int FirmwareRevision = 40; const int FirmwareSubRevision = 0; const int FirmwareMinorRevision = 1; -const char* FirmwareDate = "22 May 2020"; +const char* FirmwareDate = "19 Jun 2020"; /* * Macro to check the outputs of TWDT functions and trigger an abort if an @@ -1203,9 +1203,12 @@ bool getGPIOout(int channel) #endif } -float getVersion() +float getVersion(bool betarevision) { - return float(FirmwareRevision) * 0.1f + float(FirmwareSubRevision) * .001f; + if(betarevision) + return float(FirmwareMinorRevision); + else + return float(FirmwareRevision) * 0.1f + float(FirmwareSubRevision) * .001f; } const char* getVersionStr(bool beta) { @@ -1499,12 +1502,12 @@ void reqHeaterCalUpdate() // return BlueWireData; // } -int UHFsubcode(int val) -{ - val &= 0x03; - val = 0x0001 << val; - return val; -} +// int UHFsubcode(int val) +// { +// val &= 0x03; +// val = 0x0001 << val; +// return val; +// } void checkUHF() { diff --git a/src/Bluetooth/BluetoothHC05.cpp b/src/Bluetooth/BluetoothHC05.cpp index 051c3a5..38b6d10 100644 --- a/src/Bluetooth/BluetoothHC05.cpp +++ b/src/Bluetooth/BluetoothHC05.cpp @@ -128,6 +128,7 @@ CBluetoothHC05::begin() } DebugPort.print(" Setting baud rate to 9600N81..."); + //if(!ATCommand("AT+UART=9600,1,0\r\n")) { if(!ATCommand("AT+UART=38400,1,0\r\n")) { DebugPort.println("FAILED"); } diff --git a/src/OLED/VersionInfoScreen.cpp b/src/OLED/VersionInfoScreen.cpp index f537f59..1303bbe 100644 --- a/src/OLED/VersionInfoScreen.cpp +++ b/src/OLED/VersionInfoScreen.cpp @@ -157,26 +157,22 @@ CVersionInfoScreen::animate() // show ascending up arrow if firmware update is available on web server _animateCount++; WRAPUPPERLIMIT(_animateCount, 3, 0); -/* int ypos = 11 + 16 - 7 - _animateCount; - _display.fillRect(0, 11, 10, 21, BLACK); - _display.drawBitmap(2, ypos, WifiOutIconInfo.pBitmap, WifiOutIconInfo.width, 7, WHITE); // upload arrow - from web to afterburner - _display.fillRect(1, 12, 7, 2, WHITE); // top bar - _drawBitmap(0, 11+17, WWWIconInfo); // www icon*/ int newVer = isUpdateAvailable(); if((_animateCount & 0x02) && newVer) { - char msg[32]; - int major = (int)(newVer * 0.01); - int minor = newVer - major*100; - float prtMajor = major * 0.1; - sprintf(msg, "V%.1f.%d", prtMajor, minor); - _printMenuText(128, 15, msg, false, eRightJustify); + _display.setTextColor(WHITE); _drawBitmap(118, 24, UpdateIconInfo); } else { - _display.fillRect(82, 15, 46, 7, BLACK); + _display.setTextColor(BLACK); _display.fillRect(118, 24, 9, 10, BLACK); } + char msg[32]; + int major = (int)(newVer * 0.01); + int minor = newVer - major*100; + float prtMajor = major * 0.1; + sprintf(msg, "V%.1f.%d", prtMajor, minor); + _printMenuText(128, 15, msg, false, eRightJustify); } return true; } diff --git a/src/Protocol/TxManage.cpp b/src/Protocol/TxManage.cpp index e6a69d7..158b8b1 100644 --- a/src/Protocol/TxManage.cpp +++ b/src/Protocol/TxManage.cpp @@ -173,7 +173,7 @@ CTxManage::PrepareFrame(const CProtocol& basisFrame, bool isBTCmaster) float altitude; if(getTempSensor().getAltitude(altitude)) { // if a BME280 is fitted - // use calcualted height + // use calculated height // set 0xeb 0x47 in "unknown bytes" // - 0xeb happens with all pressure quipped units // - 0x47 with all other than coffee pod which sends 0x00? diff --git a/src/Utility/helpers.h b/src/Utility/helpers.h index 1b14b7a..d7e6141 100644 --- a/src/Utility/helpers.h +++ b/src/Utility/helpers.h @@ -49,7 +49,7 @@ extern bool hasHtrData(); extern int getBlueWireStat(); extern int getSmartError(); extern bool isCyclicStopStartActive(); -extern float getVersion(); +extern float getVersion(bool betarevision = false); const char* getVersionStr(bool beta=false); extern const char* getVersionDate(); extern int getBoardRevision(); diff --git a/src/WiFi/BTCota.cpp b/src/WiFi/BTCota.cpp index 74ffc47..26a47d8 100644 --- a/src/WiFi/BTCota.cpp +++ b/src/WiFi/BTCota.cpp @@ -38,7 +38,7 @@ bool CheckFirmwareCRC(int filesize); void onSuccess(); void onWebProgress(size_t progress, size_t total); -esp32FOTA FOTA("afterburner-fota-http", int(getVersion()*1000)); +esp32FOTA FOTA("afterburner-fota-http", int(getVersion()*1000), getVersion(true) != 0 ? true : false); unsigned long FOTAtime = millis() + 60000; // initial check in a minutes time int FOTAauth = 0;