...
This commit is contained in:
@@ -424,13 +424,13 @@ concept mcc_hardware_c = requires(T t, const T t_const) {
|
||||
// }(); // to ensure 'mountType' can be used in compile-time context
|
||||
|
||||
|
||||
// a type that defines at least HW_MOVE_STOPPED, HW_MOVE_SLEWING, HW_MOVE_ADJUSTING, HW_MOVE_TRACKING
|
||||
// a type that defines at least HW_MOVE_ERROR, HW_MOVE_STOPPED, HW_MOVE_SLEWING, HW_MOVE_ADJUSTING, HW_MOVE_TRACKING
|
||||
// and HW_MOVE_GUIDING compile-time constants. The main purpose of this type is a
|
||||
// possible tunning of hardware hardwareSetState-related commands and detect stop-state
|
||||
//
|
||||
// e.g. an implementations can be as follows:
|
||||
// enum class hardware_moving_state_t: int {HW_MOVE_STOPPED, HW_MOVE_SLEWING, HW_MOVE_ADJUSTING,
|
||||
// HW_MOVE_TRACKING, HW_MOVE_GUIDING}
|
||||
// enum class hardware_moving_state_t: int {HW_MOVE_ERROR = -1, HW_MOVE_STOPPED = 0, HW_MOVE_SLEWING,
|
||||
// HW_MOVE_ADJUSTING, HW_MOVE_TRACKING, HW_MOVE_GUIDING}
|
||||
//
|
||||
// struct hardware_moving_state_t {
|
||||
// uint16_t HW_MOVE_STOPPED = 0;
|
||||
@@ -438,6 +438,7 @@ concept mcc_hardware_c = requires(T t, const T t_const) {
|
||||
// uint16_t HW_MOVE_ADJUSTING = 222;
|
||||
// uint16_t HW_MOVE_TRACKING = 333;
|
||||
// uint16_t HW_MOVE_GUIDING = 444;
|
||||
// uint16_t HW_MOVE_ERROR = 555;
|
||||
// }
|
||||
requires requires(typename T::hardware_moving_state_t type) {
|
||||
[]() {
|
||||
@@ -457,6 +458,9 @@ concept mcc_hardware_c = requires(T t, const T t_const) {
|
||||
// hardware was asked for guiding
|
||||
// (small corrections to align actual mount position with target celestial point)
|
||||
static constexpr auto v4 = T::hardware_moving_state_t::HW_MOVE_GUIDING;
|
||||
|
||||
// to detect possible hardware error
|
||||
static constexpr auto v5 = T::hardware_moving_state_t::HW_MOVE_ERROR;
|
||||
}();
|
||||
};
|
||||
|
||||
@@ -491,15 +495,6 @@ concept mcc_hardware_c = requires(T t, const T t_const) {
|
||||
|
||||
|
||||
|
||||
/* AUXILIARY COORDINATE-TRANSFORMATON CLASS CONCEPT */
|
||||
|
||||
// a concept of class that consist of the full set of coordinate transformation mount control components
|
||||
// (celestial coordinate transformation engine, mount hardware encoders readings and pointing correction model)
|
||||
// the set of methods of this class is enough to transform coordinates from ICRS to hardware and back
|
||||
template <typename T>
|
||||
concept mcc_coord_trfm_controls_c = mcc_ccte_c<T> && mcc_hardware_c<T> && mcc_PCM_c<T>;
|
||||
|
||||
|
||||
/* MOUNT TELEMETRY DATA CLASS CONCEPT */
|
||||
|
||||
template <typename T>
|
||||
@@ -881,7 +876,9 @@ concept mcc_tracking_model_c = requires(T t) {
|
||||
/* GENERIC MOUNT CLASS CONCEPT */
|
||||
|
||||
|
||||
// a class containing mount position related controls
|
||||
// a concept of class that consist of the full set of coordinate transformation mount control components
|
||||
// (celestial coordinate transformation engine, mount hardware encoders readings and pointing correction model)
|
||||
// the set of methods of this class is enough to transform coordinates from ICRS to hardware and back
|
||||
template <typename T>
|
||||
concept mcc_position_controls_c = mcc_ccte_c<T> && mcc_hardware_c<T> && mcc_PCM_c<T>;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user