2022-05-03 03:56:07 +00:00
|
|
|
#include "jsonconfig.h"
|
|
|
|
#include <streambuf>
|
|
|
|
|
|
|
|
|
|
|
|
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<char>(f)),
|
|
|
|
std::istreambuf_iterator<char>());
|
|
|
|
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<char>(f)),
|
|
|
|
std::istreambuf_iterator<char>());
|
|
|
|
js = json::parse(text);
|
|
|
|
f.close();
|
|
|
|
}
|
|
|
|
return js;
|
|
|
|
}
|
2022-11-10 02:02:52 +00:00
|
|
|
json jsonconfig::load_json_from_text(const char* json_txt, std::vector<std::string>* children)
|
2022-05-03 03:56:07 +00:00
|
|
|
{
|
2022-11-10 02:02:52 +00:00
|
|
|
return json::parse(json_txt, children);
|
2022-05-03 03:56:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|