This commit is contained in:
Timur A. Fatkhullin 2025-11-12 18:50:23 +03:00
parent 08ad1e665b
commit b3a257fab6
5 changed files with 13 additions and 5 deletions

View File

@ -513,6 +513,9 @@ public:
getValue<decltype(pars.slewToleranceRadius)>("slewToleranceRadius").value_or(pars.slewToleranceRadius) * getValue<decltype(pars.slewToleranceRadius)>("slewToleranceRadius").value_or(pars.slewToleranceRadius) *
arcsecs2rad; arcsecs2rad;
pars.slewRateX = getValue<decltype(pars.slewRateX)>("hwMaxRateHA").value_or(pars.slewRateX);
pars.slewRateY = getValue<decltype(pars.slewRateY)>("hwMaxRateDEC").value_or(pars.slewRateY);
pars.adjustCoordDiff = pars.adjustCoordDiff =
getValue<decltype(pars.adjustCoordDiff)>("adjustCoordDiff").value_or(pars.adjustCoordDiff) * arcsecs2rad; getValue<decltype(pars.adjustCoordDiff)>("adjustCoordDiff").value_or(pars.adjustCoordDiff) * arcsecs2rad;

View File

@ -106,6 +106,9 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
auto st_err = setSlewingParams(mpars); auto st_err = setSlewingParams(mpars);
if (st_err) { if (st_err) {
errorLogging(" An error occured while setting slewing parameters: ", 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()); st_err = setTrackingParams(_mountConfig.movingModelParams());
if (st_err) { if (st_err) {

View File

@ -277,7 +277,7 @@ public:
*_mountStatus = mount_status_t::SLEWING; *_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); mcc_deduce_error_code(SlewModelT::slewToTarget(slew_and_stop), MccGenericMountErrorCode::ERROR_MOUNT_SLEW);
if (s_err) { if (s_err) {
@ -640,7 +640,7 @@ protected:
return; return;
} }
// call base-class stopMount method! // call base-class slewToTarget method!
auto err = static_cast<MOUNT_T*>(mount_ptr)->slewToTarget(); auto err = static_cast<MOUNT_T*>(mount_ptr)->slewToTarget();
if (err) { if (err) {
mount_ptr->dispatchEvent(MccGenericFsmMountErrorEvent{mount_ptr, err}); mount_ptr->dispatchEvent(MccGenericFsmMountErrorEvent{mount_ptr, err});
@ -713,7 +713,7 @@ protected:
return; return;
} }
// after stop trackin switch to IDLE state // after stop tracking switch to IDLE state
mount_ptr->dispatchEvent(MccGenericFsmMountIdleEvent{mount_ptr}); mount_ptr->dispatchEvent(MccGenericFsmMountIdleEvent{mount_ptr});
} }

View File

@ -915,6 +915,8 @@ concept mcc_slewing_model_c = requires(T t) {
{ t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> mcc_error_c; { t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> mcc_error_c;
// { t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> std::same_as<typename T::error_t>; // { t.setSlewingParams(std::declval<typename T::slewing_params_t>()) } -> std::same_as<typename T::error_t>;
{ t.getSlewingParams() } -> std::same_as<typename T::slewing_params_t>; { t.getSlewingParams() } -> std::same_as<typename T::slewing_params_t>;
{ t.slewingCurrentError() } -> mcc_error_c;
}; };

View File

@ -43,8 +43,8 @@ struct MccSimpleMovingModelParams {
// slew process timeout // slew process timeout
std::chrono::seconds slewTimeout{3600}; std::chrono::seconds slewTimeout{3600};
double slewRateX{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) 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 std::chrono::milliseconds adjustCycleInterval{500}; // minimum time between two successive adjustments