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.

Reply via email to