From 5cfa67d6a17088c49c74be7b8ca337290f42b7d9 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Tue, 17 Feb 2026 15:00:45 +0300 Subject: [PATCH] ... --- include/mcc/mcc_movement_controls.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/include/mcc/mcc_movement_controls.h b/include/mcc/mcc_movement_controls.h index 4bc3593..2594a1d 100644 --- a/include/mcc/mcc_movement_controls.h +++ b/include/mcc/mcc_movement_controls.h @@ -296,16 +296,20 @@ public: template CallbackFuncT = decltype([](STATUS_T const&) {}), + traits::mcc_callable_c CallbackFuncT, mcc_logger_c LOGGER_T = MccNullLogger> - MccSimpleMovementControls( - HARDWARE_T* hardware, - TELEMETRY_T* telemetry, - PZONE_CONT_T* pzone_cont, - CallbackFuncT&& mode_switch_callback = [](STATUS_T const&) {}, - LOGGER_T* logger = &details::NullLogger) + MccSimpleMovementControls(HARDWARE_T* hardware, + TELEMETRY_T* telemetry, + PZONE_CONT_T* pzone_cont, + CallbackFuncT&& mode_switch_callback, + LOGGER_T* logger = &details::NullLogger) { + static_assert(traits::mcc_func_traits::arity == 1 && + mcc_mount_status_c>>, + "INVALID 'CallbackFuncT' CALLABLE SIGNATURE!"); + + using STATUS_T = std::decay_t>; + auto send_to_hardware = [hardware, logger](typename HARDWARE_T::hardware_state_t const& hw_state) -> error_t { if constexpr (std::derived_from>) { logger->logDebug(std::format("Send to hardware: X = {} degs, Y = {} degs", hw_state.XY.x().degrees(),