Skip to content

Commit 7f2e1f9

Browse files
committed
Check for >0 WiFi networks before checking WiFi
1 parent 3ba618b commit 7f2e1f9

File tree

1 file changed

+55
-47
lines changed

1 file changed

+55
-47
lines changed

Firmware/RTK_Surveyor/menuFirmware.ino

Lines changed: 55 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,13 @@ void menuFirmware()
4444
}
4545
else if (incoming == 'c' && btPrintEcho == false)
4646
{
47-
bool previouslyConnected = wifiIsConnected();
48-
49-
bluetoothStop(); // Stop Bluetooth to allow for SSL on the heap
50-
51-
// Attempt to connect to local WiFi
52-
if (wifiConnect(10000) == true)
47+
if (wifiNetworkCount() == 0)
5348
{
54-
// Get firmware version from server
55-
if (otaCheckVersion(reportedVersion, sizeof(reportedVersion)))
56-
{
57-
// We got a version number, now determine if it's newer or not
58-
char currentVersion[21];
59-
getFirmwareVersion(currentVersion, sizeof(currentVersion), enableRCFirmware);
60-
if (isReportedVersionNewer(reportedVersion, &currentVersion[1]) == true)
61-
{
62-
log_d("New version detected");
63-
newOTAFirmwareAvailable = true;
64-
}
65-
else
66-
{
67-
log_d("No new firmware available");
68-
}
69-
}
70-
else
71-
{
72-
// Failed to get version number
73-
systemPrintln("Failed to get version number from server.");
74-
}
49+
systemPrintln("Error: Please enter at least one SSID before updating firmware");
7550
}
76-
else if (incoming == 'c' && btPrintEcho == false)
51+
else
7752
{
53+
7854
bool previouslyConnected = wifiIsConnected();
7955

8056
bluetoothStop(); // Stop Bluetooth to allow for SSL on the heap
@@ -104,13 +80,45 @@ void menuFirmware()
10480
systemPrintln("Failed to get version number from server.");
10581
}
10682
}
107-
else
108-
systemPrintln("Firmware update failed to connect to WiFi.");
83+
else if (incoming == 'c' && btPrintEcho == false)
84+
{
85+
bool previouslyConnected = wifiIsConnected();
10986

110-
if (previouslyConnected == false)
111-
wifiStop();
87+
bluetoothStop(); // Stop Bluetooth to allow for SSL on the heap
11288

113-
bluetoothStart(); // Restart BT according to settings
89+
// Attempt to connect to local WiFi
90+
if (wifiConnect(10000) == true)
91+
{
92+
// Get firmware version from server
93+
if (otaCheckVersion(reportedVersion, sizeof(reportedVersion)))
94+
{
95+
// We got a version number, now determine if it's newer or not
96+
char currentVersion[21];
97+
getFirmwareVersion(currentVersion, sizeof(currentVersion), enableRCFirmware);
98+
if (isReportedVersionNewer(reportedVersion, &currentVersion[1]) == true)
99+
{
100+
log_d("New version detected");
101+
newOTAFirmwareAvailable = true;
102+
}
103+
else
104+
{
105+
log_d("No new firmware available");
106+
}
107+
}
108+
else
109+
{
110+
// Failed to get version number
111+
systemPrintln("Failed to get version number from server.");
112+
}
113+
}
114+
else
115+
systemPrintln("Firmware update failed to connect to WiFi.");
116+
117+
if (previouslyConnected == false)
118+
wifiStop();
119+
120+
bluetoothStart(); // Restart BT according to settings
121+
}
114122
}
115123
}
116124
else if (incoming == 'c' && btPrintEcho == true)
@@ -274,7 +282,7 @@ void scanForFirmware()
274282
tempFile = dir.openNextFile();
275283
}
276284
}
277-
#endif // COMPILE_SD_MMC
285+
#endif // COMPILE_SD_MMC
278286
}
279287

280288
// Look for firmware file on SD card and update as needed
@@ -326,7 +334,7 @@ void updateFromSD(const char *firmwareFileName)
326334
return;
327335
}
328336
}
329-
#endif // COMPILE_SD_MMC
337+
#endif // COMPILE_SD_MMC
330338

331339
FileSdFatMMC firmwareFile;
332340
firmwareFile.open(firmwareFileName, O_READ);
@@ -421,7 +429,7 @@ void updateFromSD(const char *firmwareFileName)
421429
#ifdef COMPILE_SD_MMC
422430
else
423431
SD_MMC.remove(firmwareFileName);
424-
#endif // COMPILE_SD_MMC
432+
#endif // COMPILE_SD_MMC
425433

426434
theGNSS.factoryDefault(); // Reset everything: baud rate, I2C address, update rate, everything. And save
427435
// to BBR.
@@ -447,7 +455,7 @@ void updateFromSD(const char *firmwareFileName)
447455
}
448456

449457
// Format the firmware version
450-
void formatFirmwareVersion(uint8_t major, uint8_t minor, char * buffer, int bufferLength, bool includeDate)
458+
void formatFirmwareVersion(uint8_t major, uint8_t minor, char *buffer, int bufferLength, bool includeDate)
451459
{
452460
char prefix;
453461

@@ -474,12 +482,12 @@ void formatFirmwareVersion(uint8_t major, uint8_t minor, char * buffer, int buff
474482
}
475483

476484
// Get the current firmware version
477-
void getFirmwareVersion(char * buffer, int bufferLength, bool includeDate)
485+
void getFirmwareVersion(char *buffer, int bufferLength, bool includeDate)
478486
{
479487
formatFirmwareVersion(FIRMWARE_VERSION_MAJOR, FIRMWARE_VERSION_MINOR, buffer, bufferLength, includeDate);
480488
}
481489

482-
const char * otaGetUrl()
490+
const char *otaGetUrl()
483491
{
484492
// Select the URL for the over-the-air (OTA) updates
485493
return enableRCFirmware ? OTA_RC_FIRMWARE_JSON_URL : OTA_FIRMWARE_JSON_URL;
@@ -500,7 +508,7 @@ bool otaCheckVersion(char *versionAvailable, uint8_t versionAvailableLength)
500508
getFirmwareVersion(versionString, sizeof(versionString), enableRCFirmware);
501509
systemPrintf("Current firmware version: %s\r\n", versionString);
502510

503-
const char * url = otaGetUrl();
511+
const char *url = otaGetUrl();
504512
systemPrintf("Checking to see if an update is available from %s\r\n", url);
505513

506514
ESP32OTAPull ota;
@@ -543,7 +551,7 @@ bool otaCheckVersion(char *versionAvailable, uint8_t versionAvailableLength)
543551
if (gotVersion == true)
544552
log_d("Available OTA firmware version: %s\r\n", versionAvailable);
545553

546-
#endif // COMPILE_WIFI
554+
#endif // COMPILE_WIFI
547555
return (gotVersion);
548556
}
549557

@@ -562,22 +570,22 @@ void otaUpdate()
562570
ESP32OTAPull ota;
563571

564572
int response;
565-
const char * url = otaGetUrl();
573+
const char *url = otaGetUrl();
566574
response = ota.CheckForOTAUpdate(url, &versionString[1], ESP32OTAPull::DONT_DO_UPDATE);
567575

568576
if (response == ESP32OTAPull::UPDATE_AVAILABLE)
569577
{
570578
systemPrintln("Installing new firmware");
571579
ota.SetCallback(otaPullCallback);
572580
if (enableRCFirmware == false)
573-
ota.CheckForOTAUpdate(url, versionString); // Install new firmware, no reset
581+
ota.CheckForOTAUpdate(url, versionString); // Install new firmware, no reset
574582

575583
if (apConfigFirmwareUpdateInProcess)
576584
{
577585
#ifdef COMPILE_AP
578586
// Tell AP page to display reset info
579587
websocket->textAll("confirmReset,1,");
580-
#endif // COMPILE_AP
588+
#endif // COMPILE_AP
581589
}
582590
ESP.restart();
583591
}
@@ -603,7 +611,7 @@ void otaUpdate()
603611
if (previouslyConnected == false)
604612
wifiStop();
605613

606-
#endif // COMPILE_WIFI
614+
#endif // COMPILE_WIFI
607615
}
608616

609617
// Called while the OTA Pull update is happening
@@ -634,7 +642,7 @@ void otaPullCallback(int bytesWritten, int totalLength)
634642
char myProgress[50];
635643
snprintf(myProgress, sizeof(myProgress), "otaFirmwareStatus,%d,", percent);
636644
websocket->textAll(myProgress);
637-
#endif // COMPILE_AP
645+
#endif // COMPILE_AP
638646
}
639647

640648
previousPercent = percent;
@@ -667,7 +675,7 @@ const char *otaPullErrorText(int code)
667675
return "Unexpected HTTP response code";
668676
break;
669677
}
670-
#endif // COMPILE_WIFI
678+
#endif // COMPILE_WIFI
671679
return "Unknown error";
672680
}
673681

0 commit comments

Comments
 (0)