Instrument Neutral Distributed Interface INDI  2.0.0
AlignmentSubsystemForDrivers.h
Go to the documentation of this file.
1 
12 #pragma once
13 
14 #include "indicom.h"
15 
17 #include "MathPluginManagement.h"
19 
20 namespace INDI
21 {
22 namespace AlignmentSubsystem
23 {
30  public MathPluginManagement,
32 {
33  public:
38 
42  void InitAlignmentProperties(Telescope *pTelescope);
43 
55  void ProcessAlignmentBLOBProperties(Telescope *pTelescope, const char *name, int sizes[], int blobsizes[],
56  char *blobs[], char *formats[], char *names[], int n);
57 
66  void ProcessAlignmentNumberProperties(Telescope *pTelescope, const char *name, double values[], char *names[],
67  int n);
68 
77  void ProcessAlignmentSwitchProperties(Telescope *pTelescope, const char *name, ISState *states, char *names[],
78  int n);
79 
89  void ProcessAlignmentTextProperties(Telescope *pTelescope, const char *name, char *texts[], char *names[], int n);
90 
95  void SaveAlignmentConfigProperties(FILE *fp);
96 
107  bool AddAlignmentEntryEquatorial(double actualRA, double actualDec, double mountRA, double mountDec);
108 
120  bool SkyToTelescopeEquatorial(double actualRA, double actualDec, double &mountRA, double &mountDec);
121 
132  bool TelescopeEquatorialToSky(double mountRA, double mountDec, double &actualRA, double &actualDec);
133 
144  bool AddAlignmentEntryAltAz(double actualRA, double actualDec, double mountAlt, double mountAz);
145 
157  bool SkyToTelescopeAltAz(double actualRA, double actualDec, double &mountAlt, double &mountAz);
158 
169  bool TelescopeAltAzToSky(double mountAlt, double mountAz, double &actualRA, double &actualDec);
170 
171  private:
178  static void MyDatabaseLoadCallback(void *ThisPointer);
179 };
180 
181 } // namespace AlignmentSubsystem
182 } // namespace INDI
This class encapsulates all the alignment subsystem classes that are useful to driver implementations...
bool SkyToTelescopeEquatorial(double actualRA, double actualDec, double &mountRA, double &mountDec)
Converts an actual sky location to coordinates to send to the mount, usually called in Goto.
bool TelescopeEquatorialToSky(double mountRA, double mountDec, double &actualRA, double &actualDec)
Converts a mount location to actual sky coordinates, usually called in ReadScopeStatus.
void ProcessAlignmentNumberProperties(Telescope *pTelescope, const char *name, double values[], char *names[], int n)
Call this function from within the ISNewNumber processing path. The function will handle any alignmen...
bool AddAlignmentEntryAltAz(double actualRA, double actualDec, double mountAlt, double mountAz)
Adds an alignment point to the model database, usually called from Sync.
void ProcessAlignmentSwitchProperties(Telescope *pTelescope, const char *name, ISState *states, char *names[], int n)
Call this function from within the ISNewSwitch processing path. The function will handle any alignmen...
bool TelescopeAltAzToSky(double mountAlt, double mountAz, double &actualRA, double &actualDec)
Converts a mount location to actual sky coordinates, usually called in ReadScopeStatus.
bool SkyToTelescopeAltAz(double actualRA, double actualDec, double &mountAlt, double &mountAz)
Converts an actual sky location to coordinates to send to the mount, usually called in Goto.
void InitAlignmentProperties(Telescope *pTelescope)
Initilize alignment subsystem properties. It is recommended to call this function within initProperti...
void ProcessAlignmentBLOBProperties(Telescope *pTelescope, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
Call this function from within the ISNewBlob processing path. The function will handle any alignment ...
void SaveAlignmentConfigProperties(FILE *fp)
Call this function to save persistent alignment related properties. This function should be called fr...
void ProcessAlignmentTextProperties(Telescope *pTelescope, const char *name, char *texts[], char *names[], int n)
Call this function from within the ISNewText processing path. The function will handle any alignment ...
bool AddAlignmentEntryEquatorial(double actualRA, double actualDec, double mountRA, double mountDec)
Adds an alignment point to the model database, usually called from Sync.
An entry in the sync point database is defined by the following INDI properties.
The following INDI properties are used to manage math plugins.
These functions are used to convert different coordinate systems to and from the telescope direction ...
ISState
Switch state.
Definition: indiapi.h:150
Implementations for common driver routines.
Namespace to encapsulate INDI client, drivers, and mediator classes.