#include "stdafx.h" #include "JsonConfig.h" #include #include #include #include #ifdef WIN32 #include #else #include #endif #define JSON_FILE "config.json" #define SCAN_INFO_TITLE "ScanInfo" #define SCAN_TOTAL "TotalScanned" #define SCAN_CUONUM "CuoNum" #define SCAN_JAMINNUM "JamInNum" #define SCAN_JAMOUTNUM "JamOutNum" #define SCAN_DOUNUM "DoubleNum" #define SCAN_ERRORNUM "ErrorNum" #define SCAN_SERIALNUM "SerialNum" #define SCAN_FWVERSION "FWVersion" JsonConfig::JsonConfig() { //if (access(SCANNER_SCAN_INFO_PATH, F_OK) == -1) //不存在 //{ // ScannerScanInfo defaultinfo = CreateDefaultScanInfo(); // SaveScanInfo(defaultinfo); //} } JsonConfig::JsonConfig(ConfigType type) : m_cfgType(type) { } JsonConfig::~JsonConfig() { } bool JsonConfig::ReadParam(CaptureParams& param) { if(_access(JSON_FILE,0)!=0) { CaptureParams t_param = { 0 }; CreateDefault(t_param); WriteParam(t_param); param = t_param; return false; } std::ifstream i(JSON_FILE); json j; i >> j; auto &jobject = j["Config"]; jobject["CorrectColorExposure"].get_to(param.correctColorExposure); jobject["CorrectColorGain"].get_to(param.correctColorGain); jobject["CorrectColorOffset"].get_to(param.correctColorOffset); jobject["ColorExposure"].get_to(param.colorExposure); jobject["ColorGain"].get_to(param.colorGain); jobject["ColorOffset"].get_to(param.colorOffset); jobject["CorrectGrayExposure"].get_to(param.correctGrayExposure); jobject["CorrectGrayGain"].get_to(param.correctGrayGain); jobject["CorrectGrayOffset"].get_to(param.correctGrayOffset); jobject["GrayExposure"].get_to(param.grayExposure); jobject["GrayGain"].get_to(param.grayGain); jobject["GrayOffset"].get_to(param.grayOffset); return true; } void JsonConfig::WriteParam(CaptureParams& t_param) { json m_json; auto &jobject = m_json["Config"]; jobject["CorrectColorExposure"] = t_param.correctColorExposure; jobject["CorrectColorGain"] = t_param.correctColorGain; jobject["CorrectColorOffset"] = t_param.correctColorOffset; jobject["ColorExposure"] = t_param.colorExposure; jobject["ColorGain"] = t_param.colorGain; jobject["ColorOffset"] = t_param.colorOffset; jobject["CorrectGrayExposure"] = t_param.correctGrayExposure; jobject["CorrectGrayGain"] = t_param.correctGrayGain; jobject["CorrectGrayOffset"] = t_param.correctGrayOffset; jobject["GrayExposure"] = t_param.grayExposure; jobject["GrayGain"] = t_param.grayGain; jobject["GrayOffset"] = t_param.grayOffset; std::ofstream o(JSON_FILE); o << std::setw(4) << m_json << std::endl; } void JsonConfig::CreateDefault(CaptureParams& param) { for (size_t i = 0; i <6; i++) { param.colorExposure[i] = 259; param.correctColorExposure[i] = 238; param.correctGrayExposure[i] = 259; param.grayExposure[i] = 238; } for (size_t i = 0; i <12; i++) { param.correctGrayGain[i] = param.grayGain[i] = 47; param.colorGain[i] = param.correctColorGain[i] = 30; param.correctColorOffset[i] = param.correctGrayOffset[i] = 119; param.colorOffset[i] = param.grayOffset[i] = 119; } }