This commit is contained in:
2025-08-01 17:55:55 +03:00
parent 750d29ceb9
commit 9bfe1c3ad5
9 changed files with 125 additions and 265 deletions

View File

@@ -25,6 +25,55 @@ static_assert(traits::mcc_celestial_point_c<MccCelestialPoint>, "MccCelestialPoi
/* COMMON SLEW-AND-GUIDING POINT CLASS DEFINITION */
struct MccSlewAndGuidingPoint : MccCelestialPoint {
// ******* default constants *******
static constexpr size_t defaultWithinToleranceCycleNumber = 10;
static constexpr size_t defaultMaxAdjustingCycleNumber = 100;
// common parameters
// timeout to wait telemetry update (in seconds, as floating-point)
std::chrono::duration<double> telemetryUpdateTimeout{1.0};
// ******* slewing-related parameters *******
// target-mount coordinate difference to start adjusting of slewing (in radians)
coord_t adjustCoordDiff{(double)MccAngle{10.0_degs}};
// coordinates difference to stop slewing (in radians)
coord_t slewToleranceRadius{(double)MccAngle{5.0_arcsecs}};
// slew process timeout
std::chrono::seconds slewTimeout{3600};
std::chrono::duration<double> telemetryPollingInterval{0.1};
// if true - stop mount after the slewing
bool stopAfterSlew{false};
coord_t slewXRate{0.0}; // maximal slewing rate (0 means move with maximal allowed rate)
coord_t slewYRate{0.0}; // maximal slewing rate (0 means move with maximal allowed rate)
coord_t adjustXRate{(double)MccAngle{5.0_arcmins}}; // maximal adjusting rate (a rate at the final slewing stage)
coord_t adjustYRate{(double)MccAngle{5.0_arcmins}}; // maximal adjusting rate (a rate at the final slewing stage)
// number of consecutive measurements within slewToleranceRadius radius to stop adjusting of slewing
size_t withinToleranceCycleNumber{defaultWithinToleranceCycleNumber};
// maximal allowed number of adjusting cycles
size_t maxAdjustingCycleNumber{defaultMaxAdjustingCycleNumber};
// ******* guiding-related parameters *******
coord_t correctionRange[2]{(double)MccAngle(0.3_arcsecs), (double)MccAngle(5.0_arcsecs)};
};
/* CHECK FOR CURRENT MOUNT POSITION IN PROHIBITED ZONES */
template <traits::mcc_mount_telemetry_data_c TelemetryDataT, traits::mcc_prohibited_zone_c<TelemetryDataT>... ZTs>