Hi,
for my project I need to store datas in a json file in littlefs partition.
The json file contains 140 strings which are all the same type : "XX:XX" (time hour minute),
it contains also 42 bools
When I want to load and read this file, I declare
String StartHour[70];
String EndHour[70];
bool CheckTempo[42];
To read and load the value, I use
fs::File configFile = LittleFS.open(filename, "r");
StaticJsonDocument<4096> doc;
DeserializationError error = deserializeJson(doc, configFile);
if (error) {
Serial.println(F("Failed to read file, using default configuration in function loadConfiguration"));
}
configrelais.CheckJoursTEMPO[0] = doc["CheckJoursRouge_Lun1"].as<bool>();
configrelais.CheckJoursTEMPO[1] = doc["CheckJoursBlanc_Lun1"].as<bool>();
configrelais.CheckJoursTEMPO[2] = doc["CheckJoursBleu_Lun1"].as<bool>();
configrelais.CheckJoursTEMPO[3] = doc["CheckJoursRouge_Mar1"].as<bool>();
configrelais.CheckJoursTEMPO[4] = doc["CheckJoursBlanc_Mar1"].as<bool>();
configrelais.CheckJoursTEMPO[5] = doc["CheckJoursBleu_Mar1"].as<bool>();
configrelais.CheckJoursTEMPO[6] = doc["CheckJoursRouge_Mer1"].as<bool>();
configrelais.CheckJoursTEMPO[7] = doc["CheckJoursBlanc_Mer1"].as<bool>();
configrelais.CheckJoursTEMPO[8] = doc["CheckJoursBleu_Mer1"].as<bool>();
configrelais.CheckJoursTEMPO[9] = doc["CheckJoursRouge_Jeu1"].as<bool>();
configrelais.CheckJoursTEMPO[10] = doc["CheckJoursBlanc_Jeu1"].as<bool>();
configrelais.CheckJoursTEMPO[11] = doc["CheckJoursBleu_Jeu1"].as<bool>();
configrelais.CheckJoursTEMPO[12] = doc["CheckJoursRouge_Ven1"].as<bool>();
configrelais.CheckJoursTEMPO[13] = doc["CheckJoursBlanc_Ven1"].as<bool>();
configrelais.CheckJoursTEMPO[14] = doc["CheckJoursBleu_Ven1"].as<bool>();
configrelais.CheckJoursTEMPO[15] = doc["CheckJoursRouge_Sam1"].as<bool>();
configrelais.CheckJoursTEMPO[16] = doc["CheckJoursBlanc_Sam1"].as<bool>();
configrelais.CheckJoursTEMPO[17] = doc["CheckJoursBleu_Sam1"].as<bool>();
configrelais.CheckJoursTEMPO[18] = doc["CheckJoursRouge_Dim1"].as<bool>();
configrelais.CheckJoursTEMPO[19] = doc["CheckJoursBlanc_Dim1"].as<bool>();
configrelais.CheckJoursTEMPO[20] = doc["CheckJoursBleu_Dim1"].as<bool>();
//RELAIS 2
configrelais.CheckJoursTEMPO[0+21] = doc["CheckJoursRouge_Lun2"].as<bool>();
configrelais.CheckJoursTEMPO[1+21] = doc["CheckJoursBlanc_Lun2"].as<bool>();
configrelais.CheckJoursTEMPO[2+21] = doc["CheckJoursBleu_Lun2"].as<bool>();
configrelais.CheckJoursTEMPO[3+21] = doc["CheckJoursRouge_Mar2"].as<bool>();
configrelais.CheckJoursTEMPO[4+21] = doc["CheckJoursBlanc_Mar2"].as<bool>();
configrelais.CheckJoursTEMPO[5+21] = doc["CheckJoursBleu_Mar2"].as<bool>();
configrelais.CheckJoursTEMPO[6+21] = doc["CheckJoursRouge_Mer2"].as<bool>();
configrelais.CheckJoursTEMPO[7+21] = doc["CheckJoursBlanc_Mer2"].as<bool>();
configrelais.CheckJoursTEMPO[8+21] = doc["CheckJoursBleu_Mer2"].as<bool>();
configrelais.CheckJoursTEMPO[9+21] = doc["CheckJoursRouge_Jeu2"].as<bool>();
configrelais.CheckJoursTEMPO[10+21] = doc["CheckJoursBlanc_Jeu2"].as<bool>();
configrelais.CheckJoursTEMPO[11+21] = doc["CheckJoursBleu_Jeu2"].as<bool>();
configrelais.CheckJoursTEMPO[12+21] = doc["CheckJoursRouge_Ven2"].as<bool>();
configrelais.CheckJoursTEMPO[13+21] = doc["CheckJoursBlanc_Ven2"].as<bool>();
configrelais.CheckJoursTEMPO[14+21] = doc["CheckJoursBleu_Ven2"].as<bool>();
configrelais.CheckJoursTEMPO[15+21] = doc["CheckJoursRouge_Sam2"].as<bool>();
configrelais.CheckJoursTEMPO[16+21] = doc["CheckJoursBlanc_Sam2"].as<bool>();
configrelais.CheckJoursTEMPO[17+21] = doc["CheckJoursBleu_Sam2"].as<bool>();
configrelais.CheckJoursTEMPO[18+21] = doc["CheckJoursRouge_Dim2"].as<bool>();
configrelais.CheckJoursTEMPO[19+21] = doc["CheckJoursBlanc_Dim2"].as<bool>();
configrelais.CheckJoursTEMPO[20+21] = doc["CheckJoursBleu_Dim2"].as<bool>();
//PLAGE 1 RELAIS1
configrelais.StartHour[0] = doc["H1Start_Lun1"].as<String>();
configrelais.EndHour[0] = doc["H1End_Lun1"].as<String>();
configrelais.StartHour[1] = doc["H1Start_Mar1"].as<String>();
configrelais.EndHour[1] = doc["H1End_Mar1"].as<String>();
configrelais.StartHour[2] = doc["H1Start_Mer1"].as<String>();
configrelais.EndHour[2] = doc["H1End_Mer1"].as<String>();
configrelais.StartHour[3] = doc["H1Start_Jeu1"].as<String>();
configrelais.EndHour[3] = doc["H1End_Jeu1"].as<String>();
configrelais.StartHour[4] = doc["H1Start_Ven1"].as<String>();
configrelais.EndHour[4] = doc["H1End_Ven1"].as<String>();
configrelais.StartHour[5] = doc["H1Start_Sam1"].as<String>();
configrelais.EndHour[5] = doc["H1End_Sam1"].as<String>();
configrelais.StartHour[6] = doc["H1Start_Dim1"].as<String>();
configrelais.EndHour[6] = doc["H1End_Dim1"].as<String>();
//PLAGE 2 RELAIS1
configrelais.StartHour[0+7] = doc["H2Start_Lun1"].as<String>();
configrelais.EndHour[0+7] = doc["H2End_Lun1"].as<String>();
configrelais.StartHour[1+7] = doc["H2Start_Mar1"].as<String>();
configrelais.EndHour[1+7] = doc["H2End_Mar1"].as<String>();
configrelais.StartHour[2+7] = doc["H2Start_Mer1"].as<String>();
configrelais.EndHour[2+7] = doc["H2End_Mer1"].as<String>();
configrelais.StartHour[3+7] = doc["H2Start_Jeu1"].as<String>();
configrelais.EndHour[3+7] = doc["H2End_Jeu1"].as<String>();
configrelais.StartHour[4+7] = doc["H2Start_Ven1"].as<String>();
configrelais.EndHour[4+7] = doc["H2End_Ven1"].as<String>();
configrelais.StartHour[5+7] = doc["H2Start_Sam1"].as<String>();
configrelais.EndHour[5+7] = doc["H2End_Sam1"].as<String>();
configrelais.StartHour[6+7] = doc["H2Start_Dim1"].as<String>();
configrelais.EndHour[6+7] = doc["H2End_Dim1"].as<String>();
//PLAGE 3 RELAIS1
configrelais.StartHour[0+14] = doc["H3Start_Lun1"].as<String>();
configrelais.EndHour[0+14] = doc["H3End_Lun1"].as<String>();
configrelais.StartHour[1+14] = doc["H3Start_Mar1"].as<String>();
configrelais.EndHour[1+14] = doc["H3End_Mar1"].as<String>();
configrelais.StartHour[2+14] = doc["H3Start_Mer1"].as<String>();
configrelais.EndHour[2+14] = doc["H3End_Mer1"].as<String>();
configrelais.StartHour[3+14] = doc["H3Start_Jeu1"].as<String>();
configrelais.EndHour[3+14] = doc["H3End_Jeu1"].as<String>();
configrelais.StartHour[4+14] = doc["H3Start_Ven1"].as<String>();
configrelais.EndHour[4+14] = doc["H3End_Ven1"].as<String>();
configrelais.StartHour[5+14] = doc["H3Start_Sam1"].as<String>();
configrelais.EndHour[5+14] = doc["H3End_Sam1"].as<String>();
configrelais.StartHour[6+14] = doc["H3Start_Dim1"].as<String>();
configrelais.EndHour[6+14] = doc["H3End_Dim1"].as<String>();
//PLAGE 4 RELAIS1
configrelais.StartHour[0+21] = doc["H4Start_Lun1"].as<String>();
configrelais.EndHour[0+21] = doc["H4End_Lun1"].as<String>();
configrelais.StartHour[1+21] = doc["H4Start_Mar1"].as<String>();
configrelais.EndHour[1+21] = doc["H4End_Mar1"].as<String>();
configrelais.StartHour[2+21] = doc["H4Start_Mer1"].as<String>();
configrelais.EndHour[2+21] = doc["H4End_Mer1"].as<String>();
configrelais.StartHour[3+21] = doc["H4Start_Jeu1"].as<String>();
configrelais.EndHour[3+21] = doc["H4End_Jeu1"].as<String>();
configrelais.StartHour[4+21] = doc["H4Start_Ven1"].as<String>();
configrelais.EndHour[4+21] = doc["H4End_Ven1"].as<String>();
configrelais.StartHour[5+21] = doc["H4Start_Sam1"].as<String>();
configrelais.EndHour[5+21] = doc["H4End_Sam1"].as<String>();
configrelais.StartHour[6+21] = doc["H4Start_Dim1"].as<String>();
configrelais.EndHour[6+21] = doc["H4End_Dim1"].as<String>();
//PLAGE 5 RELAIS1
configrelais.StartHour[0+28] = doc["H5Start_Lun1"].as<String>();
configrelais.EndHour[0+28] = doc["H5End_Lun1"].as<String>();
configrelais.StartHour[1+28] = doc["H5Start_Mar1"].as<String>();
configrelais.EndHour[1+28] = doc["H5End_Mar1"].as<String>();
configrelais.StartHour[2+28] = doc["H5Start_Mer1"].as<String>();
configrelais.EndHour[2+28] = doc["H5End_Mer1"].as<String>();
configrelais.StartHour[3+28] = doc["H5Start_Jeu1"].as<String>();
configrelais.EndHour[3+28] = doc["H5End_Jeu1"].as<String>();
configrelais.StartHour[4+28] = doc["H5Start_Ven1"].as<String>();
configrelais.EndHour[4+28] = doc["H5End_Ven1"].as<String>();
configrelais.StartHour[5+28] = doc["H5Start_Sam1"].as<String>();
configrelais.EndHour[5+28] = doc["H5End_Sam1"].as<String>();
configrelais.StartHour[6+28] = doc["H5Start_Dim1"].as<String>();
configrelais.EndHour[6+28] = doc["H5End_Dim1"].as<String>();
//PLAGE 1 RELAIS2
configrelais.StartHour[0+35] = doc["H1Start_Lun2"].as<String>();
Serial.println(doc["H1Start_Lun2"].as<String>());
configrelais.EndHour[0+35] = doc["H1End_Lun2"].as<String>();
configrelais.StartHour[1+35] = doc["H1Start_Mar2"].as<String>();
configrelais.EndHour[1+35] = doc["H1End_Mar2"].as<String>();
configrelais.StartHour[2+35] = doc["H1Start_Mer2"].as<String>();
configrelais.EndHour[2+35] = doc["H1End_Mer2"].as<String>();
configrelais.StartHour[3+35] = doc["H1Start_Jeu2"].as<String>();
configrelais.EndHour[3+35] = doc["H1End_Jeu2"].as<String>();
configrelais.StartHour[4+35] = doc["H1Start_Ven2"].as<String>();
configrelais.EndHour[4+35] = doc["H1End_Ven2"].as<String>();
configrelais.StartHour[5+35] = doc["H1Start_Sam2"].as<String>();
configrelais.EndHour[5+35] = doc["H1End_Sam2"].as<String>();
configrelais.StartHour[6+35] = doc["H1Start_Dim2"].as<String>();
configrelais.EndHour[6+35] = doc["H1End_Dim2"].as<String>();
//PLAGE 2 RELAIS2
configrelais.StartHour[0+42] = doc["H2Start_Lun2"].as<String>();
Serial.println(doc["H2Start_Lun2"].as<String>());
configrelais.EndHour[0+42] = doc["H2End_Lun2"].as<String>();
configrelais.StartHour[1+42] = doc["H2Start_Mar2"].as<String>();
configrelais.EndHour[1+42] = doc["H2End_Mar2"].as<String>();
configrelais.StartHour[2+42] = doc["H2Start_Mer2"].as<String>();
configrelais.EndHour[2+42] = doc["H2End_Mer2"].as<String>();
configrelais.StartHour[3+42] = doc["H2Start_Jeu2"].as<String>();
configrelais.EndHour[3+42] = doc["H2End_Jeu2"].as<String>();
configrelais.StartHour[4+42] = doc["H2Start_Ven2"].as<String>();
configrelais.EndHour[4+42] = doc["H2End_Ven2"].as<String>();
configrelais.StartHour[5+42] = doc["H2Start_Sam2"].as<String>();
configrelais.EndHour[5+42] = doc["H2End_Sam2"].as<String>();
configrelais.StartHour[6+42] = doc["H2Start_Dim2"].as<String>();
configrelais.EndHour[6+42] = doc["H2End_Dim2"].as<String>();
//PLAGE 3 RELAIS2
configrelais.StartHour[0+49] = doc["H3Start_Lun2"].as<String>();
Serial.println(doc["H3Start_Lun2"].as<String>());
configrelais.EndHour[0+49] = doc["H3End_Lun2"].as<String>();
configrelais.StartHour[1+49] = doc["H3Start_Mar2"].as<String>();
configrelais.EndHour[1+49] = doc["H3End_Mar2"].as<String>();
configrelais.StartHour[2+49] = doc["H3Start_Mer2"].as<String>();
configrelais.EndHour[2+49] = doc["H3End_Mer2"].as<String>();
configrelais.StartHour[3+49] = doc["H3Start_Jeu2"].as<String>();
configrelais.EndHour[3+49] = doc["H3End_Jeu2"].as<String>();
configrelais.StartHour[4+49] = doc["H3Start_Ven2"].as<String>();
configrelais.EndHour[4+49] = doc["H3End_Ven2"].as<String>();
configrelais.StartHour[5+49] = doc["H3Start_Sam2"].as<String>();
configrelais.EndHour[5+49] = doc["H3End_Sam2"].as<String>();
configrelais.StartHour[6+49] = doc["H3Start_Dim2"].as<String>();
configrelais.EndHour[6+49] = doc["H3End_Dim2"].as<String>();
//PLAGE 4 RELAIS2
configrelais.StartHour[0+56] = doc["H4Start_Lun2"].as<String>();
Serial.println(doc["H4Start_Lun2"].as<String>());
configrelais.EndHour[0+56] = doc["H4End_Lun2"].as<String>();
configrelais.StartHour[1+56] = doc["H4Start_Mar2"].as<String>();
configrelais.EndHour[1+56] = doc["H4End_Mar2"].as<String>();
configrelais.StartHour[2+56] = doc["H4Start_Mer2"].as<String>();
configrelais.EndHour[2+56] = doc["H4End_Mer2"].as<String>();
configrelais.StartHour[3+56] = doc["H4Start_Jeu2"].as<String>();
configrelais.EndHour[3+56] = doc["H4End_Jeu2"].as<String>();
configrelais.StartHour[4+56] = doc["H4Start_Ven2"].as<String>();
configrelais.EndHour[4+56] = doc["H4End_Ven2"].as<String>();
configrelais.StartHour[5+56] = doc["H4Start_Sam2"].as<String>();
configrelais.EndHour[5+56] = doc["H4End_Sam2"].as<String>();
configrelais.StartHour[6+56] = doc["H4Start_Dim2"].as<String>();
configrelais.EndHour[6+56] = doc["H4End_Dim2"].as<String>();
//PLAGE 5 RELAIS2
configrelais.StartHour[0+63] = doc["H5Start_Lun2"].as<String>();
Serial.println(doc["H5Start_Lun2"].as<String>());
configrelais.EndHour[0+63] = doc["H5End_Lun2"].as<String>();
configrelais.StartHour[1+63] = doc["H5Start_Mar2"].as<String>();
configrelais.EndHour[1+63] = doc["H5End_Mar2"].as<String>();
configrelais.StartHour[2+63] = doc["H5Start_Mer2"].as<String>();
configrelais.EndHour[2+63] = doc["H5End_Mer2"].as<String>();
configrelais.StartHour[3+63] = doc["H5Start_Jeu2"].as<String>();
configrelais.EndHour[3+63] = doc["H5End_Jeu2"].as<String>();
configrelais.StartHour[4+63] = doc["H5Start_Ven2"].as<String>();
configrelais.EndHour[4+63] = doc["H5End_Ven2"].as<String>();
configrelais.StartHour[5+63] = doc["H5Start_Sam2"].as<String>();
configrelais.EndHour[5+63] = doc["H5End_Sam2"].as<String>();
configrelais.StartHour[6+63] = doc["H5Start_Dim2"].as<String>();
configrelais.EndHour[6+63] = doc["H5End_Dim2"].as<String>();
configFile.close();
The first values are ok, and then it becomes "null".
I think it's a memory size with StaticJsonDocument<4096> doc;
So, first when I declare the variables, is there a way to tell that my string are all 5 caracters ?
String[5] StartHour[70] : but that's not correct when I compil.
Thank you