remove guiding model

now it are only slewing and tracking states
This commit is contained in:
2025-09-03 18:28:52 +03:00
parent 460fc360c6
commit 2478c1e8d2
14 changed files with 757 additions and 698 deletions

View File

@@ -37,14 +37,14 @@ template <mcc_hardware_c HardwareT,
mcc_pzone_container_c PZoneContT,
mcc_slewing_model_c SlewModelT,
mcc_tracking_model_c TrackModelT,
mcc_guiding_model_c GuidingModelT,
// mcc_guiding_model_c GuidingModelT,
mcc_logger_c LoggerT = MccNullLogger>
class MccGenericMount : public HardwareT,
public TelemetryT,
public PZoneContT,
public SlewModelT,
public TrackModelT,
public GuidingModelT,
// public GuidingModelT,
public LoggerT
{
public:
@@ -56,7 +56,7 @@ public:
using LoggerT::logWarn;
using typename GuidingModelT::guiding_params_t;
// using typename GuidingModelT::guiding_params_t;
using typename SlewModelT::slewing_params_t;
using typename TrackModelT::tracking_params_t;
@@ -65,14 +65,14 @@ public:
PZoneContT pzone_cont,
SlewModelT slew_model,
TrackModelT track_model,
GuidingModelT guiding_model,
// GuidingModelT guiding_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)),
GuidingModelT(std::move(guiding_model)),
// GuidingModelT(std::move(guiding_model)),
LoggerT(std::move(logger))
{
}
@@ -83,7 +83,7 @@ public:
{
logInfo("stop any movements ...");
this->stopGuidingTarget();
// this->stopGuidingTarget();
this->stopTracking();
this->stopSlewing();
@@ -119,15 +119,16 @@ template <mcc_hardware_c HardwareT,
mcc_pzone_container_c PZoneContT,
mcc_slewing_model_c SlewModelT,
mcc_tracking_model_c TrackModelT,
mcc_guiding_model_c GuidingModelT,
// mcc_guiding_model_c GuidingModelT,
mcc_logger_c LoggerT = MccNullLogger>
class MccGenericMountFSM
: public fsm::MccFiniteStateMachine,
public MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, GuidingModelT, LoggerT>
// public MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, GuidingModelT, LoggerT>
public MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, LoggerT>
{
protected:
typedef MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, GuidingModelT, LoggerT>
base_gmount_t;
// typedef MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, GuidingModelT, LoggerT>
typedef MccGenericMount<HardwareT, TelemetryT, PZoneContT, SlewModelT, TrackModelT, LoggerT> base_gmount_t;
public:
typedef typename base_gmount_t::error_t error_t;
@@ -206,11 +207,11 @@ public:
// to guiding state
struct MccGenericMountEventGuiding : MccGenericMountBaseEvent {
static constexpr std::string_view ID = "MCC-MOUNT-GUIDING-EVENT";
// struct MccGenericMountEventGuiding : MccGenericMountBaseEvent {
// static constexpr std::string_view ID = "MCC-MOUNT-GUIDING-EVENT";
MccGenericMountEventGuiding(MccGenericMountFSM& mount) : MccGenericMountBaseEvent(mount) {}
};
// MccGenericMountEventGuiding(MccGenericMountFSM& mount) : MccGenericMountBaseEvent(mount) {}
// };
// to stoping state
@@ -252,7 +253,7 @@ public:
struct MccGenericMountStateError;
struct MccGenericMountStateSlew;
struct MccGenericMountStateTrack;
struct MccGenericMountStateGuiding;
// struct MccGenericMountStateGuiding;
struct MccGenericMountStateStopping;
struct MccGenericMountStateUninit : MccGenericMountBaseState {
@@ -394,8 +395,7 @@ public:
struct MccGenericMountStateTrack : MccGenericMountBaseState {
using transition_t =
fsm::fsm_transition_table_t<std::pair<MccGenericMountEventStop, MccGenericMountStateStopping>,
std::pair<MccGenericMountEventError, MccGenericMountStateError>,
std::pair<MccGenericMountEventGuiding, MccGenericMountStateGuiding>>;
std::pair<MccGenericMountEventError, MccGenericMountStateError>>;
template <std::derived_from<MccGenericMountBaseEvent> EvT>
void exit(EvT& event)
@@ -421,34 +421,34 @@ public:
};
struct MccGenericMountStateGuiding : MccGenericMountBaseState {
using transition_t =
fsm::fsm_transition_table_t<std::pair<MccGenericMountEventStop, MccGenericMountStateStopping>,
std::pair<MccGenericMountEventError, MccGenericMountStateError>,
std::pair<MccGenericMountEventTrack, MccGenericMountStateTrack>>;
// struct MccGenericMountStateGuiding : MccGenericMountBaseState {
// using transition_t =
// fsm::fsm_transition_table_t<std::pair<MccGenericMountEventStop, MccGenericMountStateStopping>,
// std::pair<MccGenericMountEventError, MccGenericMountStateError>,
// std::pair<MccGenericMountEventTrack, MccGenericMountStateTrack>>;
template <std::derived_from<MccGenericMountBaseEvent> EvT>
void exit(EvT& event)
{
error_t err = event.mount()._stopGuidingMount();
if (err) {
event.mount().dispatchEvent(MccGenericMountEventError{event.mount(), err});
}
// template <std::derived_from<MccGenericMountBaseEvent> EvT>
// void exit(EvT& event)
// {
// error_t err = event.mount()._stopGuidingMount();
// if (err) {
// event.mount().dispatchEvent(MccGenericMountEventError{event.mount(), err});
// }
this->exitLog(event);
}
// this->exitLog(event);
// }
template <std::derived_from<MccGenericMountBaseEvent> EvT>
void enter(EvT& event)
{
this->enterLog(event);
// template <std::derived_from<MccGenericMountBaseEvent> EvT>
// void enter(EvT& event)
// {
// this->enterLog(event);
error_t err = event.mount()._startGuidingMount();
if (err) {
event.mount().dispatchEvent(MccGenericMountEventError{event.mount(), err});
}
}
};
// error_t err = event.mount()._startGuidingMount();
// if (err) {
// event.mount().dispatchEvent(MccGenericMountEventError{event.mount(), err});
// }
// }
// };
/* CONSTRUCTORS AND DESTRUCTOR */
@@ -458,7 +458,7 @@ public:
PZoneContT pzone_cont,
SlewModelT slew_model,
TrackModelT track_model,
GuidingModelT guiding_model,
// GuidingModelT guiding_model,
LoggerT logger = MccNullLogger{})
: fsm::MccFiniteStateMachine(MccGenericMountStateUninit{}),
base_gmount_t(std::move(hardware),
@@ -466,7 +466,7 @@ public:
std::move(pzone_cont),
std::move(slew_model),
std::move(track_model),
std::move(guiding_model),
// std::move(guiding_model),
std::move(logger))
{
}
@@ -506,15 +506,15 @@ public:
this->dispatchEvent(MccGenericMountEventIDLE{*this});
}
auto startGuidingTarget()
{
this->dispatchEvent(MccGenericMountEventGuiding{*this});
}
// auto startGuidingTarget()
// {
// this->dispatchEvent(MccGenericMountEventGuiding{*this});
// }
auto stopGuidingTarget()
{
this->dispatchEvent(MccGenericMountEventTrack{*this});
}
// auto stopGuidingTarget()
// {
// this->dispatchEvent(MccGenericMountEventTrack{*this});
// }
protected:
// wrappers