speedcontroller/ui/MotorConfig.h

51 lines
890 B
C++

#pragma once
#include <vector>
#include "json.hpp"
using json= nlohmann::json;
struct MotorSpeedParam
{
int finalPeriod;
int Fmin;
float stepnum;
float a;
float offset;
float finalDelay;
float acceleration_time;
};
struct MotorSpeedParamEx
{
MotorSpeedParam mt_param;
int speed;
int colormode;
int dpi;
int sp;
bool empty()
{
return dpi?0:1;
}
};
class MotorConfig
{
private:
enum class MTBDType
{
MT_TMC,
MT_DRV
};
public:
MotorConfig(/* args */);
~MotorConfig();
json SetParams(MotorSpeedParamEx& param,json js);
std::vector<MotorSpeedParamEx> GetMotorSpeedParams(const std::string& json_str);
MotorSpeedParamEx GetMotorSpeedParam(int dpi,int iscolor,int speedmod, std::string js);
private:
void to_json(MotorSpeedParamEx& param,json& j);
void from_json(json& j,MotorSpeedParamEx& param);
};