19 namespace AlignmentSubsystem
95 CurrentInMemoryDatabase = pDatabase;
108 return AlignmentSubsystemActive.s ==
ISS_ON ? true :
false;
135 double &RightAscension,
double &Declination);
138 void EnumeratePlugins();
139 void HandlePluginLoading(
Telescope *pTelescope,
int CurrentPlugin,
int NewPlugin);
140 std::vector<std::string> MathPluginFiles;
141 std::vector<std::string> MathPluginDisplayNames;
143 std::unique_ptr<ISwitch> AlignmentSubsystemMathPlugins;
145 ISwitch AlignmentSubsystemMathPluginInitialise;
147 ISwitch AlignmentSubsystemActive;
153 IText AlignmentSubsystemCurrentMathPlugin;
161 bool (
MathPlugin::*pTransformCelestialToTelescope)(
const double RightAscension,
const double Declination,
165 double &RightAscension,
double &Declination);
167 void *LoadedMathPluginHandle;
This class implements the default math plugin.
This class provides the driver side API to the in memory alignment database.
The following INDI properties are used to manage math plugins.
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 math plu...
bool TransformTelescopeToCelestial(const TelescopeDirectionVector &ApparentTelescopeDirectionVector, double &RightAscension, double &Declination)
TransformTelescopeToCelestial Transforms Mount Coords to Celestial (Sky) Coordinates.
void InitProperties(Telescope *pTelescope)
Initialize alignment math plugin properties. It is recommended to call this function within initPrope...
void SaveConfigProperties(FILE *fp)
Call this function to save persistent math plugin properties. This function should be called from wit...
bool IsAlignmentSubsystemActive() const
Return status of alignment subsystem.
MathPluginManagement()
Default constructor.
void SetCurrentInMemoryDatabase(InMemoryDatabase *pDatabase)
Set the current in memory database.
void SetApproximateMountAlignment(MountAlignment_t ApproximateAlignment)
Set the approximate alognment of the mount.
void ProcessTextProperties(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 math plugi...
bool TransformCelestialToTelescope(const double RightAscension, const double Declination, double JulianOffset, TelescopeDirectionVector &ApparentTelescopeDirectionVector)
TransformCelestialToTelescope Transforms Celestial (Sky) Coords to Mount Coordinates.
bool Initialise(InMemoryDatabase *pInMemoryDatabase)
Initialise or re-initialise the math plugin. Re-reading the in memory database as necessary.
MountAlignment_t GetApproximateMountAlignment()
Get the approximate alognment of the mount.
MountType
Describes the basic type of the mount.
enum INDI::AlignmentSubsystem::MathPluginManagement::MountType MountType_t
void SetAlignmentSubsystemActive(bool enable)
SetAlignmentSubsystemActive Enable or Disable alignment subsystem.
virtual ~MathPluginManagement()
Virtual destructor.
void SetApproximateMountAlignmentFromMountType(MountType_t Type)
Call this function to set the ApproximateMountAlignment property of the current Math Plugin....
Provides alignment subsystem functions to INDI alignment math plugins.
InMemoryDatabase * pInMemoryDatabase
enum INDI::AlignmentSubsystem::MountAlignment MountAlignment_t
Namespace to encapsulate INDI client, drivers, and mediator classes.
Holds a nomalised direction vector (direction cosines)
Holds the connection type.
Switch vector property descriptor.
Text vector property descriptor.