Files
cronometre-laser-firmware-c…/include/Config.hpp
2022-05-10 09:35:02 +02:00

69 lines
2.3 KiB
C++

#include "logger.cpp"
class Config
{
public:
static bool Read()
{
// Lee la configuración
StaticJsonDocument<JSON_CONFIG> jsonConfig;
File file = SPIFFS.open("/Config.json", "r");
if (deserializeJson(jsonConfig, file))
{
// Si falla la lectura inicia valores por defecto
Logger::Log(Logger::ERROR, "Fallo al leer settings. Restaurando valores de fábrica");
Reset();
return false;
}
else
{
/* ------------------- CLIENTE -------------------- */
strlcpy(id, jsonConfig["id"] | "", sizeof(id));
strlcpy(ssid, jsonConfig["ssid"] | "", sizeof(ssid));
strlcpy(pw, jsonConfig["pw"] | "", sizeof(pw));
/* ------------------- AP -------------------- */
strlcpy(nameap, jsonConfig["nameap"] | "", sizeof(nameap));
strlcpy(passwordap, jsonConfig["passwordap"] | "", sizeof(passwordap));
file.close();
Logger::Log("Se han leído los settings");
return true;
}
}
static bool Save()
{
// Graba configuración
StaticJsonDocument<JSON_CONFIG> jsonConfig;
File file = SPIFFS.open("/Config.json", "w+");
if (file)
{
/* ------------------- CLIENTE -------------------- */
jsonConfig["id"] = id;
jsonConfig["ssid"] = ssid;
jsonConfig["pw"] = pw;
/* ------------------- AP -------------------- */
jsonConfig["nameap"] = nameap;
jsonConfig["passwordap"] = passwordap;
serializeJsonPretty(jsonConfig, file);
file.close();
Logger::Log("Settings restaurados");
// serializeJsonPretty(jsonConfig, Serial);
return true;
}
else
{
Logger::Log(Logger::ERROR, "Fallo al guardar");
return false;
}
}
static void Reset()
{
/* ------------------- CLIENTE -------------------- */
strlcpy(id, "LASER-CONTROLLER", sizeof(id));
strlcpy(ssid, "SSID", sizeof(ssid));
strlcpy(pw, "P4SSW0RD", sizeof(pw));
/* ------------------- AP -------------------- */
strlcpy(nameap, "EUSS Chrono Setup", sizeof(nameap));
strlcpy(passwordap, "EUSS2022", sizeof(passwordap));
}
};