Instrument Neutral Distributed Interface INDI  2.0.2
MapPropertiesToInMemoryDatabase.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include "InMemoryDatabase.h"
12 
13 #include "inditelescope.h"
14 
15 namespace INDI
16 {
17 namespace AlignmentSubsystem
18 {
71 {
72  public:
75 
76  // Public methods
77 
81  void InitProperties(Telescope *pTelescope);
82 
93  void ProcessBlobProperties(Telescope *pTelescope, const char *name, int sizes[], int blobsizes[], char *blobs[],
94  char *formats[], char *names[], int n);
95 
103  void ProcessNumberProperties(Telescope *, const char *name, double values[], char *names[], int n);
104 
112  void ProcessSwitchProperties(Telescope *pTelescope, const char *name, ISState *states, char *names[], int n);
113 
118  void UpdateLocation(double latitude, double longitude, double elevation);
119 
121  void UpdateSize();
122 
123  private:
124  INumber AlignmentPointSetEntry[6];
125  INumberVectorProperty AlignmentPointSetEntryV;
126  IBLOB AlignmentPointSetPrivateBinaryData;
127  IBLOBVectorProperty AlignmentPointSetPrivateBinaryDataV;
128  INumber AlignmentPointSetSize;
129  INumberVectorProperty AlignmentPointSetSizeV;
130  INumber AlignmentPointSetPointer;
131  INumberVectorProperty AlignmentPointSetPointerV;
132  ISwitch AlignmentPointSetAction[9];
133  ISwitchVectorProperty AlignmentPointSetActionV;
134  ISwitch AlignmentPointSetCommit;
135  ISwitchVectorProperty AlignmentPointSetCommitV;
136 };
137 
138 } // namespace AlignmentSubsystem
139 } // namespace INDI
This class provides the driver side API to the in memory alignment database.
An entry in the sync point database is defined by the following INDI properties.
void ProcessNumberProperties(Telescope *, const char *name, double values[], char *names[], int n)
Call this function from within the ISNewNumber processing path. The function will handle any alignmen...
void InitProperties(Telescope *pTelescope)
Initialize alignment database properties. It is recommended to call this function within initProperti...
void UpdateLocation(double latitude, double longitude, double elevation)
Call this function from within the updateLocation processing path.
void UpdateSize()
Call this function when the number of entries in the database changes.
void ProcessBlobProperties(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 ProcessSwitchProperties(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...
ISState
Switch state.
Definition: indiapi.h:150
Namespace to encapsulate INDI client, drivers, and mediator classes.
One Blob (Binary Large Object) descriptor.
One number descriptor.
One switch descriptor.
BLOB (Binary Large Object) vector property descriptor.
Definition: indiapi.h:471
Number vector property descriptor.
Definition: indiapi.h:319
Switch vector property descriptor.
Definition: indiapi.h:367