initial
This commit is contained in:
63
main/Config.cpp
Normal file
63
main/Config.cpp
Normal file
@ -0,0 +1,63 @@
|
||||
#include "Config.hpp"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include "FS.h"
|
||||
#include "SPIFFS.h"
|
||||
Config config;
|
||||
|
||||
void Config::Init() {
|
||||
SPIFFS.begin(true);
|
||||
File f = SPIFFS.open("/config.json", FILE_READ);
|
||||
if (!f) {
|
||||
SetDefaults();
|
||||
return;
|
||||
}
|
||||
DeserializationError err = deserializeJson(conf_json, f);
|
||||
if (err == DeserializationError::Ok) {
|
||||
Load();
|
||||
} else {
|
||||
SetDefaults();
|
||||
}
|
||||
f.close();
|
||||
}
|
||||
|
||||
void Config::SetDefaults() {
|
||||
Serial.println("Setting default config");
|
||||
// Set default MAC address
|
||||
trackside_mac[0] = 0x34;
|
||||
trackside_mac[1] = 0x85;
|
||||
trackside_mac[2] = 0x18;
|
||||
trackside_mac[3] = 0xa9;
|
||||
trackside_mac[4] = 0x3d;
|
||||
trackside_mac[5] = 0xfc;
|
||||
|
||||
// Set default kart ID
|
||||
kart_id = esp_random();
|
||||
|
||||
// Save the defaults to SPIFFS
|
||||
Save();
|
||||
}
|
||||
|
||||
void Config::Save() {
|
||||
conf_json.to<JsonObject>();
|
||||
JsonArray arr = conf_json["mac"].to<JsonArray>();
|
||||
for (int i = 0; i < 6; i++) {
|
||||
arr.add<int>(trackside_mac[i]);
|
||||
}
|
||||
conf_json["kart_id"] = kart_id;
|
||||
String out;
|
||||
serializeJson(conf_json, out);
|
||||
File f = SPIFFS.open("/config.json", FILE_WRITE, true);
|
||||
f.print(out);
|
||||
f.close();
|
||||
Serial.printf("Config saved: %s\n", out.c_str());
|
||||
}
|
||||
|
||||
void Config::Load() {
|
||||
JsonArray arr = conf_json["mac"];
|
||||
for (int i = 0; i < 6; i++) {
|
||||
trackside_mac[i] = arr[i];
|
||||
}
|
||||
kart_id = conf_json["kart_id"];
|
||||
}
|
||||
Reference in New Issue
Block a user