#pragma once #include #include #include using json = nlohmann::json; class MotorboardParam { private: const std::string ParamPath ="/usr/local/huago/motorboardparam.json"; const std::string feed_mode = "feedmode"; const std::string automaticcontrol_feedmode = "automaticcontrolfeedmode"; const std::string automaticcontrolfeedmode_threshold = "automaticcontrolfeedmodethreshold"; const std::string trayposition = "trayposition"; public: struct MBParam { int feedmode; int automaticcontrolfeedmode; float automaticcontrolfeedmode_threshold; int trayposition; }; MotorboardParam(/* args */); ~MotorboardParam(); MotorboardParam::MBParam GetParam(); void SaveParam(MotorboardParam::MBParam param); int GetOrSetTrayPosition(bool isget,int value); int GetOrSetFeedMode(bool isget,int value); int GetOrSetEnableAutomaticControlFeedMode(bool isget,int value); private: void savejson(json js); json struct2json(MotorboardParam::MBParam param); MotorboardParam::MBParam json2struct(json js); json getjson(); json getdefaultjson(); std::mutex m_setlock; };