@@ -711,8 +711,6 @@ class ESP_WiFiManager_Lite
711
711
712
712
hadConfigData = getConfigData ();
713
713
714
- isForcedConfigPortal = isForcedCP ();
715
-
716
714
// // New DRD/MRD ////
717
715
// noConfigPortal when getConfigData() OK and no MRD/DRD'ed
718
716
if (hadConfigData && noConfigPortal && (!isForcedConfigPortal) )
@@ -1168,16 +1166,14 @@ class ESP_WiFiManager_Lite
1168
1166
memset (&ESP_WM_LITE_config, 0 , sizeof (ESP_WM_LITE_config));
1169
1167
1170
1168
#if USE_DYNAMIC_PARAMETERS
1171
-
1172
1169
for (uint16_t i = 0 ; i < NUM_MENU_ITEMS; i++)
1173
1170
{
1174
1171
// Actual size of pdata is [maxlen + 1]
1175
1172
memset (myMenuItems[i].pdata , 0 , myMenuItems[i].maxlen + 1 );
1176
1173
}
1177
-
1178
1174
#endif
1179
1175
1180
- saveConfigData ();
1176
+ saveAllConfigData ();
1181
1177
}
1182
1178
1183
1179
// ////////////////////////////////////////////
@@ -1521,22 +1517,22 @@ class ESP_WiFiManager_Lite
1521
1517
{
1522
1518
#if REQUIRE_ONE_SET_SSID_PW
1523
1519
1524
- // If SSID ="blank" or NULL, or PWD length < 8 (as required by standard) => return false
1520
+ // If SSID = "blank" or NULL, or PWD length < 8 (as required by standard) => return false
1525
1521
// Only need 1 set of valid SSID/PWD
1526
- if (!( ( ( strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG))
1527
- && strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid ) > 0 ) &&
1528
- ( strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_pw ) >= PASSWORD_MIN_LEN ) ) ||
1529
- ( ( strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG))
1530
- && strlen (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid ) > 0 ) &&
1531
- ( strlen (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_pw ) >= PASSWORD_MIN_LEN ) ) ))
1522
+ if (!( ( strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) &&
1523
+ ( strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid ) > 0 ) ) &&
1524
+ ( strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_pw ) >= PASSWORD_MIN_LEN ) ) ||
1525
+ ( strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) &&
1526
+ ( strlen (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid ) > 0 ) &&
1527
+ ( strlen (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_pw ) >= PASSWORD_MIN_LEN ) ) )
1532
1528
#else
1533
1529
1534
- // If SSID ="blank" or NULL, or PWD length < 8 (as required by standard) => invalid set
1530
+ // If SSID = "blank" or NULL, or PWD length < 8 (as required by standard) => invalid set
1535
1531
// Need both sets of valid SSID/PWD
1536
- if ( !strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG) ) ||
1537
- !strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_pw , WM_NO_CONFIG, strlen (WM_NO_CONFIG) ) ||
1538
- !strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG) ) ||
1539
- !strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_pw , WM_NO_CONFIG, strlen (WM_NO_CONFIG) ) ||
1532
+ if ( !strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) ||
1533
+ !strncmp (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_pw , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) ||
1534
+ !strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) ||
1535
+ !strncmp (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_pw , WM_NO_CONFIG, strlen (WM_NO_CONFIG)) ||
1540
1536
( strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_ssid ) == 0 ) ||
1541
1537
( strlen (ESP_WM_LITE_config.WiFi_Creds [1 ].wifi_ssid ) == 0 ) ||
1542
1538
( strlen (ESP_WM_LITE_config.WiFi_Creds [0 ].wifi_pw ) < PASSWORD_MIN_LEN ) ||
@@ -1915,7 +1911,7 @@ class ESP_WiFiManager_Lite
1915
1911
strcpy (ESP_WM_LITE_config.header , ESP_WM_LITE_BOARD_TYPE);
1916
1912
1917
1913
// Including config and dynamic data, and assume valid
1918
- saveConfigData ();
1914
+ saveAllConfigData ();
1919
1915
1920
1916
ESP_WML_LOGERROR (F (" ======= Start Loaded Config Data =======" ));
1921
1917
displayConfigData (ESP_WM_LITE_config);
@@ -1932,13 +1928,11 @@ class ESP_WiFiManager_Lite
1932
1928
hadConfigData = false ;
1933
1929
1934
1930
#if ESP8266
1935
-
1936
1931
// Format SPIFFS if not yet
1937
1932
if (!FileFS.begin ())
1938
1933
{
1939
1934
FileFS.format ();
1940
1935
#else
1941
-
1942
1936
// Format SPIFFS if not yet
1943
1937
if (!FileFS.begin (true ))
1944
1938
{
@@ -1956,6 +1950,8 @@ class ESP_WiFiManager_Lite
1956
1950
}
1957
1951
}
1958
1952
1953
+ isForcedConfigPortal = isForcedCP ();
1954
+
1959
1955
if (LOAD_DEFAULT_CONFIG_DATA)
1960
1956
{
1961
1957
// Load Config Data from Sketch
@@ -2118,8 +2114,9 @@ class ESP_WiFiManager_Lite
2118
2114
2119
2115
ESP_WML_LOGINFO (F (" setForcedCP" ));
2120
2116
2117
+ EEPROM.begin (EEPROM_SIZE);
2121
2118
EEPROM.put (CONFIG_EEPROM_START + CONFIG_DATA_SIZE, readForcedConfigPortalFlag);
2122
- EEPROM.commit ();
2119
+ EEPROM.end ();
2123
2120
}
2124
2121
2125
2122
// ////////////////////////////////////////////
@@ -2128,12 +2125,14 @@ class ESP_WiFiManager_Lite
2128
2125
{
2129
2126
ESP_WML_LOGINFO (F (" clearForcedCP" ));
2130
2127
2128
+ EEPROM.begin (EEPROM_SIZE);
2131
2129
EEPROM.put (CONFIG_EEPROM_START + CONFIG_DATA_SIZE, 0 );
2132
- EEPROM.commit ();
2130
+ EEPROM.end ();
2133
2131
}
2134
2132
2135
2133
// ////////////////////////////////////////////
2136
2134
2135
+ // Is ConfigPortal forced? EEPROM must be started before using EEPROM.begin()!
2137
2136
bool isForcedCP ()
2138
2137
{
2139
2138
uint32_t readForcedConfigPortalFlag;
@@ -2166,6 +2165,8 @@ class ESP_WiFiManager_Lite
2166
2165
2167
2166
#if USE_DYNAMIC_PARAMETERS
2168
2167
2168
+ // Get DynamicData from EEPROM buffer. EEPROM must be started before using EEPROM.begin()!
2169
+ // Return true if checksum matches and data are read.
2169
2170
bool EEPROM_getDynamicData ()
2170
2171
{
2171
2172
if (hadDynamicData)
@@ -2186,7 +2187,7 @@ class ESP_WiFiManager_Lite
2186
2187
}
2187
2188
}
2188
2189
EEPROM.get (offset, readCheckSum);
2189
- ESP_WML_LOGINFO3 (F (" CrCCsum =0x" ), String (checkSum, HEX), F (" ,CrRCsum =0x" ), String (readCheckSum, HEX));
2190
+ ESP_WML_LOGINFO3 (F (" CrR:CCsum =0x" ), String (checkSum, HEX), F (" ,CrR:RCsum =0x" ), String (readCheckSum, HEX));
2190
2191
2191
2192
if (checkSum != readCheckSum)
2192
2193
{
@@ -2209,7 +2210,7 @@ class ESP_WiFiManager_Lite
2209
2210
*_pointer = EEPROM.read (offset);
2210
2211
}
2211
2212
2212
- ESP_WML_LOGDEBUG3 (F (" CR :pdata=" ), myMenuItems[i].pdata , F (" ,len=" ), myMenuItems[i].maxlen );
2213
+ ESP_WML_LOGDEBUG3 (F (" CrR :pdata=" ), myMenuItems[i].pdata , F (" ,len=" ), myMenuItems[i].maxlen );
2213
2214
}
2214
2215
2215
2216
hadDynamicData = true ;
@@ -2218,6 +2219,7 @@ class ESP_WiFiManager_Lite
2218
2219
2219
2220
// ////////////////////////////////////////////
2220
2221
2222
+ // Put DynamicData into EEPROM buffer, but do not commit. EEPROM must be started before using EEPROM.begin()!
2221
2223
void EEPROM_putDynamicData ()
2222
2224
{
2223
2225
int checkSum = 0 ;
@@ -2226,21 +2228,17 @@ class ESP_WiFiManager_Lite
2226
2228
for (uint16_t i = 0 ; i < NUM_MENU_ITEMS; i++)
2227
2229
{
2228
2230
char * _pointer = myMenuItems[i].pdata ;
2229
-
2230
- ESP_WML_LOGDEBUG3 (F (" CW:pdata=" ), myMenuItems[i].pdata , F (" ,len=" ), myMenuItems[i].maxlen );
2231
+ ESP_WML_LOGDEBUG3 (F (" CrW:pdata=" ), myMenuItems[i].pdata , F (" ,len=" ), myMenuItems[i].maxlen );
2231
2232
2232
2233
for (uint16_t j = 0 ; j < myMenuItems[i].maxlen ; j++, _pointer++, offset++)
2233
2234
{
2234
2235
EEPROM.write (offset, *_pointer);
2235
-
2236
2236
checkSum += *_pointer;
2237
2237
}
2238
2238
}
2239
2239
2240
2240
EEPROM.put (offset, checkSum);
2241
- // EEPROM.commit();
2242
-
2243
- ESP_WML_LOGINFO1 (F (" CrWCSum=0x" ), String (checkSum, HEX));
2241
+ ESP_WML_LOGINFO1 (F (" CrW:CSum=0x" ), String (checkSum, HEX));
2244
2242
}
2245
2243
#endif
2246
2244
@@ -2252,9 +2250,9 @@ class ESP_WiFiManager_Lite
2252
2250
ESP_WM_LITE_config.checkSum = calChecksum;
2253
2251
ESP_WML_LOGINFO3 (F (" SaveEEPROM,sz=" ), EEPROM_SIZE, F (" ,CSum=0x" ), String (calChecksum, HEX))
2254
2252
2253
+ EEPROM.begin (EEPROM_SIZE);
2255
2254
EEPROM.put (CONFIG_EEPROM_START, ESP_WM_LITE_config);
2256
-
2257
- EEPROM.commit ();
2255
+ EEPROM.end ();
2258
2256
}
2259
2257
2260
2258
// ////////////////////////////////////////////
@@ -2265,13 +2263,12 @@ class ESP_WiFiManager_Lite
2265
2263
ESP_WM_LITE_config.checkSum = calChecksum;
2266
2264
ESP_WML_LOGINFO3 (F (" SaveEEPROM,sz=" ), EEPROM_SIZE, F (" ,CSum=0x" ), String (calChecksum, HEX))
2267
2265
2266
+ EEPROM.begin (EEPROM_SIZE);
2268
2267
EEPROM.put (CONFIG_EEPROM_START, ESP_WM_LITE_config);
2269
-
2270
2268
#if USE_DYNAMIC_PARAMETERS
2271
2269
EEPROM_putDynamicData ();
2272
2270
#endif
2273
-
2274
- EEPROM.commit ();
2271
+ EEPROM.end ();
2275
2272
}
2276
2273
2277
2274
// ////////////////////////////////////////////
@@ -2283,7 +2280,7 @@ class ESP_WiFiManager_Lite
2283
2280
strcpy (ESP_WM_LITE_config.header , ESP_WM_LITE_BOARD_TYPE);
2284
2281
2285
2282
// Including config and dynamic data, and assume valid
2286
- saveConfigData ();
2283
+ saveAllConfigData ();
2287
2284
2288
2285
ESP_WML_LOGINFO (F (" ======= Start Loaded Config Data =======" ));
2289
2286
displayConfigData (ESP_WM_LITE_config);
@@ -2298,48 +2295,39 @@ class ESP_WiFiManager_Lite
2298
2295
2299
2296
hadConfigData = false ;
2300
2297
2301
- EEPROM.begin (EEPROM_SIZE);
2302
- ESP_WML_LOGINFO1 (F (" EEPROMsz:" ), EEPROM_SIZE);
2303
-
2304
2298
if (LOAD_DEFAULT_CONFIG_DATA)
2305
2299
{
2306
- // Load Config Data from Sketch
2307
- memcpy (&ESP_WM_LITE_config, &defaultConfig, sizeof (ESP_WM_LITE_config));
2308
- strcpy (ESP_WM_LITE_config.header , ESP_WM_LITE_BOARD_TYPE);
2309
-
2310
- // Including config and dynamic data, and assume valid
2311
- saveAllConfigData ();
2312
-
2313
- ESP_WML_LOGINFO (F (" ======= Start Loaded Config Data =======" ));
2314
- displayConfigData (ESP_WM_LITE_config);
2315
-
2300
+ loadAndSaveDefaultConfigData ();
2316
2301
// Don't need Config Portal anymore
2317
2302
return true ;
2318
2303
}
2319
2304
else
2320
2305
{
2306
+ EEPROM.begin (EEPROM_SIZE);
2307
+ ESP_WML_LOGINFO1 (F (" EEPROMsz:" ), EEPROM_SIZE);
2321
2308
// Load data from EEPROM
2322
2309
EEPROM.get (CONFIG_EEPROM_START, ESP_WM_LITE_config);
2310
+ #if USE_DYNAMIC_PARAMETERS
2311
+ // Load dynamic data from EEPROM
2312
+ dynamicDataValid = EEPROM_getDynamicData ();
2313
+ #endif
2314
+ isForcedConfigPortal = isForcedCP ();
2315
+ EEPROM.end ();
2323
2316
2324
2317
if ( !isWiFiConfigValid () )
2325
2318
{
2326
- // If SSID, PW ="blank" or NULL, stay in config mode forever until having config Data.
2319
+ // If SSID, PW = "blank" or NULL, stay in config mode forever until having config Data.
2327
2320
return false ;
2328
2321
}
2329
2322
2330
2323
ESP_WML_LOGINFO (F (" ======= Start Stored Config Data =======" ));
2331
2324
displayConfigData (ESP_WM_LITE_config);
2332
2325
2333
2326
calChecksum = calcChecksum ();
2334
-
2335
2327
ESP_WML_LOGINFO3 (F (" CCSum=0x" ), String (calChecksum, HEX),
2336
2328
F (" ,RCSum=0x" ), String (ESP_WM_LITE_config.checkSum , HEX));
2337
2329
2338
2330
#if USE_DYNAMIC_PARAMETERS
2339
-
2340
- // Load dynamic data from EEPROM
2341
- dynamicDataValid = EEPROM_getDynamicData ();
2342
-
2343
2331
if (dynamicDataValid)
2344
2332
{
2345
2333
ESP_WML_LOGINFO (F (" Valid Stored Dynamic Data" ));
@@ -2348,7 +2336,6 @@ class ESP_WiFiManager_Lite
2348
2336
{
2349
2337
ESP_WML_LOGINFO (F (" Invalid Stored Dynamic Data. Ignored" ));
2350
2338
}
2351
-
2352
2339
#endif
2353
2340
}
2354
2341
@@ -2383,7 +2370,7 @@ class ESP_WiFiManager_Lite
2383
2370
}
2384
2371
else if ( !isWiFiConfigValid () )
2385
2372
{
2386
- // If SSID, PW ="blank" or NULL, stay in config mode forever until having config Data.
2373
+ // If SSID, PW = "blank" or NULL, stay in config mode forever until having config Data.
2387
2374
return false ;
2388
2375
}
2389
2376
@@ -2525,7 +2512,7 @@ class ESP_WiFiManager_Lite
2525
2512
ListOfSSIDs = String (FPSTR (ESP_WM_LITE_OPTION_START)) + String (FPSTR (ESP_WM_LITE_NO_NETWORKS_FOUND)) + String (FPSTR (ESP_WM_LITE_OPTION_END));
2526
2513
2527
2514
pitem = FPSTR (ESP_WM_LITE_HTML_HEAD_END);
2528
- ESP_WML_LOGERROR3 (" 1 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2515
+ ESP_WML_LOGERROR3 (" 1 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2529
2516
#if MANUAL_SSID_INPUT_ALLOWED
2530
2517
pitem.replace (" [[input_id]]" , " <input id='id' list='SSIDs'>" + String (FPSTR (ESP_WM_LITE_DATALIST_START)) + " 'SSIDs'>" +
2531
2518
ListOfSSIDs + FPSTR (ESP_WM_LITE_DATALIST_END));
@@ -2535,9 +2522,9 @@ ESP_WML_LOGERROR3("1 pitem.capacity():", String(pitem.capacity()), " pitem.lengt
2535
2522
ESP_WML_LOGDEBUG1 (F (" pitem:" ), pitem);
2536
2523
#else
2537
2524
pitem.replace (F (" [[input_id]]" ), F (" <select id='id'>" ) + ListOfSSIDs + String (FPSTR (ESP_WM_LITE_SELECT_END)));
2538
- ESP_WML_LOGERROR3 (" 2 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2525
+ ESP_WML_LOGERROR3 (" 2 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2539
2526
pitem.replace (F (" [[input_id1]]" ), F (" <select id='id1'>" ) + ListOfSSIDs + String (FPSTR (ESP_WM_LITE_SELECT_END)));
2540
- ESP_WML_LOGERROR3 (" 3 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2527
+ ESP_WML_LOGERROR3 (" 3 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2541
2528
#endif
2542
2529
2543
2530
root_html_template += pitem + FPSTR (ESP_WM_LITE_FLDSET_START);
@@ -2556,12 +2543,12 @@ ESP_WML_LOGERROR3("3 pitem.capacity():", String(pitem.capacity()), " pitem.lengt
2556
2543
for (uint16_t i = 0 ; i < NUM_MENU_ITEMS; i++)
2557
2544
{
2558
2545
pitem = FPSTR (ESP_WM_LITE_HTML_PARAM);
2559
- ESP_WML_LOGERROR3 (" 4 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2546
+ ESP_WML_LOGERROR3 (" 4 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2560
2547
2561
2548
pitem.replace (" {b}" , myMenuItems[i].displayName );
2562
2549
pitem.replace (" {v}" , myMenuItems[i].id );
2563
2550
pitem.replace (" {i}" , myMenuItems[i].id );
2564
- ESP_WML_LOGERROR3 (" 5 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2551
+ ESP_WML_LOGERROR3 (" 5 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2565
2552
2566
2553
root_html_template += pitem;
2567
2554
}
@@ -2575,7 +2562,7 @@ ESP_WML_LOGERROR3("5 pitem.capacity():", String(pitem.capacity()), " pitem.lengt
2575
2562
for (uint16_t i = 0 ; i < NUM_MENU_ITEMS; i++)
2576
2563
{
2577
2564
pitem = FPSTR (ESP_WM_LITE_HTML_SCRIPT_ITEM);
2578
- ESP_WML_LOGERROR3 (" 6 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO
2565
+ ESP_WML_LOGERROR3 (" 6 pitem.capacity():" , String (pitem.capacity ()), " pitem.length():" , String (pitem.length ())); // TODO del log
2579
2566
2580
2567
pitem.replace (" {d}" , myMenuItems[i].id );
2581
2568
@@ -2584,9 +2571,9 @@ ESP_WML_LOGERROR3("6 pitem.capacity():", String(pitem.capacity()), " pitem.lengt
2584
2571
2585
2572
#endif
2586
2573
2587
- ESP_WML_LOGERROR3 (" 7 root_html_template.capacity():" , String (root_html_template.capacity ()), " root_html_template.length():" , String (root_html_template.length ())); // TODO
2574
+ ESP_WML_LOGERROR3 (" 7 root_html_template.capacity():" , String (root_html_template.capacity ()), " root_html_template.length():" , String (root_html_template.length ())); // TODO del log
2588
2575
root_html_template += String (FPSTR (ESP_WM_LITE_HTML_SCRIPT_END)) + FPSTR (ESP_WM_LITE_HTML_END);
2589
- ESP_WML_LOGERROR3 (" 8 root_html_template.capacity():" , String (root_html_template.capacity ()), " root_html_template.length():" , String (root_html_template.length ())); // TODO
2576
+ ESP_WML_LOGERROR3 (" 8 root_html_template.capacity():" , String (root_html_template.capacity ()), " root_html_template.length():" , String (root_html_template.length ())); // TODO del log
2590
2577
2591
2578
return ;
2592
2579
}
0 commit comments