#include "jsonconfig.h" #include jsonconfig::jsonconfig() { } jsonconfig::jsonconfig(int devnum):DEVICEJSONPATH("") { switch (devnum) { case 100: DEVICEJSONPATH=G100JSONPATH; break; case 200: DEVICEJSONPATH=G200JSONPATH; break; case 300: DEVICEJSONPATH=G300JSONPATH; break; case 400: DEVICEJSONPATH=G400JSONPATH; break; default: break; } } json jsonconfig::loadjson(std::string path) { json js=""; if(path.empty()) return js; std::ifstream f; f.open(path,std::ios::in | std::ios::binary); if(f.is_open()){ //std::string text = (std::stringstream() << f.rdbuf()).str(); std::string text ((std::istreambuf_iterator(f)), std::istreambuf_iterator()); js = json::parse(text); f.close(); } return js; } json jsonconfig::loadjson() { json js=""; std::string path=DEVICEJSONPATH; if(path.empty()) return js; std::ifstream f; f.open(path,std::ios::in | std::ios::binary); if(f.is_open()){ std::string text ((std::istreambuf_iterator(f)), std::istreambuf_iterator()); js = json::parse(text); f.close(); } return js; } json jsonconfig::load_json_from_text(const char* json_txt) { return json::parse(json_txt); } std::string jsonconfig::getdeviceparam(unsigned param_no) { json js=loadjson(); if (js.empty()) return NULL; js[std::to_string(param_no)]["cur"]=0; std::string str=js[std::to_string(param_no)].dump(); if (str.empty()) return NULL; return str; } bool jsonconfig::savejson(std::string path,json js) { if(path.empty()) return false; std::ofstream of; of.open(path); if(of.is_open()) { of.write(js.dump().data(),js.dump().size()); of.close(); return true; } return false; } json jsonconfig::defaultjson() { std::string jsstr=R"({ "info":[{ "type":"GScanO200", "name":"HUAGO G100 Scanner", "vid":"3072", "pid":"100" }, { "type":"GScanO200", "name":"HUAGO G200 Scanner", "vid":"3072", "pid":"200" }, { "type":"GScanO400", "name":"HUAGO G300 Scanner", "vid":"3072", "pid":"300" }, { "type":"GScanO400", "name":"HUAGO G400 Scanner", "vid":"3072", "pid":"400" }, { "type":"GScanO1003399", "name":"HUAGO G139 Scanner", "vid":"3072", "pid":"139" }, { "type":"GScanO1003399", "name":"HUAGO G239 Scanner", "vid":"3072", "pid":"239" }] })"; return json::parse(jsstr); }