×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

Synchronizing with slew destination reached event with lx200 driver.

  • Posts: 102
  • Thank you received: 13
Dear all,
I used to go check the following documentation to undersand basic propoerties of cameras/telescope and write scripts for my equipments
indilib.org/developers/deveioper-manual/...s.html#h3-telescopes

Recently, I found myself in trouble while someone tried to used a piece of software I used, that contained a simple "goto".
In practice the goto amounts to do that:
set number 'EQUATORIAL_EOD_COORD' to specified value
wait until EQUATORIAL_EOD_COORD light goes from IPS_BUSY to something else (either IPS_ALERT or IPS_OK)

Usually, for instance in the simulator, the light goes to IPS_OK when the slew is over, and the telescope is at the desired psition.

Relevant code for this behaviour can be found there:
github.com/indilib/indi/blob/6bae059fd24...ditelescope.cpp#L877

However, for lx 200 based driver, it looks like the behaviour might be different, but this is not 100% clear to me:
github.com/indilib/indi/blob/22718d728fa...00telescope.cpp#L402

It looks like the IPS_BUSY has been commented out, and instead, the TrackState (from enum TelescopeStatus) is updated. Unfortunately, from what I know, the TelescopeStatus is not exposed as either a read-only switch or something else, making it impossible to synchronize properly on the end of the slew.

Am I understanding the issue correctly or not ?
Thank you in advance for your help.

Best regards
1 year 5 months ago #87296

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

  • Posts: 276
  • Thank you received: 52
Hi

You do not mention if you are looking for DBUS scripting or bash scripting using indi_get/set properties.
Using indi_get/set properties you will not see anything change on a slew other than the 'EQUATORIAL_EOD_COORD' and TARGET properties.

Here is a small bash shell script showing the differences in the properties after a 'set' on 'EQUATORIAL_EOD_COORD'
Launch indiserver with lx200classic
indiserver indi_lx200classic

===========cut here ==========
#!/bin/bash
indi_setprop "LX200 Classic.SIMULATION.ENABLE=On"
sleep 1
indi_setprop "LX200 Classic.CONNECTION.CONNECT=On"
sleep 1
indi_getprop >/tmp/pollstart.log 2>&1
sleep 1
echo "Moving to RA = $1 DEC = $2"
indi_setprop "LX200 Classic.EQUATORIAL_EOD_COORD.RA;DEC=$1;$2"
for i in {1..10}
do
indi_getprop >/tmp/poll$i 2>&1
sleep 1
done
for i in {1..10}
do
echo i=$i `diff /tmp/pollstart.log /tmp/poll$i`
done
========= cut here =========

Gene
1 year 5 months ago #87363

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

  • Posts: 102
  • Thank you received: 13
Nice, thank you very much for your answer, I didn't know the command "indi_setprop" existed, this is quite handy for debugging !
I am using a custom python implementation of indi client (not the official pyindi, that I stopped using a while ago because of poor maintenance status).
Actually I realized what was the issue, and it was not related to the lx200 mount driver implementation.

I was sending 2 TARGET_EOD_COORD set in a row, without waiting for the end of the goto.
What happened is that I was received a TELESCOPE_ABORT_MOTION switch, and the TARGET_EOD_COORD was set to IDLE value (instead of the BUSY I expected).

I fixed my script and now everything is working as expected
1 year 5 months ago #87368

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

Time to create page: 0.449 seconds