if I use the Bus interface of EKOS from my understanding there is no need for INDI (because I get all from that one interface). I guess, that I could access all Dbus API's via TCP connection. Is that right ?
From Python, you can communicate communicate with the DBus interface. Here is a
about using the INDI DBus interface in KStars. But you'd want to use the Ekos DBus interface since the INDI interface is considered low level.
that's right if you stay on pure linux (or BSD) based systems. But MW support windows as well and I would stay with an OS independent solution if I am leaving the windows environment. So accessing Dbus from python is still a learning curve for me, but having a native python implementation for a remote Dbus client is really tricky. All other imaging suites offering a REST API for remote control, which makes thing much more easy. Is there anything like that in EKOS ?
mworion wrote: ... With the SOFA library I would do a C to python translation myself over time if there is no solution available. First I have to ask the guys at SOFA to get the allowance to use it in MountWizzard.
I propose to use ERFA instead :
"ERFA is a C library containing key algorithms for astronomy, and is based on the SOFA library published by the International Astronomical Union (IAU).
ERFA is intended to replicate the functionality of SOFA (aside from possible bugfixes in ERFA that have not yet been included in SOFA), but is licensed under a three-clause BSD license to enable its compatibility with a wide range of open source licenses. Permission for this release has been obtained from the SOFA board, and is avilable in the LICENSE file included in this source distribution."
For 10Micron mount modelling we need to add the following functionality to the driver :
First store the temperature and pressure. This will get used by :newalpt and/or :endalig# lateron.
:SRTMPsTTT.T# Sets the tempreature at the location of the telescope used in the refraction model to sTTT.T degrees Celsius. Returns 1# if OK, 0# on error.
:SRPRSPPPP.P# Sets the atmospheric pressure at the location of the telescope used in the refraction model to PPPP.P hPa. Returns 1# if OK, 0# on error.
Begin a new alignment specification. (This will not clear the active alignment model the mount is using.)
:newalig# returns V#
Next loop over up to 100 alignment points, per point get mount RA/DEC, pier side, local sidereal time, plate-solved RA/DEC (*) and store :newalpt
:GR# get mount right ascension. Returns HH:MM:SS.SS# (hours, minutes, seconds and hundredths of seconds)
:GD# get mount declination. Returns sDD:MM:SS.S# (degrees, arcminutes, arcseconds and tenths of arcsecond)
:pS# Pier side. Returns string "East#" or "West#"
:GS# Get local sidereal time
:newalptMRA,MDEC,MSIDE,PRA,PDEC,SIDTIME# Returns nnn# if OK with nnn the number of active points, E# if not
MRA - the mount-reported right ascension, expressed as HH:MM:SS.S
MDEC - the mount-reported declination, expressed as sDD:MM:SS
MSIDE - the mount-reported pier side (the letter 'E' or 'W', as reported by the :pS# command)
PRA - the plate-solved right ascension (i.e. the right ascension the telescope was effectively pointing to), expressed as HH:MM:SS.S
PDEC - the plate-solved declination (i.e. the declination the telescope was effectively pointing to), expressed as sDD:MM:SS
SIDTIME - the local sidereal time at the time of the measurement of the point, expressed as HH:MM:SS.S
End the new alignment model and compute a new alignment from the given alignment points.
:endalig# returns V# if new alignment model has been computed OK
Save the model.
:modeldel0NAME# DELete a model with name NAME (up to 15 case sensitive characters, spaces allowed). Returns 1# if OK, 0# on error
:modelsv0NAME# SaVe the model with name NAME. Returns 1# if OK, 0# on error
(*) We need to transform plate-solved J2000.0 coordinates to JNow as input for the :newalpt PRA ad PDEC parameters and JNow as SIDERES, however in this transformation we need to deliberately ignore everything that is related to refraction (like temperature, pressure, humidity, wavelength) and only correct for precession, nutation and light aberration. This can be done with SOFA/ERFA Atci13, or with Atco13 when all its refratcion parameters are set to 0.
The 10Micron mount then receives these 'half transformed' coordinates and corrects for refraction with the temperature and pressure it was given earlier with :SRTMP and :SRPRS (ignoring things like humidity and wavelength).
Lateron we can add functionality to manage the models with these
:getalst# Gets the number of alignment stars used in the current alignment model. Returns n#
:delalig# Deletes the current alignment model and stars. Returns #
:getalpN# Gets alignment information for star number N. Returns: E# on error or "HH:MM:SS.SS,+dd*mm:ss.s,eeee.e,ppp#" where HH:MM:SS.SS is the hour angle of the alignment star in hours, minutes, seconds and hundredths of second (from 0h to 23h59m59.99s), +dd*mm:ss.s is the declination of the alignment star in degrees, arcminutes, arcseconds and tenths of arcsecond, eeee.e is the error between the star and the alignment model in arcseconds, ppp is the polar angle of the measured star with respect to the modeled star in the equatorial system in degrees from 0 to 359 (0 towards the north pole, 90 towards east).
:delalstN# Delete alignment star N and recalculate the model. Returns 1# if OK, 0# on error
:modelcnt# Gets the number of alignment models. Returns: n#
:modelnamN# Returns the name of model number N or just # on error.
:modelld0NAME# Loads the model with the given NAME. Returns 1# if OK, 0# on error
I intend to add all this to the INDI driver. Does this line up with the EKOS Mount Modelling tool ?
just a short heartbeat from MountWizzard and support for INDI: So far the connections is made, I could take pictures via IP from EKOS. Still not that advanced
as I liked it to be, because there are some informations missing about camera status etc. Next steps would be to integrate MBox (refraction data) and telescope driver (for simulation purpose. Hope you will see a running beta soon.
BTW: MountWizzard runs now on Windows / MAC / Linux using QT and python 3.5
Hi Michel, I'm not exactly sure what you mean, the driver so far is just an interface to the 10Micron API meaning that :newalpt wants the plate solved J2000 coordinates to be corrected for precession, nutation and light aberration in JNow, but not corrected for refraction in any way.
I would like to add the J2000->JNow(precession, nutation and light aberration) to INDI by adding (parts of) ERFA to INDI, but that would also make INDI quite a bit larger and I doubt 'the other INDI devs' want that.