@@ -44,37 +44,13 @@ void menuFirmware()
44
44
}
45
45
else if (incoming == ' c' && btPrintEcho == false )
46
46
{
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 )
53
48
{
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, ¤tVersion[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" );
75
50
}
76
- else if (incoming == ' c ' && btPrintEcho == false )
51
+ else
77
52
{
53
+
78
54
bool previouslyConnected = wifiIsConnected ();
79
55
80
56
bluetoothStop (); // Stop Bluetooth to allow for SSL on the heap
@@ -104,13 +80,45 @@ void menuFirmware()
104
80
systemPrintln (" Failed to get version number from server." );
105
81
}
106
82
}
107
- else
108
- systemPrintln (" Firmware update failed to connect to WiFi." );
83
+ else if (incoming == ' c' && btPrintEcho == false )
84
+ {
85
+ bool previouslyConnected = wifiIsConnected ();
109
86
110
- if (previouslyConnected == false )
111
- wifiStop ();
87
+ bluetoothStop (); // Stop Bluetooth to allow for SSL on the heap
112
88
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, ¤tVersion[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
+ }
114
122
}
115
123
}
116
124
else if (incoming == ' c' && btPrintEcho == true )
@@ -274,7 +282,7 @@ void scanForFirmware()
274
282
tempFile = dir.openNextFile ();
275
283
}
276
284
}
277
- #endif // COMPILE_SD_MMC
285
+ #endif // COMPILE_SD_MMC
278
286
}
279
287
280
288
// Look for firmware file on SD card and update as needed
@@ -326,7 +334,7 @@ void updateFromSD(const char *firmwareFileName)
326
334
return ;
327
335
}
328
336
}
329
- #endif // COMPILE_SD_MMC
337
+ #endif // COMPILE_SD_MMC
330
338
331
339
FileSdFatMMC firmwareFile;
332
340
firmwareFile.open (firmwareFileName, O_READ);
@@ -421,7 +429,7 @@ void updateFromSD(const char *firmwareFileName)
421
429
#ifdef COMPILE_SD_MMC
422
430
else
423
431
SD_MMC.remove (firmwareFileName);
424
- #endif // COMPILE_SD_MMC
432
+ #endif // COMPILE_SD_MMC
425
433
426
434
theGNSS.factoryDefault (); // Reset everything: baud rate, I2C address, update rate, everything. And save
427
435
// to BBR.
@@ -447,7 +455,7 @@ void updateFromSD(const char *firmwareFileName)
447
455
}
448
456
449
457
// 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)
451
459
{
452
460
char prefix;
453
461
@@ -474,12 +482,12 @@ void formatFirmwareVersion(uint8_t major, uint8_t minor, char * buffer, int buff
474
482
}
475
483
476
484
// Get the current firmware version
477
- void getFirmwareVersion (char * buffer, int bufferLength, bool includeDate)
485
+ void getFirmwareVersion (char *buffer, int bufferLength, bool includeDate)
478
486
{
479
487
formatFirmwareVersion (FIRMWARE_VERSION_MAJOR, FIRMWARE_VERSION_MINOR, buffer, bufferLength, includeDate);
480
488
}
481
489
482
- const char * otaGetUrl ()
490
+ const char *otaGetUrl ()
483
491
{
484
492
// Select the URL for the over-the-air (OTA) updates
485
493
return enableRCFirmware ? OTA_RC_FIRMWARE_JSON_URL : OTA_FIRMWARE_JSON_URL;
@@ -500,7 +508,7 @@ bool otaCheckVersion(char *versionAvailable, uint8_t versionAvailableLength)
500
508
getFirmwareVersion (versionString, sizeof (versionString), enableRCFirmware);
501
509
systemPrintf (" Current firmware version: %s\r\n " , versionString);
502
510
503
- const char * url = otaGetUrl ();
511
+ const char *url = otaGetUrl ();
504
512
systemPrintf (" Checking to see if an update is available from %s\r\n " , url);
505
513
506
514
ESP32OTAPull ota;
@@ -543,7 +551,7 @@ bool otaCheckVersion(char *versionAvailable, uint8_t versionAvailableLength)
543
551
if (gotVersion == true )
544
552
log_d (" Available OTA firmware version: %s\r\n " , versionAvailable);
545
553
546
- #endif // COMPILE_WIFI
554
+ #endif // COMPILE_WIFI
547
555
return (gotVersion);
548
556
}
549
557
@@ -562,22 +570,22 @@ void otaUpdate()
562
570
ESP32OTAPull ota;
563
571
564
572
int response;
565
- const char * url = otaGetUrl ();
573
+ const char *url = otaGetUrl ();
566
574
response = ota.CheckForOTAUpdate (url, &versionString[1 ], ESP32OTAPull::DONT_DO_UPDATE);
567
575
568
576
if (response == ESP32OTAPull::UPDATE_AVAILABLE)
569
577
{
570
578
systemPrintln (" Installing new firmware" );
571
579
ota.SetCallback (otaPullCallback);
572
580
if (enableRCFirmware == false )
573
- ota.CheckForOTAUpdate (url, versionString); // Install new firmware, no reset
581
+ ota.CheckForOTAUpdate (url, versionString); // Install new firmware, no reset
574
582
575
583
if (apConfigFirmwareUpdateInProcess)
576
584
{
577
585
#ifdef COMPILE_AP
578
586
// Tell AP page to display reset info
579
587
websocket->textAll (" confirmReset,1," );
580
- #endif // COMPILE_AP
588
+ #endif // COMPILE_AP
581
589
}
582
590
ESP.restart ();
583
591
}
@@ -603,7 +611,7 @@ void otaUpdate()
603
611
if (previouslyConnected == false )
604
612
wifiStop ();
605
613
606
- #endif // COMPILE_WIFI
614
+ #endif // COMPILE_WIFI
607
615
}
608
616
609
617
// Called while the OTA Pull update is happening
@@ -634,7 +642,7 @@ void otaPullCallback(int bytesWritten, int totalLength)
634
642
char myProgress[50 ];
635
643
snprintf (myProgress, sizeof (myProgress), " otaFirmwareStatus,%d," , percent);
636
644
websocket->textAll (myProgress);
637
- #endif // COMPILE_AP
645
+ #endif // COMPILE_AP
638
646
}
639
647
640
648
previousPercent = percent;
@@ -667,7 +675,7 @@ const char *otaPullErrorText(int code)
667
675
return " Unexpected HTTP response code" ;
668
676
break ;
669
677
}
670
- #endif // COMPILE_WIFI
678
+ #endif // COMPILE_WIFI
671
679
return " Unknown error" ;
672
680
}
673
681
0 commit comments