#pragma once #include #include "json.hpp" #include #include #include struct ScannerScanInfo { unsigned int TotalScanned; //扫描总页数 unsigned int RollerNum; unsigned int CuoNum; //搓纸总数 unsigned int JamInNum; //搓纸失败次数 unsigned int JamOutNum; //卡纸次数 unsigned int DoubleNum; //双张次数 unsigned int ErrorNum; //其他异常次数 unsigned int HRatio; //横向校正系数 unsigned int VRatio; //纵向校正系数 unsigned int SleepTime; //休眠时间 单位s unsigned int SpeedMode; //速率模式 unsigned int VID; //vid unsigned short PID; //pid std::string SerialNum; //序列号 std::string FWVersion; //固件版本号 std::string Token; //token 令牌 }; #define SCANNER_SCAN_INFO_PATH "/mnt/flash-disk/huago/jsonconfig.json" using namespace std; using json = nlohmann::json; class JsonConfig { public: enum class ConfigType { Color_Flat, Color_Correct, Gray_Flat, Gray_Correct }; private: map cfgPaths={ {ConfigType::Color_Flat,"/usr/local/etc/huago/Color_Flat.json"}, {ConfigType::Color_Correct,"/usr/local/etc/huago/Color_Correct.json"}, {ConfigType::Gray_Flat,"/usr/local/etc/huago/Gray_Flat.json"}, {ConfigType::Gray_Correct,"/usr/local/etc/huago/Gray_Correct.json"} }; map cfgPrefix={ {ConfigType::Color_Flat,"Color_Flat"}, {ConfigType::Color_Correct,"Color_Correct"}, {ConfigType::Gray_Flat,"Gray_Flat"}, {ConfigType::Gray_Correct,"Gray_Correct"} }; ConfigType m_cfgType; public: JsonConfig(); JsonConfig(ConfigType type); ~JsonConfig(); ScannerScanInfo GetScanInfo(); private: std::mutex m_lock; };