#include "NVMParameterBase.h" #include #include "fsfw/memory/HasFileSystemIF.h" #include "fsfw/serviceinterface/ServiceInterface.h" NVMParameterBase::NVMParameterBase(std::string fullName) : fullName(fullName) {} ReturnValue_t NVMParameterBase::readJsonFile() { if (std::experimental::filesystem::exists(fullName)) { // Read JSON file content into object std::ifstream i(fullName); try { i >> json; } catch (nlohmann::json::exception& e) { sif::warning << "Reading JSON file failed with error " << e.what() << std::endl; return HasReturnvaluesIF::RETURN_FAILED; } return HasReturnvaluesIF::RETURN_OK; } return HasFileSystemIF::FILE_DOES_NOT_EXIST; } ReturnValue_t NVMParameterBase::writeJsonFile() { std::ofstream o(fullName); try { o << std::setw(4) << json << std::endl; } catch (nlohmann::json::exception& e) { sif::warning << "Writing JSON file failed with error " << e.what() << std::endl; return HasReturnvaluesIF::RETURN_FAILED; } return HasReturnvaluesIF::RETURN_OK; } void NVMParameterBase::setFullName(std::string fullName) { this->fullName = fullName; } std::string NVMParameterBase::getFullName() const { return fullName; } bool NVMParameterBase::getJsonFileExists() { return std::experimental::filesystem::exists(fullName); } void NVMParameterBase::printKeys() const { sif::info << "Printing keys for JSON file " << fullName << std::endl; for (const auto& key : keys) { sif::info << key << std::endl; } } void NVMParameterBase::print() const { sif::info << "Printing JSON file " << fullName << std::endl; for (const auto& key : keys) { sif::info << key << ": " << json[key] << std::endl; } }