rk3399_arm_lvds/motorcontroller/MotorboardParam.h

40 lines
1.2 KiB
C++

#pragma once
#include <json.hpp>
#include <string>
#include <mutex>
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;
};