#pragma once #include #include "json.hpp" #include "scanservices_utils.h" #include #include #include #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(); /* *若返回false 则表示文件不存在或文件读取失败 */ // bool ReadParam(FPGAConfigParam& param); // void WriteParam(FPGAConfigParam& t_param); ScannerScanInfo GetScanInfo(); map::iterator l_it; void SaveScanInfo(const ScannerScanInfo& info); private: //FPGAConfigParam CreateDefault(); std::mutex m_lock; ScannerScanInfo CreateDefaultScanInfo(); };