From fd1034a3a000e0ac8417622d96c4c6ca37f8ec19 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 20 Mar 2022 00:37:29 +0100 Subject: [PATCH] fixing configuration management --- lib/ConfigurationManagement/configuration.cpp | 20 ++++++++++--------- lib/ConfigurationManagement/configuration.h | 8 +++++--- src/LoRa_APRS_iGate.cpp | 6 +++--- src/project_configuration.h | 2 +- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/ConfigurationManagement/configuration.cpp b/lib/ConfigurationManagement/configuration.cpp index 5f50550..6734608 100644 --- a/lib/ConfigurationManagement/configuration.cpp +++ b/lib/ConfigurationManagement/configuration.cpp @@ -2,12 +2,14 @@ #include #include -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); diff --git a/lib/ConfigurationManagement/configuration.h b/lib/ConfigurationManagement/configuration.h index 6ebcf75..4d988cb 100644 --- a/lib/ConfigurationManagement/configuration.h +++ b/lib/ConfigurationManagement/configuration.h @@ -9,15 +9,17 @@ #include #endif +#include + 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; diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 2f5dfd1..4171138 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -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(); } diff --git a/src/project_configuration.h b/src/project_configuration.h index df83acb..4fe78bd 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -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() { }