mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2026-03-03 12:04:35 +01:00
fixing configuration management
This commit is contained in:
parent
121f90b59c
commit
fd1034a3a0
|
|
@ -2,12 +2,14 @@
|
|||
#include <SPIFFS.h>
|
||||
#include <logger.h>
|
||||
|
||||
ConfigurationManagement::ConfigurationManagement(String FilePath) : mFilePath(FilePath) {
|
||||
#define MODULE_NAME "ConfigurationManagement"
|
||||
|
||||
ConfigurationManagement::ConfigurationManagement(logging::Logger &logger, String FilePath) : mFilePath(FilePath) {
|
||||
if (!SPIFFS.begin(true)) {
|
||||
logPrintlnI("Mounting SPIFFS was not possible. Trying to format SPIFFS...");
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_INFO, MODULE_NAME, "Mounting SPIFFS was not possible. Trying to format SPIFFS...");
|
||||
SPIFFS.format();
|
||||
if (!SPIFFS.begin()) {
|
||||
logPrintlnE("Formating SPIFFS was not okay!");
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, MODULE_NAME, "Formating SPIFFS was not okay!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15,16 +17,16 @@ ConfigurationManagement::ConfigurationManagement(String FilePath) : mFilePath(Fi
|
|||
ConfigurationManagement::~ConfigurationManagement() {
|
||||
}
|
||||
|
||||
void ConfigurationManagement::readConfiguration(Configuration &conf) {
|
||||
void ConfigurationManagement::readConfiguration(logging::Logger &logger, Configuration &conf) {
|
||||
File file = SPIFFS.open(mFilePath);
|
||||
if (!file) {
|
||||
logPrintlnE("Failed to open file for reading, using default configuration.");
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, MODULE_NAME, "Failed to open file for reading, using default configuration.");
|
||||
return;
|
||||
}
|
||||
DynamicJsonDocument data(2048);
|
||||
DeserializationError error = deserializeJson(data, file);
|
||||
if (error) {
|
||||
logPrintlnW("Failed to read file, using default configuration.");
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_WARN, MODULE_NAME, "Failed to read file, using default configuration.");
|
||||
}
|
||||
// serializeJson(data, Serial);
|
||||
// Serial.println();
|
||||
|
|
@ -33,13 +35,13 @@ void ConfigurationManagement::readConfiguration(Configuration &conf) {
|
|||
readProjectConfiguration(data, conf);
|
||||
|
||||
// update config in memory to get the new fields:
|
||||
writeConfiguration(conf);
|
||||
writeConfiguration(logger, conf);
|
||||
}
|
||||
|
||||
void ConfigurationManagement::writeConfiguration(Configuration &conf) {
|
||||
void ConfigurationManagement::writeConfiguration(logging::Logger &logger, Configuration &conf) {
|
||||
File file = SPIFFS.open(mFilePath, "w");
|
||||
if (!file) {
|
||||
logPrintlnE("Failed to open file for writing...");
|
||||
logger.log(logging::LoggerLevel::LOGGER_LEVEL_ERROR, MODULE_NAME, "Failed to open file for writing...");
|
||||
return;
|
||||
}
|
||||
DynamicJsonDocument data(2048);
|
||||
|
|
|
|||
|
|
@ -9,15 +9,17 @@
|
|||
#include <ArduinoJson.h>
|
||||
#endif
|
||||
|
||||
#include <logger.h>
|
||||
|
||||
class Configuration;
|
||||
|
||||
class ConfigurationManagement {
|
||||
public:
|
||||
explicit ConfigurationManagement(String FilePath);
|
||||
explicit ConfigurationManagement(logging::Logger &logger, String FilePath);
|
||||
virtual ~ConfigurationManagement();
|
||||
|
||||
void readConfiguration(Configuration &conf);
|
||||
void writeConfiguration(Configuration &conf);
|
||||
void readConfiguration(logging::Logger &logger, Configuration &conf);
|
||||
void writeConfiguration(logging::Logger &logger, Configuration &conf);
|
||||
|
||||
private:
|
||||
virtual void readProjectConfiguration(DynamicJsonDocument &data, Configuration &conf) = 0;
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ void setup() {
|
|||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1);
|
||||
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2);
|
||||
|
||||
ProjectConfigurationManagement confmg;
|
||||
confmg.readConfiguration(userConfig);
|
||||
ProjectConfigurationManagement confmg(LoRaSystem.getLogger());
|
||||
confmg.readConfiguration(LoRaSystem.getLogger(), userConfig);
|
||||
|
||||
BoardFinder finder(boardConfigs);
|
||||
BoardConfig const *boardConfig = finder.getBoardConfig(userConfig.board);
|
||||
|
|
@ -74,7 +74,7 @@ void setup() {
|
|||
;
|
||||
} else {
|
||||
userConfig.board = boardConfig->Name;
|
||||
confmg.writeConfiguration(userConfig);
|
||||
confmg.writeConfiguration(LoRaSystem.getLogger(), userConfig);
|
||||
LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_INFO, MODULE_NAME, "will restart board now!");
|
||||
ESP.restart();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ public:
|
|||
|
||||
class ProjectConfigurationManagement : public ConfigurationManagement {
|
||||
public:
|
||||
explicit ProjectConfigurationManagement() : ConfigurationManagement("/is-cfg.json") {
|
||||
explicit ProjectConfigurationManagement(logging::Logger &logger) : ConfigurationManagement(logger, "/is-cfg.json") {
|
||||
}
|
||||
virtual ~ProjectConfigurationManagement() {
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue