#include "deviceconfig.h" #include #include #include #include "commondef.h" #include DeviceConfig m_static_deviceconfig; DeviceConfig::DeviceConfig() { } DeviceConfig::~DeviceConfig() { } DeviceConfig::DeviceParam DeviceConfig::GetParam() { std::lock_guard lc(m_lock); json tmp = getjson(); return json2struct(tmp); } void DeviceConfig::SaveParam(DeviceConfig::DeviceParam param) { std::lock_guard lc(m_lock); auto tmp = struct2json(param); savejson(tmp); } json DeviceConfig::struct2json(DeviceConfig::DeviceParam param) { json js; js[token_code] = param.token; js[lock_enable] = param.is_lock; js[gray_correct_enable] = param.gray_param; js[language] = param.language; return js; } DeviceConfig::DeviceParam DeviceConfig::json2struct(json js) { bool is_save = false; DeviceConfig::DeviceParam param; if(js[lock_enable].is_boolean()) param.is_lock = js[lock_enable]; else { param.is_lock = false; is_save = true; } if(js[token_code].is_string()) param.token = js[token_code]; else{ param.token = "null"; is_save = true; } if(js[gray_correct_enable].is_number_unsigned()) param.gray_param = js[gray_correct_enable]; else{ is_save = true; param.gray_param = 0; } if(js[language].is_number()) param.language = js[language]; else{ is_save = true; param.language = 0; } if(is_save) savejson(struct2json(param)); return param; } json DeviceConfig::getdefaultjson() { json m_json; m_json[lock_enable] = false; m_json[token_code] = "null"; m_json[gray_correct_enable] = 0; m_json[language] = 0; return m_json; } void DeviceConfig::savejson(json js) { //std::lock_guard lc(m_lock); std::ofstream o(ParamPath); o << std::setw(4) << js <> m_json; i.close(); return m_json; }