This commit is contained in:
Timur A. Fatkhullin 2025-07-25 12:09:38 +03:00
parent 2ff2c24e52
commit bed7ac87f8

View File

@ -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;