https://bugs.kde.org/show_bug.cgi?id=410094
--- Comment #18 from James Lancaster <deathstal...@gmail.com> --- Well, there's at least one instance seen here that I looked at. [2019-08-22T14:00:48.074 CDT INFO ][ org.kde.kstars.indi] - LX200 OnStep : "[INFO] OnStep: Synchronization successful. " [2019-08-22T14:00:48.074 CDT DEBG ][ org.kde.kstars.ekos.align] - ## RA "04:10:48" DE "61:35:06" state: Ok slewStarted? false [2019-08-22T14:00:48.074 CDT DEBG ][ org.kde.kstars.ekos.align] - ## ALIGN_SYNCING --> setting slewStarted to FALSE [2019-08-22T14:00:48.074 CDT INFO ][ org.kde.kstars.ekos.align] - "Mount is synced to solution coordinates. Astrometric solver is successful." [2019-08-22T14:00:48.108 CDT DEBG ][ org.kde.kstars.ekos.align] - ## Before SLEW command: wasSlewStarted --> false [2019-08-22T14:00:48.108 CDT DEBG ][ org.kde.kstars.indi] - ISD:Telescope: TRACK [2019-08-22T14:00:48.115 CDT DEBG ][ org.kde.kstars.indi] - ISD:Telescope sending coords RA: "06h 59m 17s" ( 6.98829 ) DE: " 61° 30' 54\"" ( 61.515 ) [2019-08-22T14:00:48.115 CDT DEBG ][ org.kde.kstars.ekos.align] - ## After SLEW command: wasSlewStarted --> true [2019-08-22T14:00:48.115 CDT INFO ][ org.kde.kstars.ekos.align] - "Slewing to target coordinates: RA (06h 59m 17s) DEC ( 61° 30' 54\")." [2019-08-22T14:00:48.116 CDT DEBG ][ org.kde.kstars.ekos.align] - ## RA "04:10:48" DE "61:35:06" state: Busy slewStarted? true [2019-08-22T14:00:48.116 CDT DEBG ][ org.kde.kstars.ekos.align] - ## IPS_BUSY --> setting slewStarted to TRUE ... [2019-08-22T14:00:48.268 CDT DEBG ][ org.kde.kstars.ekos.align] - ## RA "04:10:48" DE "61:35:07" state: Ok slewStarted? true [2019-08-22T14:00:48.268 CDT DEBG ][ org.kde.kstars.ekos.align] - ## IPS_OK --> Auto Update Position... [2019-08-22T14:00:48.268 CDT DEBG ][ org.kde.kstars.ekos.align] - ## Mount has not started slewing yet... [2019-08-22T14:00:48.268 CDT DEBG ][ org.kde.kstars.ekos.align] - ## ALIGN_SLEWING --> setting slewStarted to FALSE [2019-08-22T14:00:48.269 CDT INFO ][ org.kde.kstars.ekos.align] - "Slew complete. Solving Alignment Point. . ." [2019-08-22T14:00:48.269 CDT INFO ][ org.kde.kstars.ekos.align] - "Settling..." [2019-08-22T14:00:48.270 CDT INFO ][ org.kde.kstars.ekos.align] - "ReConnecting timer..." ... [2019-08-22T14:00:48.305 CDT DEBG ][ org.kde.kstars.ekos.align] - ## RA "04:10:48" DE "61:35:07" state: Busy slewStarted? false [2019-08-22T14:00:48.305 CDT DEBG ][ org.kde.kstars.ekos.align] - ## IPS_BUSY --> setting slewStarted to TRUE [2019-08-22T14:00:48.305 CDT INFO ][ org.kde.kstars.ekos.align] - "Bug 410094 settle restarting timer..." Which has two problems: 1. m_wasSlewStarted = currentTelescope->Slew(&targetCoord); (Ref 2019-08-22T14:00:48.115 ) 2. The State being set erroniously to IPS_BUSY (Ref 2019-08-22T14:00:48.116), and not by the INDI driver, which comes back with the telescope status at 2019-08-22T14:00:48.268 with an IPS_OK. The command to issue it However, in the past I have tested it (and will again) with #1 not returning anything. So while potentially annoying, it is not the overall issue. (And could trigger when status is reported.) Just for reference, here's the diff as regards git (I haven't updated since the patch) Also to show where I have the timers set/reset if busy. diff --git a/kstars/ekos/align/align.cpp b/kstars/ekos/align/align.cpp index 1cdc9026d..bd004125d 100644 --- a/kstars/ekos/align/align.cpp +++ b/kstars/ekos/align/align.cpp @@ -3489,11 +3489,15 @@ void Align::processNumber(INumberVectorProperty *nvp) ScopeRAOut->setText(ra_dms); ScopeDecOut->setText(dec_dms); + qCDebug(KSTARS_EKOS_ALIGN) << "## RA" << ra_dms << "DE" << dec_dms + << "state:" << pstateStr(nvp->s) << "slewStarted?" << m_wasSlewStarted; + switch (nvp->s) { // Idle --> Mount not tracking or slewing case IPS_IDLE: m_wasSlewStarted = false; + qCDebug(KSTARS_EKOS_ALIGN) << "## IPS_IDLE --> setting slewStarted to FALSE"; break; // Ok --> Mount Tracking. If m_wasSlewStarted is true @@ -3503,6 +3507,7 @@ void Align::processNumber(INumberVectorProperty *nvp) // Update the boxes as the mount just finished slewing if (m_wasSlewStarted && Options::astrometryAutoUpdatePosition()) { + qCDebug(KSTARS_EKOS_ALIGN) << "## IPS_OK --> Auto Update Position..."; opsAstrometry->estRA->setText(ra_dms); opsAstrometry->estDec->setText(dec_dms); @@ -3522,6 +3527,7 @@ void Align::processNumber(INumberVectorProperty *nvp) // If we are looking for celestial pole if (m_wasSlewStarted && pahStage == PAH_FIND_CP) { + qCDebug(KSTARS_EKOS_ALIGN) << "## PAH_FIND_CP--> setting slewStarted to FALSE"; m_wasSlewStarted = false; appendLogText(i18n("Mount completed slewing near celestial pole. Capture again to verify.")); setSolverAction(GOTO_NOTHING); @@ -3575,6 +3581,8 @@ void Align::processNumber(INumberVectorProperty *nvp) case ALIGN_SYNCING: { m_wasSlewStarted = false; + + qCDebug(KSTARS_EKOS_ALIGN) << "## ALIGN_SYNCING --> setting slewStarted to FALSE"; if (currentGotoMode == GOTO_SLEW) { Slew(); @@ -3588,7 +3596,6 @@ void Align::processNumber(INumberVectorProperty *nvp) state = ALIGN_COMPLETE; emit newStatus(state); solverIterations = 0; - if (mountModelRunning) finishAlignmentPoint(true); } @@ -3597,9 +3604,16 @@ void Align::processNumber(INumberVectorProperty *nvp) case ALIGN_SLEWING: // If mount has not started slewing yet, then skip + qCDebug(KSTARS_EKOS_ALIGN) << "## Mount has not started slewing yet..."; if (m_wasSlewStarted == false) break; + qCDebug(KSTARS_EKOS_ALIGN) << "## ALIGN_SLEWING --> setting slewStarted to FALSE"; + + if (maybeMasking.isActive()) { + qCDebug(KSTARS_EKOS_ALIGN) << "## ALIGN_SLEWING --> maybeMasking.isActive() is still true, continuing"; + } + m_wasSlewStarted = false; if (loadSlewState == IPS_BUSY) { @@ -3640,13 +3654,20 @@ void Align::processNumber(INumberVectorProperty *nvp) if (delaySpin->value() >= DELAY_THRESHOLD_NOTIFY) appendLogText(i18n("Settling...")); - QTimer::singleShot(delaySpin->value(), this, &Ekos::Align::captureAndSolve); +// QTimer::singleShot(delaySpin->value(), this, &Ekos::Align::captureAndSolve); + maybeMasking.setSingleShot(true); + appendLogText(i18n("ReConnecting timer...")); + maybeMasking.disconnect(); + connect(&maybeMasking, &QTimer::timeout, this, &Ekos::Align::captureAndSolve); + maybeMasking.setInterval(delaySpin->value()); + maybeMasking.start(); return; } break; default: { + qCDebug(KSTARS_EKOS_ALIGN) << "## Align State " << state << "--> setting slewStarted to FALSE"; m_wasSlewStarted = false; } break; @@ -3657,13 +3678,19 @@ void Align::processNumber(INumberVectorProperty *nvp) // Busy --> Mount Slewing or Moving (NSWE buttons) case IPS_BUSY: { + qCDebug(KSTARS_EKOS_ALIGN) << "## IPS_BUSY --> setting slewStarted to TRUE"; m_wasSlewStarted = true; + if (maybeMasking.isActive()){ + maybeMasking.start(); + appendLogText(i18n("Bug 410094 settle restarting timer...")); + } } break; // Alert --> Mount has problem moving or communicating. case IPS_ALERT: { + qCDebug(KSTARS_EKOS_ALIGN) << "## IPS_ALERT --> setting slewStarted to FALSE"; m_wasSlewStarted = false; if (state == ALIGN_SYNCING || state == ALIGN_SLEWING) @@ -3877,7 +3904,10 @@ void Align::Slew() state = ALIGN_SLEWING; emit newStatus(state); - m_wasSlewStarted = currentTelescope->Slew(&targetCoord); + qCDebug(KSTARS_EKOS_ALIGN) << "## Before SLEW command: wasSlewStarted -->" << m_wasSlewStarted; + //m_wasSlewStarted = + currentTelescope->Slew(&targetCoord); + qCDebug(KSTARS_EKOS_ALIGN) << "## After SLEW command: wasSlewStarted -->" << m_wasSlewStarted; appendLogText(i18n("Slewing to target coordinates: RA (%1) DEC (%2).", targetCoord.ra().toHMSString(), targetCoord.dec().toDMSString())); diff --git a/kstars/ekos/align/align.h b/kstars/ekos/align/align.h index 4c3caa23f..e01aac786 100644 --- a/kstars/ekos/align/align.h +++ b/kstars/ekos/align/align.h @@ -750,6 +750,7 @@ class Align : public QWidget, public Ui::Align /// Have we slewed? bool m_wasSlewStarted { false }; + QTimer maybeMasking; // Online and Offline parsers AstrometryParser* parser { nullptr }; -- You are receiving this mail because: You are watching all bug changes.