...
This commit is contained in:
@@ -442,6 +442,8 @@ struct mcc_telemetry_interface_t {
|
||||
return std::forward<SelfT>(self).waitForTelemetryData(data, timeout);
|
||||
}
|
||||
|
||||
|
||||
// set target coordinates
|
||||
template <std::derived_from<mcc_telemetry_interface_t> SelfT>
|
||||
RetT setPointingTarget(this SelfT&& self, mcc_celestial_point_c auto pt)
|
||||
{
|
||||
@@ -467,11 +469,16 @@ concept mcc_PCM_result_c = requires(T t) {
|
||||
|
||||
template <mcc_error_c RetT, mcc_PCM_result_c ResT>
|
||||
struct mcc_PCM_interface_t {
|
||||
virtual ~mcc_PCM_interface_t() = default;
|
||||
|
||||
template <std::derived_from<mcc_PCM_interface_t> SelfT>
|
||||
RetT computePCM(this SelfT&& self, mcc_celestial_point_c auto pt, ResT* result)
|
||||
{
|
||||
return std::forward<SelfT>(self).computePCM(std::move(pt), result);
|
||||
}
|
||||
|
||||
protected:
|
||||
mcc_PCM_interface_t() = default;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
@@ -644,4 +651,22 @@ template <typename T>
|
||||
concept mcc_pzone_container_c = std::derived_from<T, mcc_pzone_container_interface_t<typename T::error_t>>;
|
||||
|
||||
|
||||
template <mcc_error_c RetT>
|
||||
struct mcc_generic_mount_interface_t {
|
||||
virtual ~mcc_generic_mount_interface_t() = default;
|
||||
|
||||
RetT slew(mcc_celestial_point_c auto pt) {}
|
||||
|
||||
protected:
|
||||
mcc_generic_mount_interface_t() = default;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
concept mcc_generic_mount_c = mcc_telemetry_c<T> && requires(T t) {
|
||||
requires mcc_error_c<typename T::error_t>;
|
||||
|
||||
{ t.slewToTarget() } -> std::same_as<typename T::error_t>;
|
||||
{ t.guidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
};
|
||||
|
||||
} // namespace mcc
|
||||
|
||||
Reference in New Issue
Block a user