101 lines
2.6 KiB
C++
101 lines
2.6 KiB
C++
#include "MotorConfig.h"
|
|
#include <sys/stat.h>
|
|
#include <fstream>
|
|
|
|
using namespace std;
|
|
MotorConfig::MotorConfig()
|
|
{
|
|
|
|
}
|
|
|
|
MotorConfig::~MotorConfig()
|
|
{
|
|
}
|
|
|
|
|
|
json MotorConfig::SetParams(MotorSpeedParamEx& param, json js)
|
|
{
|
|
auto params = GetMotorSpeedParams(js.dump());
|
|
for (int i = 0; i < params.size(); i++)
|
|
{
|
|
if (params[i].dpi == param.dpi &&
|
|
params[i].colormode == param.colormode &&
|
|
params[i].speed == param.speed)
|
|
{
|
|
params[i] = param;
|
|
break;
|
|
}
|
|
}
|
|
|
|
json j = json::array();
|
|
|
|
for (int i = 0; i < params.size(); i++)
|
|
{
|
|
json t_j;
|
|
to_json(params[i], t_j);
|
|
j.push_back(t_j);
|
|
}
|
|
return j;
|
|
}
|
|
|
|
MotorSpeedParamEx MotorConfig::GetMotorSpeedParam(int dpi, int iscolor, int speedmod, std::string js) {
|
|
auto params = GetMotorSpeedParams(js);
|
|
for (int i = 0; i < params.size(); i++)
|
|
{
|
|
if (params[i].dpi == dpi &&
|
|
params[i].colormode == iscolor &&
|
|
params[i].speed == speedmod)
|
|
{
|
|
return params[i];
|
|
}
|
|
}
|
|
return { 0 };
|
|
}
|
|
|
|
std::vector<MotorSpeedParamEx> MotorConfig::GetMotorSpeedParams(const std::string& json_str)
|
|
{
|
|
std::vector<MotorSpeedParamEx> ret;
|
|
if (json_str.length())
|
|
{
|
|
json j = json::parse(json_str);
|
|
for (json::iterator it = j.begin(); it != j.end(); ++it)
|
|
{
|
|
auto tmv = it.value();
|
|
MotorSpeedParamEx param;
|
|
from_json(tmv, param);
|
|
ret.push_back(param);
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
void MotorConfig::to_json(MotorSpeedParamEx& param, json& j)
|
|
{
|
|
j = json{
|
|
{"A", param.mt_param.a},
|
|
{"FINALDELAY", param.mt_param.finalDelay},
|
|
{"FINALPERIOD", param.mt_param.finalPeriod},
|
|
{"FMIN", param.mt_param.Fmin},
|
|
{"OFFSET", param.mt_param.offset},
|
|
{"STEPNUM", param.mt_param.stepnum},
|
|
{"DPI", param.dpi},
|
|
{"COLORMODE", param.colormode},
|
|
{"ACCELERATIONTIME",param.mt_param.acceleration_time},
|
|
{"SPEED", param.speed},
|
|
{"SP",param.sp}};
|
|
}
|
|
|
|
void MotorConfig::from_json(json& j, MotorSpeedParamEx& param)
|
|
{
|
|
j.at("A").get_to(param.mt_param.a);
|
|
j.at("FINALDELAY").get_to(param.mt_param.finalDelay);
|
|
j.at("FINALPERIOD").get_to(param.mt_param.finalPeriod);
|
|
j.at("FMIN").get_to(param.mt_param.Fmin);
|
|
j.at("OFFSET").get_to(param.mt_param.offset);
|
|
j.at("STEPNUM").get_to(param.mt_param.stepnum);
|
|
j.at("DPI").get_to(param.dpi);
|
|
j.at("COLORMODE").get_to(param.colormode);
|
|
j.at("ACCELERATIONTIME").get_to(param.mt_param.acceleration_time);
|
|
j.at("SPEED").get_to(param.speed);
|
|
j.at("SP").get_to(param.sp);
|
|
} |