This commit is contained in:
2025-08-07 02:23:58 +03:00
parent 2fee216924
commit f0ab4ae770
9 changed files with 153 additions and 55 deletions

View File

@@ -40,29 +40,43 @@ template <traits::mcc_astrom_engine_c ASTROM_ENGINE_T,
traits::mcc_mount_pec_c PEC_T,
traits::mcc_mount_telemetry_c TELEMETRY_T,
traits::mcc_slew_model_c SLEWMODEL_T,
traits::mcc_guiding_model_c GUIDEMODEL_T,
traits::mcc_logger_c LOGGER_T>
class MccGenericMount : public LOGGER_T
traits::mcc_guiding_model_c GUIDINGMODEL_T>
class MccGenericMount
{
typedef LOGGER_T logger_t;
using logger_t::logDebug;
using logger_t::logError;
using logger_t::logInfo;
using logger_t::logWarn;
public:
typedef ASTROM_ENGINE_T astrom_engine_t;
typedef HARDWARE_T hardware_t;
typedef PEC_T pec_t;
typedef TELEMETRY_T telemetry_t;
typedef typename TELEMETRY_T::telemetry_data_t telemetry_data_t;
typedef typename TELEMETRY_T::mount_telemetry_data_t telemetry_data_t;
typedef SLEWMODEL_T slew_model_t;
typedef GUIDEMODEL_T guiding_model_t;
typedef GUIDINGMODEL_T guiding_model_t;
typedef typename MccPZoneWrapper<telemetry_data_t>::duration_t pz_duration_t;
static constexpr MccMountType mountType = pec_t::mountType;
template <traits::mcc_tuple_c ASTROM_ENGINE_CTOR_T,
traits::mcc_tuple_c HARDWARE_CTOR_T,
traits::mcc_tuple_c PEC_CTOR_T,
traits::mcc_tuple_c TELEMETRY_CTOR_T,
traits::mcc_tuple_c SLEWMODEL_CTOR_T,
traits::mcc_tuple_c GUIDINGMODEL_CTOR_T>
MccGenericMount(ASTROM_ENGINE_CTOR_T aengine_ctor_args,
HARDWARE_CTOR_T hw_ctor_args,
PEC_CTOR_T pec_ctor_args,
TELEMETRY_CTOR_T t_ctor_args,
SLEWMODEL_CTOR_T smodel_ctor_args,
GUIDINGMODEL_CTOR_T gmodel_ctor_args)
: _astromEngine(std::make_from_tuple<ASTROM_ENGINE_T>(std::move(aengine_ctor_args))),
_hardware(std::make_from_tuple<HARDWARE_T>(std::move(hw_ctor_args))),
_pec(std::make_from_tuple<PEC_T>(std::move(pec_ctor_args))),
_telemetry(std::make_from_tuple<TELEMETRY_T>(std::move(t_ctor_args))),
_slewModel(std::make_from_tuple<SLEWMODEL_T>(std::move(smodel_ctor_args))),
_guidingModel(std::make_from_tuple<GUIDINGMODEL_T>(std::move(gmodel_ctor_args)))
{
}
virtual ~MccGenericMount() = default;
// get telemetry data
@@ -227,7 +241,7 @@ protected:
PEC_T _pec;
TELEMETRY_T _telemetry;
SLEWMODEL_T _slewModel;
GUIDEMODEL_T _gudingModel;
GUIDINGMODEL_T _guidingModel;
std::vector<MccPZoneWrapper<telemetry_data_t>> _pzFuncs{};
};