107 lines
3.3 KiB
C++
107 lines
3.3 KiB
C++
#include "stdafx.h"
|
|
#include "JsonConfig.h"
|
|
#include <iostream>
|
|
#include <sstream>
|
|
#include <fstream>
|
|
#include <iomanip>
|
|
#ifdef WIN32
|
|
#include <corecrt_io.h>
|
|
#else
|
|
#include <unistd.h>
|
|
#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;
|
|
}
|
|
} |