Instrument Neutral Distributed Interface INDI  1.9.5
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
INDI::AlignmentSubsystem::MapPropertiesToInMemoryDatabase
An entry in the sync point database is defined by the following INDI properties.
Definition: MapPropertiesToInMemoryDatabase.h:70
indicom.h
Implementations for common driver routines.
INDI::AlignmentSubsystem::MathPluginManagement
The following INDI properties are used to manage math plugins.
Definition: MathPluginManagement.h:34
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::ProcessAlignmentNumberProperties
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...
Definition: AlignmentSubsystemForDrivers.cpp:41
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::TelescopeEquatorialToSky
bool TelescopeEquatorialToSky(double mountRA, double mountDec, double &actualRA, double &actualDec)
Converts a mount location to actual sky coordinates, usually called in ReadScopeStatus.
Definition: AlignmentSubsystemForDrivers.cpp:131
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::SkyToTelescopeEquatorial
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.
Definition: AlignmentSubsystemForDrivers.cpp:100
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::TelescopeAltAzToSky
bool TelescopeAltAzToSky(double mountAlt, double mountAz, double &actualRA, double &actualDec)
Converts a mount location to actual sky coordinates, usually called in ReadScopeStatus.
Definition: AlignmentSubsystemForDrivers.cpp:217
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::AlignmentSubsystemForDrivers
AlignmentSubsystemForDrivers()
Default constructor.
Definition: AlignmentSubsystemForDrivers.cpp:15
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::ProcessAlignmentBLOBProperties
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 ...
Definition: AlignmentSubsystemForDrivers.cpp:33
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::SaveAlignmentConfigProperties
void SaveAlignmentConfigProperties(FILE *fp)
Call this function to save persistent alignment related properties. This function should be called fr...
Definition: AlignmentSubsystemForDrivers.cpp:60
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::InitAlignmentProperties
void InitAlignmentProperties(Telescope *pTelescope)
Initilize alignment subsystem properties. It is recommended to call this function within initProperti...
Definition: AlignmentSubsystemForDrivers.cpp:27
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::ProcessAlignmentTextProperties
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 ...
Definition: AlignmentSubsystemForDrivers.cpp:54
MathPluginManagement.h
INDI::Telescope
Definition: inditelescope.h:70
name
const char * name
Definition: indiserver.c:116
INDI
Namespace to encapsulate INDI client, drivers, and mediator classes.
Definition: AlignmentSubsystemForClients.cpp:11
MapPropertiesToInMemoryDatabase.h
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::SkyToTelescopeAltAz
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.
Definition: AlignmentSubsystemForDrivers.cpp:192
ISState
ISState
Switch state.
Definition: indiapi.h:148
TelescopeDirectionVectorSupportFunctions.h
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::ProcessAlignmentSwitchProperties
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...
Definition: AlignmentSubsystemForDrivers.cpp:47
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::AddAlignmentEntryAltAz
bool AddAlignmentEntryAltAz(double actualRA, double actualDec, double mountAlt, double mountAz)
Adds an alignment point to the model database, usually called from Sync.
Definition: AlignmentSubsystemForDrivers.cpp:159
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers
This class encapsulates all the alignment subsystem classes that are useful to driver implementations...
Definition: AlignmentSubsystemForDrivers.h:29
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::~AlignmentSubsystemForDrivers
virtual ~AlignmentSubsystemForDrivers()
Virtual destructor.
Definition: AlignmentSubsystemForDrivers.h:37
INDI::AlignmentSubsystem::TelescopeDirectionVectorSupportFunctions
These functions are used to convert different coordinate systems to and from the telescope direction ...
Definition: TelescopeDirectionVectorSupportFunctions.h:24
INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers::AddAlignmentEntryEquatorial
bool AddAlignmentEntryEquatorial(double actualRA, double actualDec, double mountRA, double mountDec)
Adds an alignment point to the model database, usually called from Sync.
Definition: AlignmentSubsystemForDrivers.cpp:67