From b3a257fab6c8d2962423de304fab9e2338e7ee09 Mon Sep 17 00:00:00 2001 From: "Timur A. Fatkhullin" Date: Wed, 12 Nov 2025 18:50:23 +0300 Subject: [PATCH] ... --- asibfm700/asibfm700_configfile.h | 3 +++ asibfm700/asibfm700_mount.cpp | 3 +++ mcc/mcc_generic_mount.h | 6 +++--- mcc/mcc_generics.h | 2 ++ mcc/mcc_moving_model_common.h | 4 ++-- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/asibfm700/asibfm700_configfile.h b/asibfm700/asibfm700_configfile.h index 34c5484..6c7f162 100644 --- a/asibfm700/asibfm700_configfile.h +++ b/asibfm700/asibfm700_configfile.h @@ -513,6 +513,9 @@ public: getValue("slewToleranceRadius").value_or(pars.slewToleranceRadius) * arcsecs2rad; + pars.slewRateX = getValue("hwMaxRateHA").value_or(pars.slewRateX); + pars.slewRateY = getValue("hwMaxRateDEC").value_or(pars.slewRateY); + pars.adjustCoordDiff = getValue("adjustCoordDiff").value_or(pars.adjustCoordDiff) * arcsecs2rad; diff --git a/asibfm700/asibfm700_mount.cpp b/asibfm700/asibfm700_mount.cpp index b42e50e..f08848b 100644 --- a/asibfm700/asibfm700_mount.cpp +++ b/asibfm700/asibfm700_mount.cpp @@ -106,6 +106,9 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount() auto st_err = setSlewingParams(mpars); if (st_err) { errorLogging(" An error occured while setting slewing parameters: ", st_err); + } else { + logInfo(" Max HA-axis speed: {} degs/s", mcc::MccAngle(mpars.slewRateX).degrees()); + logInfo(" Max DEC-axis speed: {} degs/s", mcc::MccAngle(mpars.slewRateY).degrees()); } st_err = setTrackingParams(_mountConfig.movingModelParams()); if (st_err) { diff --git a/mcc/mcc_generic_mount.h b/mcc/mcc_generic_mount.h index bf700d4..0614f71 100644 --- a/mcc/mcc_generic_mount.h +++ b/mcc/mcc_generic_mount.h @@ -277,7 +277,7 @@ public: *_mountStatus = mount_status_t::SLEWING; - auto s_err = + error_t s_err = mcc_deduce_error_code(SlewModelT::slewToTarget(slew_and_stop), MccGenericMountErrorCode::ERROR_MOUNT_SLEW); if (s_err) { @@ -640,7 +640,7 @@ protected: return; } - // call base-class stopMount method! + // call base-class slewToTarget method! auto err = static_cast(mount_ptr)->slewToTarget(); if (err) { mount_ptr->dispatchEvent(MccGenericFsmMountErrorEvent{mount_ptr, err}); @@ -713,7 +713,7 @@ protected: return; } - // after stop trackin switch to IDLE state + // after stop tracking switch to IDLE state mount_ptr->dispatchEvent(MccGenericFsmMountIdleEvent{mount_ptr}); } diff --git a/mcc/mcc_generics.h b/mcc/mcc_generics.h index 356b961..9524302 100644 --- a/mcc/mcc_generics.h +++ b/mcc/mcc_generics.h @@ -915,6 +915,8 @@ concept mcc_slewing_model_c = requires(T t) { { t.setSlewingParams(std::declval()) } -> mcc_error_c; // { t.setSlewingParams(std::declval()) } -> std::same_as; { t.getSlewingParams() } -> std::same_as; + + { t.slewingCurrentError() } -> mcc_error_c; }; diff --git a/mcc/mcc_moving_model_common.h b/mcc/mcc_moving_model_common.h index 5bf5f5c..379d570 100644 --- a/mcc/mcc_moving_model_common.h +++ b/mcc/mcc_moving_model_common.h @@ -43,8 +43,8 @@ struct MccSimpleMovingModelParams { // slew process timeout std::chrono::seconds slewTimeout{3600}; - double slewRateX{0.0}; // maximal slewing rate (0 means move with maximal allowed rate) - double slewRateY{0.0}; // maximal slewing rate (0 means move with maximal allowed rate) + double slewRateX{0.0}; // maximal slewing rate (0 means move with maximal allowed rate????!!!!!) + double slewRateY{0.0}; // maximal slewing rate (0 means move with maximal allowed rate????!!!!!) std::chrono::milliseconds adjustCycleInterval{500}; // minimum time between two successive adjustments