void loadConfiguration() {
// Open the configuration file for reading
File configFile = SPIFFS.open("/config.json", "r");
if (!configFile) {
Serial.println(F("Failed to open config file for reading"));
return;
}
// Parse the JSON document from the configuration file
const size_t capacity = JSON_ARRAY_SIZE(SOLENOID_COUNT) + SOLENOID_COUNT*JSON_OBJECT_SIZE(2);
DynamicJsonDocument doc(capacity);
DeserializationError error = deserializeJson(doc, configFile);
if (error) {
Serial.println(F("Failed to parse config file"));
return;
}
// Close the configuration file
configFile.close();
// Get the userMax and userMin arrays from the JSON document
JsonArray maxArray = doc["userMax"];
if (maxArray.size() != MUX_COUNT) {
Serial.println(F("Invalid userMax array size"));
return;
}
for (int i = 0; i < MUX_COUNT; i++) {
userMax[i] = maxArray[i];
}
JsonArray minArray = doc["userMin"];
if (minArray.size() != MUX_COUNT) {
Serial.println(F("Invalid userMin array size"));
return;
}
for (int i = 0; i < MUX_COUNT; i++) {
userMin[i] = minArray[i];
}
// Print the loaded user-defined maximum and minimum values for each sensor to the serial monitor
Serial.println("Loaded user-defined soil humidity thresholds:");
for (int i = 0; i < MUX_COUNT; i++) {
Serial.print("Sensor "); Serial.print(i); Serial.print(": Max = "); Serial.print(userMax[i]); Serial.print(", Min = "); Serial.println(userMin[i]);
}
}
void saveConfiguration() {
// Créer un nouveau document JSON
DynamicJsonDocument doc(1024);
// Add the userMax and userMin arrays to the JSON document
JsonArray maxArray = doc.createNestedArray("userMax");
for (int i = 0; i < SOLENOID_COUNT; i++) {
maxArray.add(userMax[i]);
}
JsonArray minArray = doc.createNestedArray("userMin");
for (int i = 0; i < SOLENOID_COUNT; i++) {
minArray.add(userMin[i]);
}
// Open the configuration file for writing
File configFile = SPIFFS.open("/config.json", "w");
if (!configFile) {
Serial.println(F("Failed to open config file for writing"));
return;
}
// Serialize the JSON document to the configuration file
if (serializeJson(doc, configFile) == 0) {
Serial.println(F("Failed to write to config file"));
}
// Close the configuration file
configFile.close();
Serial.println("Data saved to file");
}
Comments