remove guiding model
now it are only slewing and tracking states
This commit is contained in:
@@ -64,18 +64,10 @@ static consteval bool mccIsAltAzMount(const MccMountType type)
|
||||
};
|
||||
|
||||
|
||||
|
||||
// enum MccCoordPairKind : size_t {
|
||||
// COORDS_KIND_GENERIC,
|
||||
// COORDS_KIND_RADEC_ICRS,
|
||||
// COORDS_KIND_RADEC_APP,
|
||||
// COORDS_KIND_HADEC_APP,
|
||||
// COORDS_KIND_AZZD,
|
||||
// COORDS_KIND_AZALT,
|
||||
// COORDS_KIND_XY,
|
||||
// COORDS_KIND_LATLON
|
||||
// };
|
||||
|
||||
enum class MccProhibitedZonePolicy : int {
|
||||
PZ_POLICY_STOP, // stop mount near the zone
|
||||
PZ_POLICY_FLIP // flip mount, e.g., near the meridian, near HA-axis encoder limit switch
|
||||
};
|
||||
|
||||
|
||||
/* GENERIC LOGGER CLASS CONCEPT */
|
||||
@@ -480,7 +472,7 @@ concept mcc_hardware_c = requires(T t, const T t_const) {
|
||||
requires mcc_angle_c<decltype(state.speedX)>; // moving speed along co-longitude coordinate
|
||||
requires mcc_angle_c<decltype(state.speedY)>; // moving speed along co-latitude coordinate
|
||||
|
||||
requires std::same_as<typename T::hardware_moving_state_t, decltype(state.moving_type)>;
|
||||
requires std::same_as<typename T::hardware_moving_state_t, decltype(state.moving_state)>;
|
||||
};
|
||||
|
||||
// set hardware state:
|
||||
@@ -745,12 +737,12 @@ concept mcc_prohibited_zone_c =
|
||||
std::derived_from<T, mcc_pzone_interface_t<typename T::error_t>> && requires(const T t_const) {
|
||||
{ t_const.name() } -> std::formattable<char>;
|
||||
|
||||
requires requires(typename T::pzone_policy_t pp) {
|
||||
[]() {
|
||||
static constexpr auto v1 = T::pzone_policy_t::STOP_POLICY;
|
||||
static constexpr auto v2 = T::pzone_policy_t::FLIP_POLICY;
|
||||
}();
|
||||
};
|
||||
// the 'T' class must contain static constexpr member of 'MccMountType' type
|
||||
requires std::same_as<decltype(T::pzPolicy), const MccProhibitedZonePolicy>;
|
||||
[]() {
|
||||
static constexpr MccProhibitedZonePolicy val = T::pzPolicy;
|
||||
return val;
|
||||
}(); // to ensure 'pzPolicy' can be used in compile-time context
|
||||
};
|
||||
|
||||
|
||||
@@ -867,22 +859,22 @@ concept mcc_tracking_model_c = requires(T t) {
|
||||
{ t.getTrackingParams() } -> std::same_as<typename T::tracking_params_t>;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
concept mcc_guiding_model_c = requires(T t) {
|
||||
requires mcc_error_c<typename T::error_t>;
|
||||
// template <typename T>
|
||||
// concept mcc_guiding_model_c = requires(T t) {
|
||||
// requires mcc_error_c<typename T::error_t>;
|
||||
|
||||
// a class of guiding process parameters
|
||||
requires requires(typename T::guiding_params_t pars) {
|
||||
// guide along both mount axis
|
||||
requires std::convertible_to<decltype(pars.dualAxisGuiding), bool>;
|
||||
};
|
||||
// // a class of guiding process parameters
|
||||
// requires requires(typename T::guiding_params_t pars) {
|
||||
// // guide along both mount axis
|
||||
// requires std::convertible_to<decltype(pars.dualAxisGuiding), bool>;
|
||||
// };
|
||||
|
||||
{ t.startGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
{ t.stopGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
// { t.startGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
// { t.stopGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
|
||||
{ t.setGuidingParams(std::declval<typename T::guiding_params_t>()) } -> std::same_as<typename T::error_t>;
|
||||
{ t.getGuidingParams() } -> std::same_as<typename T::guiding_params_t>;
|
||||
};
|
||||
// { t.setGuidingParams(std::declval<typename T::guiding_params_t>()) } -> std::same_as<typename T::error_t>;
|
||||
// { t.getGuidingParams() } -> std::same_as<typename T::guiding_params_t>;
|
||||
// };
|
||||
|
||||
|
||||
/* GENERIC MOUNT CLASS CONCEPT */
|
||||
@@ -897,7 +889,10 @@ template <typename T>
|
||||
concept mcc_all_controls_c = mcc_position_controls_c<T> && mcc_telemetry_c<T> && mcc_pzone_container_c<T>;
|
||||
|
||||
|
||||
|
||||
// generic mount:
|
||||
// 1) telemetry-related methods
|
||||
// 2) prohibited zones related methods
|
||||
// 3) slewing and tracking, stop and init mount methods
|
||||
template <typename T>
|
||||
concept mcc_generic_mount_c = mcc_telemetry_c<T> && mcc_pzone_container_c<T> && requires(T t) {
|
||||
requires mcc_error_c<typename T::error_t>;
|
||||
@@ -909,8 +904,8 @@ concept mcc_generic_mount_c = mcc_telemetry_c<T> && mcc_pzone_container_c<T> &&
|
||||
{ t.trackTarget() } -> std::same_as<typename T::error_t>;
|
||||
|
||||
|
||||
{ t.startGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
{ t.stopGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
// { t.startGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
// { t.stopGuidingTarget() } -> std::same_as<typename T::error_t>;
|
||||
|
||||
// stop any movement
|
||||
{ t.stopMount() } -> std::same_as<typename T::error_t>;
|
||||
|
||||
Reference in New Issue
Block a user