...
This commit is contained in:
@@ -296,16 +296,20 @@ public:
|
||||
template <mcc_hardware_c HARDWARE_T,
|
||||
mcc_telemetry_c TELEMETRY_T,
|
||||
mcc_pzone_container_c PZONE_CONT_T,
|
||||
mcc_mount_status_c STATUS_T,
|
||||
std::invocable<STATUS_T const&> 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<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 {
|
||||
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(),
|
||||
|
||||
Reference in New Issue
Block a user