This commit is contained in:
2026-02-17 15:00:45 +03:00
parent 8dd5e4751c
commit 5cfa67d6a1

View File

@@ -296,16 +296,20 @@ public:
template <mcc_hardware_c HARDWARE_T, template <mcc_hardware_c HARDWARE_T,
mcc_telemetry_c TELEMETRY_T, mcc_telemetry_c TELEMETRY_T,
mcc_pzone_container_c PZONE_CONT_T, mcc_pzone_container_c PZONE_CONT_T,
mcc_mount_status_c STATUS_T, traits::mcc_callable_c CallbackFuncT,
std::invocable<STATUS_T const&> CallbackFuncT = decltype([](STATUS_T const&) {}),
mcc_logger_c LOGGER_T = MccNullLogger> mcc_logger_c LOGGER_T = MccNullLogger>
MccSimpleMovementControls( MccSimpleMovementControls(HARDWARE_T* hardware,
HARDWARE_T* hardware, TELEMETRY_T* telemetry,
TELEMETRY_T* telemetry, PZONE_CONT_T* pzone_cont,
PZONE_CONT_T* pzone_cont, CallbackFuncT&& mode_switch_callback,
CallbackFuncT&& mode_switch_callback = [](STATUS_T const&) {}, LOGGER_T* logger = &details::NullLogger)
LOGGER_T* logger = &details::NullLogger)
{ {
static_assert(traits::mcc_func_traits<CallbackFuncT>::arity == 1 &&
mcc_mount_status_c<std::decay_t<traits::mcc_func_arg1_t<CallbackFuncT>>>,
"INVALID 'CallbackFuncT' CALLABLE SIGNATURE!");
using STATUS_T = std::decay_t<traits::mcc_func_arg1_t<CallbackFuncT>>;
auto send_to_hardware = [hardware, logger](typename HARDWARE_T::hardware_state_t const& hw_state) -> error_t { auto send_to_hardware = [hardware, logger](typename HARDWARE_T::hardware_state_t const& hw_state) -> error_t {
if constexpr (std::derived_from<decltype(hw_state.XY), MccCoordPair<MccAngleX, MccAngleY>>) { if constexpr (std::derived_from<decltype(hw_state.XY), MccCoordPair<MccAngleX, MccAngleY>>) {
logger->logDebug(std::format("Send to hardware: X = {} degs, Y = {} degs", hw_state.XY.x().degrees(), logger->logDebug(std::format("Send to hardware: X = {} degs, Y = {} degs", hw_state.XY.x().degrees(),