|
|
|
|
@@ -437,54 +437,54 @@ public:
|
|
|
|
|
|
|
|
|
|
hw_cfg.hwConfig = {};
|
|
|
|
|
|
|
|
|
|
hw_cfg.MountDevPath = getValue<std::string>("MountDevPath").value_or({});
|
|
|
|
|
hw_cfg.EncoderDevPath = getValue<std::string>("EncoderDevPath").value_or({});
|
|
|
|
|
hw_cfg.EncoderXDevPath = getValue<std::string>("EncoderXDevPath").value_or({});
|
|
|
|
|
hw_cfg.EncoderYDevPath = getValue<std::string>("EncoderYDevPath").value_or({});
|
|
|
|
|
hw_cfg.MountDevPath = getValue<std::string>("MountDevPath").value_or(std::string{});
|
|
|
|
|
hw_cfg.EncoderDevPath = getValue<std::string>("EncoderDevPath").value_or(std::string{});
|
|
|
|
|
hw_cfg.EncoderXDevPath = getValue<std::string>("EncoderXDevPath").value_or(std::string{});
|
|
|
|
|
hw_cfg.EncoderYDevPath = getValue<std::string>("EncoderYDevPath").value_or(std::string{});
|
|
|
|
|
|
|
|
|
|
hw_cfg.devConfig.MountDevPath = hw_cfg.MountDevPath.data();
|
|
|
|
|
hw_cfg.devConfig.EncoderDevPath = hw_cfg.EncoderDevPath.data();
|
|
|
|
|
hw_cfg.devConfig.EncoderXDevPath = hw_cfg.EncoderXDevPath.data();
|
|
|
|
|
hw_cfg.devConfig.EncoderYDevPath = hw_cfg.EncoderYDevPath.data();
|
|
|
|
|
|
|
|
|
|
hw_cfg.devConfig.RunModel = getValue<int>("RunModel").value_or({});
|
|
|
|
|
hw_cfg.devConfig.MountDevSpeed = getValue<int>("MountDevSpeed").value_or({});
|
|
|
|
|
hw_cfg.devConfig.EncoderDevSpeed = getValue<int>("EncoderDevSpeed").value_or({});
|
|
|
|
|
hw_cfg.devConfig.SepEncoder = getValue<int>("SepEncoder").value_or({});
|
|
|
|
|
hw_cfg.devConfig.RunModel = getValue<int>("RunModel").value_or(int{});
|
|
|
|
|
hw_cfg.devConfig.MountDevSpeed = getValue<int>("MountDevSpeed").value_or(int{});
|
|
|
|
|
hw_cfg.devConfig.EncoderDevSpeed = getValue<int>("EncoderDevSpeed").value_or(int{});
|
|
|
|
|
hw_cfg.devConfig.SepEncoder = getValue<int>("SepEncoder").value_or(int{});
|
|
|
|
|
|
|
|
|
|
std::chrono::duration<double> secs; // seconds as floating-point
|
|
|
|
|
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("MountReqInterval").value_or({});
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("MountReqInterval").value_or(std::chrono::milliseconds{});
|
|
|
|
|
hw_cfg.devConfig.MountReqInterval = secs.count();
|
|
|
|
|
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("EncoderReqInterval").value_or({});
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("EncoderReqInterval").value_or(std::chrono::milliseconds{});
|
|
|
|
|
hw_cfg.devConfig.EncoderReqInterval = secs.count();
|
|
|
|
|
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("EncoderSpeedInterval").value_or({});
|
|
|
|
|
secs = getValue<std::chrono::milliseconds>("EncoderSpeedInterval").value_or(std::chrono::milliseconds{});
|
|
|
|
|
hw_cfg.devConfig.EncoderSpeedInterval = secs.count();
|
|
|
|
|
|
|
|
|
|
std::vector<double> pid = getValue<std::vector<double>>("XPIDC").value_or({});
|
|
|
|
|
std::vector<double> pid = getValue<std::vector<double>>("XPIDC").value_or(std::vector<double>{});
|
|
|
|
|
if (pid.size() > 2) {
|
|
|
|
|
hw_cfg.devConfig.XPIDC.P = pid[0];
|
|
|
|
|
hw_cfg.devConfig.XPIDC.I = pid[1];
|
|
|
|
|
hw_cfg.devConfig.XPIDC.D = pid[2];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pid = getValue<std::vector<double>>("XPIDV").value_or({});
|
|
|
|
|
pid = getValue<std::vector<double>>("XPIDV").value_or(std::vector<double>{});
|
|
|
|
|
if (pid.size() > 2) {
|
|
|
|
|
hw_cfg.devConfig.XPIDV.P = pid[0];
|
|
|
|
|
hw_cfg.devConfig.XPIDV.I = pid[1];
|
|
|
|
|
hw_cfg.devConfig.XPIDV.D = pid[2];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pid = getValue<std::vector<double>>("YPIDC").value_or({});
|
|
|
|
|
pid = getValue<std::vector<double>>("YPIDC").value_or(std::vector<double>{});
|
|
|
|
|
if (pid.size() > 2) {
|
|
|
|
|
hw_cfg.devConfig.YPIDC.P = pid[0];
|
|
|
|
|
hw_cfg.devConfig.YPIDC.I = pid[1];
|
|
|
|
|
hw_cfg.devConfig.YPIDC.D = pid[2];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pid = getValue<std::vector<double>>("YPIDV").value_or({});
|
|
|
|
|
pid = getValue<std::vector<double>>("YPIDV").value_or(std::vector<double>{});
|
|
|
|
|
if (pid.size() > 2) {
|
|
|
|
|
hw_cfg.devConfig.YPIDV.P = pid[0];
|
|
|
|
|
hw_cfg.devConfig.YPIDV.I = pid[1];
|
|
|
|
|
@@ -657,19 +657,19 @@ public:
|
|
|
|
|
fname = mcc::utils::trimSpaces(val);
|
|
|
|
|
setValue("bulletinAFilename", fname);
|
|
|
|
|
|
|
|
|
|
val = getValue<std::string>("MountDevPath").value_or({});
|
|
|
|
|
val = getValue<std::string>("MountDevPath").value_or(std::string{});
|
|
|
|
|
fname = mcc::utils::trimSpaces(val);
|
|
|
|
|
setValue("MountDevPath", fname);
|
|
|
|
|
|
|
|
|
|
val = getValue<std::string>("EncoderDevPath").value_or({});
|
|
|
|
|
val = getValue<std::string>("EncoderDevPath").value_or(std::string{});
|
|
|
|
|
fname = mcc::utils::trimSpaces(val);
|
|
|
|
|
setValue("EncoderDevPath", fname);
|
|
|
|
|
|
|
|
|
|
val = getValue<std::string>("EncoderXDevPath").value_or({});
|
|
|
|
|
val = getValue<std::string>("EncoderXDevPath").value_or(std::string{});
|
|
|
|
|
fname = mcc::utils::trimSpaces(val);
|
|
|
|
|
setValue("EncoderXDevPath", fname);
|
|
|
|
|
|
|
|
|
|
val = getValue<std::string>("EncoderYDevPath").value_or({});
|
|
|
|
|
val = getValue<std::string>("EncoderYDevPath").value_or(std::string{});
|
|
|
|
|
fname = mcc::utils::trimSpaces(val);
|
|
|
|
|
setValue("EncoderYDevPath", fname);
|
|
|
|
|
}
|
|
|
|
|
|