rewrite MccGenericMount and MccGenericFsmMount class creation
Asibfm700MountNetServer is now started
This commit is contained in:
@@ -156,18 +156,24 @@ public:
|
||||
|
||||
enum class mount_status_t : int { IDLE, INITIALIZATION, STOPPED, SLEWING, ADJUSTING, TRACKING, ERROR };
|
||||
|
||||
MccGenericMount(HardwareT hardware,
|
||||
TelemetryT telemetry,
|
||||
PZoneContT pzone_cont,
|
||||
SlewModelT slew_model,
|
||||
TrackModelT track_model,
|
||||
LoggerT logger = MccNullLogger{})
|
||||
: HardwareT(std::move(hardware)),
|
||||
TelemetryT(std::move(telemetry)),
|
||||
PZoneContT(std::move(pzone_cont)),
|
||||
SlewModelT(std::move(slew_model)),
|
||||
TrackModelT(std::move(track_model)),
|
||||
LoggerT(std::move(logger)),
|
||||
template <typename... HardwareCtorArgTs,
|
||||
typename... TelemetryCtorArgTs,
|
||||
typename... PZoneContCtorArgTs,
|
||||
typename... SlewModelCtorArgTs,
|
||||
typename... TrackModelCtorArgTs,
|
||||
typename... LoggerCtorArgTs>
|
||||
MccGenericMount(std::tuple<HardwareCtorArgTs...> hw_ctor_args,
|
||||
std::tuple<TelemetryCtorArgTs...> tm_ctor_args,
|
||||
std::tuple<PZoneContCtorArgTs...> pzcont_ctor_args,
|
||||
std::tuple<SlewModelCtorArgTs...> smodel_ctor_args,
|
||||
std::tuple<TrackModelCtorArgTs...> tmodel_ctor_args,
|
||||
std::tuple<LoggerCtorArgTs...> log_ctor_args)
|
||||
: HardwareT(std::make_from_tuple<HardwareT>(std::move(hw_ctor_args))),
|
||||
TelemetryT(std::make_from_tuple<TelemetryT>(std::move(tm_ctor_args))),
|
||||
PZoneContT(std::make_from_tuple<PZoneContT>(std::move(pzcont_ctor_args))),
|
||||
SlewModelT(std::make_from_tuple<SlewModelT>(std::move(smodel_ctor_args))),
|
||||
TrackModelT(std::make_from_tuple<TrackModelT>(std::move(tmodel_ctor_args))),
|
||||
LoggerT(std::make_from_tuple<LoggerT>(std::move(log_ctor_args))),
|
||||
_mountStatus(new std::atomic<mount_status_t>{})
|
||||
{
|
||||
*_mountStatus = mount_status_t::IDLE;
|
||||
@@ -750,12 +756,17 @@ protected:
|
||||
|
||||
|
||||
public:
|
||||
template <fsm::traits::fsm_state_c ERROR_STATE_T = MccGenericFsmMountErrorState>
|
||||
MccGenericFsmMount(MOUNT_T mount,
|
||||
fsm::traits::fsm_state_c auto start_state = MccGenericFsmMountStartState<ERROR_STATE_T>{})
|
||||
: MOUNT_T(std::move(mount)), fsm::MccFiniteStateMachine(std::move(start_state))
|
||||
template <fsm::traits::fsm_state_c StartStateT, typename... MountCtorArgTs>
|
||||
MccGenericFsmMount(StartStateT start_state, MountCtorArgTs&&... mount_ctor_args)
|
||||
: MOUNT_T(std::forward<MountCtorArgTs>(mount_ctor_args)...), fsm::MccFiniteStateMachine(std::move(start_state))
|
||||
{
|
||||
}
|
||||
// template <fsm::traits::fsm_state_c ERROR_STATE_T = MccGenericFsmMountErrorState>
|
||||
// MccGenericFsmMount(MOUNT_T mount,
|
||||
// fsm::traits::fsm_state_c auto start_state = MccGenericFsmMountStartState<ERROR_STATE_T>{})
|
||||
// : MOUNT_T(std::move(mount)), fsm::MccFiniteStateMachine(std::move(start_state))
|
||||
// {
|
||||
// }
|
||||
|
||||
// reimplementation of base-class methods to adapt it to FSM-behavior
|
||||
|
||||
|
||||
Reference in New Issue
Block a user