diff --git a/lib/config/GWConfig.cpp b/lib/config/GWConfig.cpp index 1758c77..2047258 100644 --- a/lib/config/GWConfig.cpp +++ b/lib/config/GWConfig.cpp @@ -31,11 +31,12 @@ String GwConfigHandler::toString() const{ String GwConfigHandler::toJson() const{ String rt; - DynamicJsonDocument jdoc(50); + DynamicJsonDocument jdoc(300); for (int i=0;igetName()]=configs[i]->asString(); + jdoc[configs[i]->getName()]=configs[i]->asCString(); } serializeJson(jdoc,rt); + logger->logString("configJson: %s",rt.c_str()); return rt; } GwConfigItem * GwConfigHandler::findConfig(const String name, bool dummy){ @@ -61,6 +62,7 @@ bool GwConfigHandler::loadConfig(){ prefs.begin(PREF_NAME,true); for (int i=0;igetName().c_str(),configs[i]->getDefault()); + configs[i]->fromString(v); } prefs.end(); return true; @@ -68,6 +70,7 @@ bool GwConfigHandler::loadConfig(){ bool GwConfigHandler::saveConfig(){ prefs.begin(PREF_NAME,false); for (int i=0;ilogString("saving %s=%s",configs[i]->getName().c_str(),configs[i]->asCString()); prefs.putString(configs[i]->getName().c_str(),configs[i]->asString()); } prefs.end(); @@ -80,6 +83,12 @@ bool GwConfigHandler::updateValue(const char *name, const char * value){ logger->logString("update config %s=>%s",name,value); i->fromString(value); } +bool GwConfigHandler::updateValue(String name, String value){ + GwConfigItem *i=findConfig(name); + if (i == NULL) return false; + logger->logString("update config %s=>%s",name.c_str(),value.c_str()); + i->fromString(value); +} bool GwConfigHandler::reset(bool save){ logger->logString("reset config"); for (int i=0;i