65 lines
1.8 KiB
C
65 lines
1.8 KiB
C
|
#pragma once
|
||
|
#include <json.hpp>
|
||
|
#include <string>
|
||
|
#include <mutex>
|
||
|
using json = nlohmann::json;
|
||
|
|
||
|
|
||
|
class DeviceConfig
|
||
|
{
|
||
|
private:
|
||
|
const std::string ParamPath ="/usr/local/huago/deviceconfig.json";
|
||
|
const std::string lock_enable = "lockenable";
|
||
|
const std::string token_code = "tokencode";
|
||
|
const std::string gray_correct_enable = "graycorrectenable";
|
||
|
const std::string language = "Language";
|
||
|
public:
|
||
|
struct DeviceParam
|
||
|
{
|
||
|
bool is_lock;
|
||
|
uint32_t gray_param;
|
||
|
uint32_t language;
|
||
|
std::string token;
|
||
|
};
|
||
|
union Gray_Apply
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t en_200_gray : 1;
|
||
|
uint32_t en_200_clr : 1;
|
||
|
uint32_t en_300_gray : 1;
|
||
|
uint32_t en_300_clr : 1;
|
||
|
uint32_t en_600_gray : 1;
|
||
|
uint32_t en_600_clr : 1;
|
||
|
uint32_t en_slow_gray : 1;
|
||
|
uint32_t en_slow_clr : 1;
|
||
|
uint32_t en_slow_300_gray : 1;
|
||
|
uint32_t en_slow_300_clr : 1;
|
||
|
uint32_t en_long_Manuscript_200_gray : 1;
|
||
|
uint32_t en_long_Manuscript_200_clr : 1;
|
||
|
uint32_t en_long_Manuscript_300_gray : 1;
|
||
|
uint32_t en_long_Manuscript_300_clr : 1;
|
||
|
uint32_t reserved : 18;
|
||
|
}Param_Setting;
|
||
|
uint32_t value;
|
||
|
};
|
||
|
|
||
|
DeviceConfig(/* args */);
|
||
|
~DeviceConfig();
|
||
|
DeviceConfig::DeviceParam GetParam();
|
||
|
void SaveParam(DeviceConfig::DeviceParam param);
|
||
|
private:
|
||
|
json struct2json(DeviceConfig::DeviceParam param);
|
||
|
DeviceConfig::DeviceParam json2struct(json js);
|
||
|
void savejson(json js);
|
||
|
json getjson();
|
||
|
json getdefaultjson();
|
||
|
std::mutex m_lock;
|
||
|
};
|
||
|
|
||
|
extern DeviceConfig m_static_deviceconfig;
|
||
|
|
||
|
static DeviceConfig& Get_static_deviceconfig()
|
||
|
{
|
||
|
return m_static_deviceconfig;
|
||
|
}
|