|
1 | 1 | void loadSettings() |
2 | 2 | { |
| 3 | + if (online.eeprom == false) |
| 4 | + { |
| 5 | + ESP_LOGD(TAG, "Error: EEPROM not online"); |
| 6 | + return; |
| 7 | + } |
| 8 | + |
3 | 9 | //First load any settings from NVM |
4 | 10 | //After, we'll load settings from config file if available |
5 | 11 | //We'll then re-record settings so that the settings from the file over-rides internal NVM settings |
@@ -41,25 +47,44 @@ void loadSettings() |
41 | 47 | recordSystemSettings(); |
42 | 48 | } |
43 | 49 |
|
| 50 | +//Load settings without recording |
| 51 | +//Used at very first boot to test for resetCounter |
| 52 | +void loadSettingsPartial() |
| 53 | +{ |
| 54 | + if (online.eeprom == false) |
| 55 | + { |
| 56 | + ESP_LOGD(TAG, "Error: EEPROM not online"); |
| 57 | + return; |
| 58 | + } |
| 59 | + |
| 60 | + //Check to see if EEPROM is blank |
| 61 | + uint32_t testRead = 0; |
| 62 | + if (EEPROM.get(0, testRead) == 0xFFFFFFFF) |
| 63 | + return; //EEPROM is blank, assume default settings |
| 64 | + |
| 65 | + EEPROM.get(0, settings); //Read current settings |
| 66 | +} |
| 67 | + |
44 | 68 | //Record the current settings struct to EEPROM and then to config file |
45 | 69 | void recordSystemSettings() |
46 | 70 | { |
47 | 71 | settings.sizeOfSettings = sizeof(settings); |
48 | 72 | if (settings.sizeOfSettings > EEPROM_SIZE) |
49 | 73 | { |
50 | | - displayError("EEPROM"); |
| 74 | + Serial.printf("Size of settings is %d bytes\n\r", sizeof(settings)); |
| 75 | + Serial.println(F("Increase the EEPROM footprint!")); |
| 76 | + displayError("EEPROM"); //Hard freeze |
| 77 | + } |
51 | 78 |
|
52 | | - while (1) //Hard freeze |
53 | | - { |
54 | | - Serial.printf("Size of settings is %d bytes\n\r", sizeof(settings)); |
55 | | - Serial.println(F("Increase the EEPROM footprint!")); |
56 | | - delay(1000); |
57 | | - } |
| 79 | + if (online.eeprom == true) |
| 80 | + { |
| 81 | + EEPROM.put(0, settings); |
| 82 | + EEPROM.commit(); |
| 83 | + delay(1); //Give CPU time to pet WDT |
58 | 84 | } |
| 85 | + else |
| 86 | + ESP_LOGD(TAG, "Error: EEPROM not online"); |
59 | 87 |
|
60 | | - EEPROM.put(0, settings); |
61 | | - EEPROM.commit(); |
62 | | - delay(1); //Give CPU time to pet WDT |
63 | 88 | recordSystemSettingsToFile(); |
64 | 89 | } |
65 | 90 |
|
@@ -142,7 +167,6 @@ void recordSystemSettingsToFile() |
142 | 167 | settingsFile.println("enableSensorFusion=" + (String)settings.enableSensorFusion); |
143 | 168 | settingsFile.println("autoIMUmountAlignment=" + (String)settings.autoIMUmountAlignment); |
144 | 169 | settingsFile.println("enableResetDisplay=" + (String)settings.enableResetDisplay); |
145 | | - settingsFile.println("resetCount=" + (String)settings.resetCount); |
146 | 170 |
|
147 | 171 | //Record constellation settings |
148 | 172 | for (int x = 0 ; x < MAX_CONSTELLATIONS ; x++) |
@@ -411,8 +435,6 @@ bool parseLine(char* str) { |
411 | 435 | settings.autoIMUmountAlignment = d; |
412 | 436 | else if (strcmp(settingName, "enableResetDisplay") == 0) |
413 | 437 | settings.enableResetDisplay = d; |
414 | | - else if (strcmp(settingName, "resetCount") == 0) |
415 | | - settings.resetCount = d; |
416 | 438 |
|
417 | 439 | //Check for bulk settings (constellations and message rates) |
418 | 440 | //Must be last on else list |
|
0 commit comments