Hi Harry. These are caused by implementation problems in NINA. In the cases where the error occurs, NINA has requested an operation that may take a long time and requires settling – for example ‘start guiding’ or ‘dither’. In one case, the ‘start guiding’ required a calibration. But NINA isn’t monitoring the PHD2 settling activity correctly – or at all – and then tries to initiate a dither operation before the original settling has completed. This is something they will have to address, it isn’t a problem when the automation app is working correctly. That said, these are “soft” errors – PHD2 keeps guiding but the requested dither operation wasn’t done.
Good luck,
Bruce
--
You received this message because you are subscribed to the Google Groups
"Open PHD Guiding" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to open-phd-guidi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/be8c084a-4afe-4e08-a56b-284bf9165c62n%40googlegroups.com.
Hi Jay. I think I explained the reason. This wasn’t guess-work, the PHD2 debug log file shows the problem pretty clearly. But perhaps you can find some workaround in NINA to avoid the problem.
Bruce
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/4c54b2ef-32e7-4754-aa79-f43779ea3b55n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/4c54b2ef-32e7-4754-aa79-f43779ea3b55n%40googlegroups.com.
I think they are mistaken for the reasons I’ve explained. The problem is not seen in any other imaging/automation software we’re aware of, notably SGP, but numerous others. If the NINA developers are having problems handling PHD2 settling events and keeping things in synch, they can contact us on this forum and we will try to help.
Bruce.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/6248a12f-dbd1-4342-b81f-e2312c0e1aeen%40googlegroups.com.
You received this message because you are subscribed to a topic in the Google Groups "Open PHD Guiding" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/open-phd-guiding/EMWTXmQdiak/unsubscribe.
To unsubscribe from this group and all its topics, send an email to open-phd-guidi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/b2c053c9-81a6-4772-9699-add868568f16n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/d90f88e3-b5f7-4eba-a2cf-1edc325d6ba2n%40googlegroups.com.
Hi Shlomi. There are reference implementations (with source code) for a PHD2 client app here:
https://github.com/agalasso/phd2client
Bruce
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/CANyzh%3Dj5uJ2vdihOBUrpHysgSyi4%2Bh0%2B6ZEvVU7XwMUBYmPtug%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/D44A121516B34FD2A42BCC6C6F3B5A1F%40HomeDesktop.
Take a look at my earlier response to Dale. I think it makes more sense for the app to monitor the settling events in real-time, block new camera exposures and dithers until the SettleDone is received, analyze the associated conditions such as a timeout, and react appropriately. If this is done, the next camera exposure won’t be started prematurely and there really won’t be any reason a second dither or start-guiding command would be issued. PHD2 is running a state machine here and it seems like the imaging app would be doing the same thing. In that case, there’s no reason to think of ‘SettleDone’ as a pre-condition – it’s an event, not an externally reported state in PHD2.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/CANyzh%3Dgg2BeHW2GnGm4kgf5kdxa07KCw%3Dc3v6RxNtFoJhniXXw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/A70D73478F964D4189B34664F31BDC58%40HomeDesktop.
No, it’s not feasible for us to try to document the internals of PHD2, we have a hard enough time with end-user documentation and support. There generally isn’t a need to know and if someone is just curious, they should study the source code.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/CANyzh%3DjHC_c9ijEwcszQfwTj%3D-6qBiO%2B5OECucEQ6zV0uttOSA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/0883DC379BC8489E86C1C62EC53B8251%40HomeDesktop.
We don’t demand that anyone has to know about the state machines – there are many of them. We’ve documented the server interface and we’ve provided reference code for how to use it. If those aren’t clear, we will try to improve on them as time permits. Or better yet, you can. If you’ve become fixated on the state machine behind the event-server interface, that is implemented in phdcontrol.cpp.
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/CANyzh%3Dg23ocmRqCCd0cDqs4cq-_A%2BV_vGKqKnNP-_fYconRmdQ%40mail.gmail.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/5012DC3C22F54AB790E45927249A3B69%40HomeDesktop.
Hi guys. Just to tie this off, there’s a pretty easy way to use the PHD2 debug log file to see the traffic between your app and PHD2. You just do a text-search for ‘evsrv’ and you’ll get a nice history of what happened during the session. Here’s a partial example:
01:25:10.586 635.081 6972 evsrv: cli 0688D0C8 connect
01:25:10.586 00.000 6972 evsrv: cli 0688D0C8 request: {"method":"guide","params":[{"pixels":1,"time":10,"timeout":40},false],"id":3}
01:25:10.596 00.000 6972 evsrv: cli 0688D0C8 response: {"jsonrpc":"2.0","result":0,"id":3}
01:25:25.629 00.270 6972 evsrv: cli 0688CD08 request: {"method":"get_pixel_scale","id":1}
01:25:25.629 00.000 6972 evsrv: cli 0688CD08 response: {"jsonrpc":"2.0","result":1.04744,"id":1}
01:25:28.940 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612859128.940,"Host":"ANZA-DOME","Inst":1,"Distance":0.52,"Time":0.0,"SettleTime":10.0,"StarLocked":true}
01:25:32.060 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612859132.060,"Host":"ANZA-DOME","Inst":1,"Distance":0.47,"Time":3.1,"SettleTime":10.0,"StarLocked":true}
01:25:34.861 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612859134.861,"Host":"ANZA-DOME","Inst":1,"Distance":0.45,"Time":5.9,"SettleTime":10.0,"StarLocked":true}
01:25:37.351 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612859137.351,"Host":"ANZA-DOME","Inst":1,"Distance":0.47,"Time":8.4,"SettleTime":10.0,"StarLocked":true}
01:25:39.912 00.000 6972 evsrv: {"Event":"SettleDone","Timestamp":1612859139.912,"Host":"ANZA-DOME","Inst":1,"Status":0,"TotalFrames":5,"DroppedFrames":0}
01:25:41.912 02.000 6972 evsrv: cli 0688D0C8 disconnect
01:56:08.875 00.030 6972 evsrv: cli 0688D528 connect
01:56:08.885 00.000 6972 evsrv: cli 0688D528 request: {"method":"dither","params":[6,false,{"pixels":1,"time":10,"timeout":40}],"id":2}
01:56:08.895 00.000 6972 evsrv: cli 0688D528 response: {"jsonrpc":"2.0","result":0,"id":2}
01:56:11.346 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612860971.346,"Host":"ANZA-DOME","Inst":1,"Distance":2.75,"Time":0.0,"SettleTime":10.0,"StarLocked":true}
01:56:14.407 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612860974.407,"Host":"ANZA-DOME","Inst":1,"Distance":0.18,"Time":0.0,"SettleTime":10.0,"StarLocked":true}
01:56:16.947 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612860976.947,"Host":"ANZA-DOME","Inst":1,"Distance":0.23,"Time":2.5,"SettleTime":10.0,"StarLocked":true}
01:56:19.488 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612860979.488,"Host":"ANZA-DOME","Inst":1,"Distance":0.26,"Time":5.1,"SettleTime":10.0,"StarLocked":true}
01:56:22.038 00.000 6972 evsrv: {"Event":"Settling","Timestamp":1612860982.038,"Host":"ANZA-DOME","Inst":1,"Distance":0.33,"Time":7.6,"SettleTime":10.0,"StarLocked":true}
01:56:24.588 00.000 6972 evsrv: {"Event":"SettleDone","Timestamp":1612860984.588,"Host":"ANZA-DOME","Inst":1,"Status":0,"TotalFrames":6,"DroppedFrames":0}
01:56:26.589 01.931 6972 evsrv: cli 0688D528 disconnect
02:06:38.182 00.030 6972 evsrv: cli 0688D528 connect
02:06:38.192 00.000 6972 evsrv: cli 0688D528 request: {"method":"stop_capture","id":"4"}
02:06:38.192 00.000 6972 evsrv: cli 0688D528 response: {"jsonrpc":"2.0","result":0,"id":"4"}
02:06:38.192 00.000 6972 evsrv: cli 0688D528 disconnect
02:09:46.591 187.859 6972 evsrv: cli 0688D528 connect
This happens to show a sequence of start guiding, then a dither about 30 minutes later, then a disconnect at the end of the image sequence.
This might make it easier for you to support your users if they get tangled up with dithering and settling – our experience is that many users are confused by how this works.
Bruce
To view this discussion on the web visit https://groups.google.com/d/msgid/open-phd-guiding/8bd95ad4-635e-48a9-a873-fd723500ad10n%40googlegroups.com.