Ho bisogno di aiuto
, sto lavorando a un progetto in cui salvo la configurazione in un config.json memorizzato sul LittleFS di un ESP32.
Per prima cosa controllo se ci sono dati ... In caso contrario, creo il config.json e lo salvo (funziona). Quando eseguo per la seconda volta provo a prelevare i dati da lì, ma non capisco il comando per recuperare i dati in modo da poter deserializzare l'array. Ho controllato l'array (config.json) ed è stato salvato nel modo giusto.
void checkFile() {
bool fileexists = LittleFS.exists("/config.json");
Serial.print(fileexists);
if(!fileexists) {
Serial.println("File doesn’t exist");
Serial.println("Creating file...");
String config;
JsonDocument doc;
doc["ssid"] = "ssid";
doc["password"] = "pass";
doc["myChannelNumber"] = "chan";
doc["myWriteAPIKey"] = "api";
doc["thingspeak"] = 0;
doc["sonda1"] = "0x28, 0xE0, 0x7F, 0x2A, 0x06, 0x00, 0x00, 0x8F";
doc["sonda2"] = "0x28, 0xE0, 0x7F, 0x2A, 0x06, 0x00, 0x00, 0x8F";
doc["sonda3"] = "0x28, 0xE0, 0x7F, 0x2A, 0x06, 0x00, 0x00, 0x8F";
doc["mitt"] = "mitt@mitt.com";
doc["dest"] = "dest@dest.com";
doc["impianto"] = "name";
serializeJson(doc, config);
firstWriteFile(LittleFS, "/config.json", config.c_str());
}
else {
loadSettings(LittleFS, "/config.json");
}
}
void loadSettings(fs::FS &fs, const char *path) {
File file = fs.open(path, "r");
--> "what is the right way to keep the data so i can deserialize them?"
JsonDocument configLoad;
deserializeJson(configLoad, output);
ssid = configLoad["ssid"];
password = configLoad["password"];
myChannelNumber = configLoad["myChannelNumber"];
myWriteAPIKey = configLoad["myWriteAPIKey"];
thingspeak = configLoad["thingspeak"];
sonda1 = configLoad["sonda1"];
sonda2 = configLoad["sonda2"];
sonda3 = configLoad["sonda3"];
mitt = configLoad["mitt"];
dest = configLoad["dest"];
impianto = configLoad["impianto"];
file.close();
}
void firstWriteFile(fs::FS &fs, const char *path, const char * message) {
Serial.printf("Writing file: %s\r\n", path);
File file = fs.open(path, FILE_WRITE);
if (!file) {
Serial.println("- failed to open file for writing");
return;
}
if (file.print(message)) {
Serial.println("- file written");
} else {
Serial.println("- write failed");
}
file.close();
}