...
This commit is contained in:
@@ -239,13 +239,20 @@ public:
|
||||
}
|
||||
|
||||
// start slewing
|
||||
logger.logDebug(std::format("Send to hardware: X = {}, Y = {}", hw_state.X, hw_state.Y));
|
||||
logger.logDebug(std::format("Send to hardware: X = {} degs, Y = {} degs",
|
||||
mcc::MccAngle{hw_state.X}.degrees(), mcc::MccAngle{hw_state.Y}.degrees()));
|
||||
if constexpr (mccIsEquatorialMount(CONTROLS_T::mountType)) {
|
||||
logger.logDebug(std::format(" target: HA = {}, DEC = {}", tdata.target.HA, tdata.target.DEC_APP));
|
||||
logger.logDebug(std::format(" mount: HA = {}, DEC = {}", tdata.HA, tdata.DEC_APP));
|
||||
logger.logDebug(std::format(" target: HA = {}, DEC = {}",
|
||||
mcc::MccAngle{tdata.target.DEC_APP}.sexagesimal(),
|
||||
mcc::MccAngle{tdata.target.HA}.sexagesimal(true)));
|
||||
logger.logDebug(std::format(" mount: HA = {}, DEC = {}", mcc::MccAngle{tdata.DEC_APP}.sexagesimal(),
|
||||
mcc::MccAngle{tdata.HA}.sexagesimal(true)));
|
||||
} else if constexpr (mccIsAltAzMount(CONTROLS_T::mountType)) {
|
||||
logger.logDebug(std::format(" target: AZ = {}, ZD = {}", tdata.target.AZ, tdata.target.ZD));
|
||||
logger.logDebug(std::format(" mount: AZ = {}, ZD = {}", tdata.AZ, tdata.ZD));
|
||||
logger.logDebug(std::format(" target: AZ = {}, ZD = {}",
|
||||
mcc::MccAngle{tdata.target.AZ}.sexagesimal(),
|
||||
mcc::MccAngle{tdata.target.ZD}.sexagesimal()));
|
||||
logger.logDebug(std::format(" mount: AZ = {}, ZD = {}", mcc::MccAngle{tdata.AZ}.sexagesimal(),
|
||||
mcc::MccAngle{tdata.ZD}.sexagesimal()));
|
||||
}
|
||||
|
||||
hw_err = controls->hardwareSetState(hw_state);
|
||||
@@ -294,7 +301,8 @@ public:
|
||||
|
||||
logger.logTrace(
|
||||
std::format(" the distance that will be covered in the next {} seconds: X-axis: {}, Y-axis: {}",
|
||||
min_time_to_pzone_in_secs, distXY.first, distXY.second));
|
||||
min_time_to_pzone_in_secs, mcc::MccAngleFancyString(distXY.first),
|
||||
mcc::MccAngleFancyString(distXY.second)));
|
||||
|
||||
// calculate coordinates at current speed '_currentParams.minTimeToPZone' seconds ahead
|
||||
// and check them for getting into the prohibited zones
|
||||
@@ -329,12 +337,17 @@ public:
|
||||
cpt.Y = std::numbers::pi;
|
||||
}
|
||||
|
||||
logger.logTrace(std::format(" target: AZ = {}, ZD = {}", tdata.target.AZ, tdata.target.ZD));
|
||||
logger.logTrace(std::format(" mount: AZ = {}, ZD = {}", tdata.AZ, tdata.ZD));
|
||||
logger.logTrace(std::format(" target: AZ = {}, ZD = {}",
|
||||
mcc::MccAngle(tdata.target.AZ).sexagesimal(),
|
||||
mcc::MccAngle(tdata.target.ZD).sexagesimal()));
|
||||
logger.logTrace(std::format(" mount: AZ = {}, ZD = {}", mcc::MccAngle(tdata.AZ).sexagesimal(),
|
||||
mcc::MccAngle(tdata.ZD).sexagesimal()));
|
||||
}
|
||||
mcc_tp2tp(tdata.time_point, cpt.time_point);
|
||||
|
||||
logger.logTrace(std::format(" mount: speedX = {}, speedY = {}", tdata.speedX, tdata.speedY));
|
||||
logger.logTrace(std::format(" mount: speedX = {}/s, speedY = {}/s",
|
||||
mcc::MccAngleFancyString(tdata.speedX),
|
||||
mcc::MccAngleFancyString(tdata.speedY)));
|
||||
|
||||
pz_err = controls->inPZone(cpt, &in_zone);
|
||||
if (pz_err) {
|
||||
@@ -376,13 +389,7 @@ public:
|
||||
return mcc_deduce_error_code(t_err, MccSimpleSlewingModelErrorCode::ERROR_DIST_TELEMETRY);
|
||||
}
|
||||
|
||||
logger.logTrace(std::format(" target-to-mount distance: {} {}",
|
||||
dist < 1.0_arcmins ? mcc::MccAngle(dist).arcsecs()
|
||||
: dist < 1.0_degs ? mcc::MccAngle(dist).arcmins()
|
||||
: mcc::MccAngle(dist).degrees(),
|
||||
dist < 1.0_arcmins ? "arcsecs"
|
||||
: dist < 1.0_degs ? "arcmins"
|
||||
: "degs"));
|
||||
logger.logTrace(std::format(" target-to-mount distance: {}", mcc::MccAngleFancyString(dist)));
|
||||
|
||||
if (dist <= _currentParams.slewToleranceRadius) { // stop slewing and exit from cycle
|
||||
logger.logInfo("target-to-mount distance is lesser than slew tolerance radius - exit!");
|
||||
@@ -394,90 +401,15 @@ public:
|
||||
hw_state.X = (double)tdata.target.X;
|
||||
hw_state.Y = (double)tdata.target.Y;
|
||||
|
||||
logger.logTrace(std::format("Send to hardware: X = {}, Y = {}", hw_state.X, hw_state.Y));
|
||||
logger.logTrace(std::format("Send to hardware: X = {} degs, Y = {} degs",
|
||||
mcc::MccAngle{hw_state.X}.degrees(),
|
||||
mcc::MccAngle{hw_state.Y}.degrees()));
|
||||
hw_err = controls->hardwareSetState(hw_state);
|
||||
if (hw_err) {
|
||||
*_stopSlewing = true;
|
||||
return mcc_deduce_error_code(hw_err, MccSimpleSlewingModelErrorCode::ERROR_HW_SETSTATE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// if (*_stopSlewing) {
|
||||
// return MccSimpleSlewingModelErrorCode::ERROR_STOPPED;
|
||||
// }
|
||||
|
||||
// {
|
||||
// std::lock_guard lock{*_currentParamsMutex};
|
||||
|
||||
// // if (adjust_mode && !_currentParams.slewAndStop) {
|
||||
// if (adjust_mode && !slew_and_stop) {
|
||||
// // do not allow mount speed fall below sideral
|
||||
// if constexpr (mccIsEquatorialMount(CONTROLS_T::mountType)) {
|
||||
// // turn on sideral rate only if the current position point catches up with the target
|
||||
// if ((tdata.target.HA - tdata.HA) <= 0.0 && tdata.speedX < slewing_params_t::sideralRate)
|
||||
// {
|
||||
// hw_state.X = (double)tdata.target.X;
|
||||
// hw_state.Y = (double)tdata.target.Y;
|
||||
|
||||
// hw_state.speedX = slewing_params_t::sideralRate;
|
||||
|
||||
// hw_state.moving_state = CONTROLS_T::hardware_moving_state_t::HW_MOVE_TRACKING;
|
||||
|
||||
// hw_err = controls->hardwareSetState(hw_state);
|
||||
// if (hw_err) {
|
||||
// *_stopSlewing = true;
|
||||
// return mcc_deduce_error_code(hw_err,
|
||||
// MccSimpleSlewingModelErrorCode::ERROR_HW_SETSTATE);
|
||||
// }
|
||||
// }
|
||||
// } else if constexpr (mccIsAltAzMount(CONTROLS_T::mountType)) {
|
||||
// } else {
|
||||
// static_assert(false, "UNKNOWN MOUNT TYPE!!");
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (dist <= _currentParams.slewToleranceRadius) { // stop slewing and exit from cycle
|
||||
// if (hw_state.moving_state ==
|
||||
// CONTROLS_T::hardware_moving_state_t::HW_MOVE_STOPPED) { // mount was stopped
|
||||
// *_stopSlewing = true;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (dist <= _currentParams.adjustCoordDiff) { // adjust mount pointing
|
||||
// auto now = std::chrono::steady_clock::now();
|
||||
// if ((now - last_adjust_tp) < _currentParams.adjustCycleInterval) {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// hw_state.X = (double)tdata.target.X;
|
||||
// hw_state.Y = (double)tdata.target.Y;
|
||||
|
||||
// hw_state.speedX = _currentParams.adjustRateX;
|
||||
// hw_state.speedY = _currentParams.adjustRateY;
|
||||
|
||||
// hw_state.moving_state = CONTROLS_T::hardware_moving_state_t::HW_MOVE_ADJUSTING;
|
||||
|
||||
// hw_err = controls->hardwareSetState(hw_state);
|
||||
// if (hw_err) {
|
||||
// *_stopSlewing = true;
|
||||
// return mcc_deduce_error_code(hw_err, MccSimpleSlewingModelErrorCode::ERROR_HW_SETSTATE);
|
||||
// }
|
||||
|
||||
// last_adjust_tp = now;
|
||||
|
||||
// adjust_mode = true;
|
||||
|
||||
// } else {
|
||||
// adjust_mode = false;
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (*_stopSlewing) {
|
||||
// return MccSimpleSlewingModelErrorCode::ERROR_STOPPED;
|
||||
// }
|
||||
}
|
||||
|
||||
*_stopSlewing = true;
|
||||
|
||||
Reference in New Issue
Block a user