...
This commit is contained in:
@@ -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 = [](STATUS_T const&) {},
|
CallbackFuncT&& mode_switch_callback,
|
||||||
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(),
|
||||||
|
|||||||
Reference in New Issue
Block a user