×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

Meridian Flip - EKOS/Onstep Slews to last star

  • Posts: 33
  • Thank you received: 15
What kind of debugging environment?  
2 years 7 months ago #74886

Please Log in or Create an account to join the conversation.

  • Posts: 1185
  • Thank you received: 370
2 years 7 months ago #74887

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
I have now been testing changes in polling time with no effect so far but I can reproduce this consistently - I am on my 3rd attempt now and will post logs when it is done - from what is can see, the polling changes simple move along the time between MF slewing started and flip completed - this behavior does actually stop the full slew - the mount stops and resumes tracking at some half baked position after about 2 seconds (with the added wind-down of the slew to tracking - so perhaps 6 seconds of motion)
2 years 7 months ago #74888

Please Log in or Create an account to join the conversation.

  • Posts: 322
  • Thank you received: 31
Jamie,

An simpler and easier test scenario may be enabling the notification for end of slew (a popup will show). Then when you start a slew, the popup will show instantly saying the the slew is done, whereas in reality, the slew has just begun and has not reached the destination coordinates yet.
2 years 7 months ago #74889

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
FYI latest test - increased the polling to 2000 ms and I get exactly the same MF_complete 1 second after slewing started BUT the mount was able to physically do the full flip whihc was NOT the case with 500, 1000, 1500. So regardless of polling the actor that is resetting m_state to tracking is not being impacted by polling. I need to find out where that tracking is being pulled from - will be checking the new logs - I am suspecting teh state is coming form a default or local variable that is just sitting at tracking - there is a LOT of cross-variable checking going on here
2 years 7 months ago #74890

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
Think I found something - the main windows status shows slewing-> the mount control utility shows tracking...this tell me there ARE to status variables being looked at and teh CORRECT one is whatever is use in the main window!!!! - it is reflecting state correctly - I think I can hunt this down knowing this - back trace the variables used by the gui
2 years 7 months ago #74891

Please Log in or Create an account to join the conversation.

  • Posts: 322
  • Thank you received: 31
Jamie,

Here is a guess ..

I tested with my OnStep Python API, and the mount was showing correct behaviour
Note state changed from SLW to TRK.

The code I use is the result of :GU#, which is in 's' below:
    if 'n' in s and 'N' in s:
      self.is_slewing = False
      self.is_tracking = False
 
    if not 'n' in s and not 'N' in s:
      self.is_slewing = True
      self.is_tracking = False
 
    if not 'n' in s and 'N' in s:
      self.is_slewing = False
      self.is_tracking = True

Whereas, when I check indi/drivers/telescope/lx200_OnStep.cpp (from github.com/indilib/indi.git).

There is the following:
bool LX200_OnStep::ReadScopeStatus()
        getCommandString(PortFD, OSStat, ":GU#"); // :GU# returns a string containg controller status
        if (strcmp(OSStat, OldOSStat) != 0) //if status changed
        {   
            // ============= Telescope Status
            strcpy(OldOSStat, OSStat);
 
            IUSaveText(&OnstepStat[0], OSStat);
            if (strstr(OSStat, "n") && strstr(OSStat, "N"))
            {   
                IUSaveText(&OnstepStat[1], "Idle");
                TrackState = SCOPE_IDLE;
            }
            if (strstr(OSStat, "n") && !strstr(OSStat, "N"))
            {   
                IUSaveText(&OnstepStat[1], "Slewing");
                TrackState = SCOPE_SLEWING;
            }
            if (strstr(OSStat, "N") && !strstr(OSStat, "n"))
            {   
                IUSaveText(&OnstepStat[1], "Tracking");
                TrackState = SCOPE_TRACKING;
            }

Looks like that is wrong. For slewing it should be:
            if (!strstr(OSStat, "n") && !strstr(OSStat, "N"))
Last edit: 2 years 7 months ago by Khalid.
2 years 7 months ago #74892

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
scrap that last note - it is not repeatable - I still see on all slews a flip from slew to tracking - no flip is required to do this (easier to test) - I know now it is NOT related to Meridian Flip

HOWEVER - slewing status IS consistent when PARKING! so the mechanism used in that code is GOOD, the rest has an issue - I think this is a eureka moment - now to find the diff between normal slew and a slew to park
Last edit: 2 years 7 months ago by JAMIE FLINN.
2 years 7 months ago #74893

Please Log in or Create an account to join the conversation.

  • Posts: 322
  • Thank you received: 31
Just tried now with the latest PPA package on Ubuntu 18.04, and I can confirm that the mount status is not right.

kstars-bleeding 6:3.5.4+202107081130~ubuntu18.04.1
indi-bin 1.9.1~202107052238~ubuntu18.04.1

When I slew from KStars, after a second or two, I get the notification of "Mount arrived at target location", and in Ekos main screen the mount says it is "Tracking".

But in reality, the mount is slewing, and I can see the cross hairs moving over the sky.

In the meantime, my Python API reports the correct status.

I also see that the target name on the Ekos screen is wrong: although I reached Arcturus west of the meridian, Ekos says it is on Capella, east of the meridian. Another user says he saw this last problem in a thread on the OnStep group.
2 years 7 months ago #74894

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
I'll build this and see - be back in a bit
2 years 7 months ago #74895

Please Log in or Create an account to join the conversation.

  • Posts: 148
  • Thank you received: 19
Tried if (!strstr(OSStat, "n") && !strstr(OSStat, "N"))
No love....and I can confirm the mismatch in star as I was ON Rastaban...Ekos showing something else (Gremin?)
I think I may be going back to 3.5.3 or 3.5.2 here until it gets looked at by actual experts :-)
2 years 7 months ago #74896

Please Log in or Create an account to join the conversation.

  • Posts: 322
  • Thank you received: 31
Since this bug reared its head, Ekos is always one star behind.
If you slew to Capella, wait a bit, then slew Arcturus.
After the second slew, Ekos will still say it is on Capella.
2 years 7 months ago #74901

Please Log in or Create an account to join the conversation.

Time to create page: 1.471 seconds