struct RGBLA {
uint8_t R;
uint8_t G;
uint8_t B;
uint8_t L;
uint8_t A;
};
void setup() {
RGBLA returnedValues = readSPIFFS();
Serial.println("readSPIFFS 1");
Serial.print("R: ");
Serial.println(returnedVars.R);
Serial.print("G: ");
Serial.println(returnedVars.G);
Serial.print("B: ");
Serial.println(returnedVars.B);
Serial.print("L: ");
Serial.println(returnedVars.L);
Serial.print("AmbientLight: ");
Serial.println(returnedVars.A);
returnedValues = saveToSPIFFS(205, 17, 68, 50, 15, false);
Serial.println("saveToSPIFFS 1");
Serial.print("R: ");
Serial.println(returnedVars.R);
Serial.print("G: ");
Serial.println(returnedVars.G);
Serial.print("B: ");
Serial.println(returnedVars.B);
Serial.print("L: ");
Serial.println(returnedVars.L);
Serial.print("AmbientLight: ");
Serial.println(returnedVars.A);
}
RGBLA readSPIFFS() {
RGBLA returnedVars;
File configFile = SPIFFS.open("/config.json", "r");
if (configFile ) {
Serial.println("YAY!");
configFile.readBytes((byte*) &returnedValues, sizeof(RGBLA));
configFile.close();
} else {
Serial.println("Boo!");
}
return returnedValues;
}
RGBLA saveToSPIFFS() {
File configFile = SPIFFS.open("/config.json", "w+");
if (configFile.size() > 3072) {
Serial.println("Config file size is too large.");
} else {
Serial.print("Writing to Config file...");
configFile.write((byte*) &returnedVars, sizeof(RGBLA));
//Get the old value and save it
RGBLA returnedVars = readSPIFFS();
Serial.println("Old Values:");
Serial.print("R: ");
Serial.println(returnedVars.R);
Serial.print("G: ");
Serial.println(returnedVars.G);
Serial.print("B: ");
Serial.println(returnedVars.B);
Serial.print("L: ");
Serial.println(returnedVars.L);
Serial.print("AmbientLight: ");
Serial.println(returnedVars.A);
if (saveA) {
//Save Ambient Light data
json["R"] = returnedVars.R;
json["G"] = returnedVars.G;
json["B"] = returnedVars.B;
json["L"] = returnedVars.L;
json["A"] = A;
//Now save the new data
returnedVars.A = A;
} else {
//Save RGBL data
json["R"] = R;
json["G"] = G;
json["B"] = B;
json["L"] = L;
json["A"] = returnedVars.A;
//Now save the new data
returnedVars.R = R;
returnedVars.G = G;
returnedVars.B = B;
returnedVars.L = L;
}
configFile.write((byte*) &returnedVars, sizeof(RGBLA));
configFile.close();
return returnedVars;
}