This commit is contained in:
2026-02-27 12:29:21 +03:00
parent 982846d2b1
commit 006930dc0d
2 changed files with 24 additions and 1 deletions

View File

@@ -33,6 +33,10 @@ Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config, std::shared_p
Asibfm700Mount::~Asibfm700Mount()
{
stoppingImpl();
Mount.quit();
logDebug("Delete Asibfm700Mount class instance ({})", this->getThreadId());
}
@@ -476,6 +480,16 @@ Asibfm700Mount::error_t Asibfm700Mount::checkPZone(typename telemetry_t::telemet
Asibfm700Mount::error_t Asibfm700Mount::slewingImpl(bool slew_and_stop)
{
// if mount is already slewing then stop and re-slew
if (_mountStatus->load() == mount_status_t::MOUNT_STATUS_SLEWING ||
_mountStatus->load() == mount_status_t::MOUNT_STATUS_ADJUSTING) {
*_lastMountError = stoppingImpl();
if (_lastMountError->load()) {
return _lastMountError->load();
}
}
_pathFile.clearPath();
_enteredBackupCoordinates = telemetry_t::getPointingTarget();
@@ -729,6 +743,10 @@ Asibfm700Mount::error_t Asibfm700Mount::slewingImpl(bool slew_and_stop)
Asibfm700Mount::error_t Asibfm700Mount::trackingImpl()
{
if (_mountStatus->load() == mount_status_t::MOUNT_STATUS_TRACKING) { // just ignore
return mcc::impl::MccGenericMovementControlsErrorCode::ERROR_OK;
}
*_mountStatus = mount_status_t::MOUNT_STATUS_TRACKING;
_pathFile.clearPath();
@@ -859,9 +877,11 @@ Asibfm700Mount::error_t Asibfm700Mount::trackingImpl()
Asibfm700Mount::error_t Asibfm700Mount::stoppingImpl()
{
*_stopMovementRequest = true;
typename AsibFM700ServoController::hardware_state_t hw_state;
hw_state.movementState == AsibFM700ServoController::hardware_movement_state_t::HW_MOVE_STOPPING;
hw_state.movementState = AsibFM700ServoController::hardware_movement_state_t::HW_MOVE_STOPPING;
*_lastMountError = sendToHardware(hw_state);