noam76 icon

jsconfig.h

noam76 | PRO | 04/30/23 03:50:06 AM UTC | 0 ⭐ | 1364 👁️ | Never ⏰ | []
Arduino |

2.42 KB

|

None

|

0 👍

/

0 👎

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