...
This commit is contained in:
57
mcc/mcc_generic_mount.h
Normal file
57
mcc/mcc_generic_mount.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
|
||||
/* MOUNT CONTROL COMPONENTS LIBRARY */
|
||||
|
||||
|
||||
/* GENERIC MOUNT REFERENCE IMPLEMENTATION */
|
||||
|
||||
|
||||
#include "mcc_generics.h"
|
||||
|
||||
namespace mcc
|
||||
{
|
||||
|
||||
template <mcc_telemetry_c TelemetryT, mcc_pzone_container_c PZoneContT, mcc_logger_c LoggerT>
|
||||
class MccGenericMount : public TelemetryT, public PZoneContT, public LoggerT
|
||||
{
|
||||
public:
|
||||
MccGenericMount(TelemetryT telemetry, PZoneContT pzone_cont, LoggerT logger)
|
||||
: TelemetryT(std::move(telemetry)), PZoneContT(std::move(pzone_cont)), LoggerT(std::move(logger))
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~MccGenericMount() = default;
|
||||
|
||||
|
||||
template <std::derived_from<MccGenericMount> SelfT>
|
||||
auto slewToTarget(this SelfT&& self)
|
||||
{
|
||||
return std::forward<SelfT>(self).slewToTarget();
|
||||
}
|
||||
|
||||
template <std::derived_from<MccGenericMount> SelfT>
|
||||
auto trackTarget(this SelfT&& self)
|
||||
{
|
||||
return std::forward<SelfT>(self).trackTarget();
|
||||
}
|
||||
|
||||
template <std::derived_from<MccGenericMount> SelfT>
|
||||
auto startGuidingTarget(this SelfT&& self)
|
||||
{
|
||||
return std::forward<SelfT>(self).startGuidingTarget();
|
||||
}
|
||||
|
||||
template <std::derived_from<MccGenericMount> SelfT>
|
||||
auto stopGuidingTarget(this SelfT&& self)
|
||||
{
|
||||
return std::forward<SelfT>(self).stopGuidingTarget();
|
||||
}
|
||||
|
||||
template <std::derived_from<MccGenericMount> SelfT>
|
||||
auto stopMount(this SelfT&& self)
|
||||
{
|
||||
return std::forward<SelfT>(self).stopMount();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace mcc
|
||||
Reference in New Issue
Block a user