We found the problem. The INDI driver uses in one method the call:
get_hrz_from_equ(&equ_t0, &lnobserver, jd, &hor);
[code]In commit:
commit 7488e284ee58e4b78c33eea554d5a3c63f919764
Author: Jasem Mutlaq [email protected]
Date: Sat May 22 04:56:26 2021 +0300
Do not use libnova directly since it uses different conventions which might cause issues in INDI drivers if not accounted for carefully. To avoid driver au
thors making such mistakes, the coordinate transformation functions were ported to libastro. All the function use INDI standard units
diff --git a/libs/indibase/inditelescope.h b/libs/indibase/inditelescope.h
index 171a48bee..9ce9106f1 100644
— a/libs/indibase/inditelescope.h
+++ b/libs/indibase/inditelescope.h
@@ -19,7 +19,7 @@
#pragma once
#include “defaultdevice.h”
+#include “libastro.h”
#include <libnova/julian_day.h>
#include
@@ -637,10 +637,8 @@ class Telescope : public DefaultDevice
*/
TelescopePierSide expectedPierSide(double ra);
-
// helper functions
-
double getAzimuth(double r, double d);
-
ln_lnlat_posn lnobserver { 0, 0 };
the helper variable ln_lnlat_posn lnobserver { 0, 0 } is removed and replaced
by IGeographicCoordinates, where
struct ln_lnlat_posn {
double lng; /*!< longitude. Object longitude. */
double lat; /*!< latitude. Object latitude */
};
and
typedef struct
{
double longitude; /*!< Longitude in degrees (0 to 360 eastward.)*/
double latitude; /*!< Latitude in degrees (-90 to +90) */
double elevation; /*!< Elevation from Mean Sea Level in meters */
} IGeographicCoordinates;
As the variable lnobserver is not further used in the code, adding the line:
struct ln_lnlat_posn lnobserver;
before the call
get_hrz_from_equ(&equ_t0, &lnobserver, jd, &hor);
solves the problem.