Instrument Neutral Distributed Interface INDI 2.2.5
MapPropertiesToInMemoryDatabase.h
Go to the documentation of this file.
1
9#pragma once
10
11#include "InMemoryDatabase.h"
12
13#include "inditelescope.h"
14
15namespace INDI
16{
17namespace 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:148
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:469
Number vector property descriptor.
Definition indiapi.h:317
Switch vector property descriptor.
Definition indiapi.h:365