...
This commit is contained in:
parent
2ff2c24e52
commit
bed7ac87f8
@ -357,91 +357,6 @@ protected:
|
||||
|
||||
|
||||
while (true) {
|
||||
// check prohibited zones
|
||||
|
||||
t_err = mccCheckInZonePZTuple(*telemetry, p_mount_controls->prohibitedZones, in_zone_flag);
|
||||
|
||||
// it is assumed here that telemetry data is in actual state!
|
||||
// t_err = telemetry.data(t_data);
|
||||
if (t_err) {
|
||||
if constexpr (std::same_as<decltype(t_err), error_t>) {
|
||||
logError(
|
||||
std::format("An telemetry error occured: code = {} ({})", t_err.value(), t_err.message()));
|
||||
return t_err;
|
||||
} else {
|
||||
if constexpr (traits::mcc_formattable<decltype(t_err)>) {
|
||||
logError(std::format("An telemetry error occured: code = {}", t_err));
|
||||
}
|
||||
return MccSimpleSlewModelErrorCode::ERROR_TELEMETRY_DATA;
|
||||
}
|
||||
}
|
||||
|
||||
err = hardware->getPos(ax_pos);
|
||||
|
||||
if (err) {
|
||||
if constexpr (std::same_as<decltype(err), error_t>) {
|
||||
logError(std::format("An hardware error occured: code = {} ({})", err.value(), err.message()));
|
||||
return err;
|
||||
} else {
|
||||
if constexpr (traits::mcc_formattable<decltype(err)>) {
|
||||
logError(std::format("An hardware error occured: code = {}", err));
|
||||
}
|
||||
return MccSimpleSlewModelErrorCode::ERROR_HARDWARE_GETPOS;
|
||||
}
|
||||
}
|
||||
|
||||
if constexpr (mccIsEquatorialMount(pec_t::mountType)) {
|
||||
xr = slew_point.x - t_data.mntHA;
|
||||
yr = slew_point.y - t_data.mntDEC;
|
||||
} else if constexpr (mccIsAltAzMount(pec_t::mountType)) {
|
||||
xr = slew_point.x - t_data.mntAZ;
|
||||
yr = slew_point.y - t_data.mntALT;
|
||||
} else {
|
||||
static_assert(false, "UNSUPPORTED MOUNT TYPE!");
|
||||
}
|
||||
|
||||
coord_diff2 = xr * xr + yr * yr;
|
||||
|
||||
if (coord_diff2 < adj_rad2) { // switch to adjusting mode
|
||||
}
|
||||
|
||||
// if (prev_time_point == t_data.time_point) {
|
||||
if (prev_time_point == ax_pos.time_point) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (slew_point.stopAfterSlew) { // slew and stop, so mount moving rate must be 0 at the end
|
||||
if (ax_pos.state == hardware_t::hw_state_t::HW_STATE_STOP) {
|
||||
break;
|
||||
}
|
||||
// mount_rate2 = t_data.mntRateX * t_data.mntRateX + t_data.mntRateY * t_data.mntRateY;
|
||||
|
||||
// if (utils::isEqual((double)mount_rate2, 0.0)) {
|
||||
// ++i_iter;
|
||||
// } else {
|
||||
// i_iter = 0;
|
||||
// }
|
||||
} else { // slew and guiding, so mount rate must be near tracking rate at the end
|
||||
if (ax_pos.state == hardware_t::hw_state_t::HW_STATE_TRACK) {
|
||||
break;
|
||||
}
|
||||
// xrate = t_data.mntRateX - context.guidingRateX;
|
||||
// yrate = t_data.mntRateY - context.guidingRateY;
|
||||
// mount_rate2 = xrate * xrate + yrate * yrate;
|
||||
|
||||
// if (mount_rate2 <= context.guidingRateEps) {
|
||||
// ++i_iter;
|
||||
// } else {
|
||||
// i_iter = 0;
|
||||
// }
|
||||
}
|
||||
|
||||
// if (i_iter >= context.maxRateCycles) {
|
||||
// break;
|
||||
// }
|
||||
|
||||
prev_time_point = t_data.time_point;
|
||||
|
||||
if ((std::chrono::steady_clock::now() - start_poll_tm) > slew_point.slewTimeout) {
|
||||
logError("Waiting time for completion of slewing expired!");
|
||||
return MccSimpleSlewModelErrorCode::ERROR_SLEW_TIMEOUT;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user