diff options
Diffstat (limited to 'indi-lxd650/lxd650.h')
-rw-r--r-- | indi-lxd650/lxd650.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/indi-lxd650/lxd650.h b/indi-lxd650/lxd650.h index ea6b144..6333fd2 100644 --- a/indi-lxd650/lxd650.h +++ b/indi-lxd650/lxd650.h @@ -21,8 +21,16 @@ #pragma once #include "inditelescope.h" +#include <indiguiderinterface.h> +#include <alignment/AlignmentSubsystemForDrivers.h> +#include <indipropertyswitch.h> +#include <indipropertynumber.h> +#include <indipropertytext.h> -class LXD650 : public INDI::Telescope + +class LXD650 : public INDI::Telescope, + public INDI::GuiderInterface, + public INDI::AlignmentSubsystem::AlignmentSubsystemForDrivers { public: LXD650(); @@ -33,7 +41,12 @@ class LXD650 : public INDI::Telescope virtual bool ReadScopeStatus() override; virtual bool initProperties() override; virtual bool updateProperties() override; + virtual bool ISNewBLOB(const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], + char *formats[], char *names[], int n) override; virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override; + virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override; + virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override; + virtual bool ISSnoopDevice(XMLEle *root) override; protected: virtual bool Abort() override; @@ -45,6 +58,11 @@ class LXD650 : public INDI::Telescope void getBasicData(); + virtual IPState GuideNorth(uint32_t ms) override; + virtual IPState GuideSouth(uint32_t ms) override; + virtual IPState GuideEast(uint32_t ms) override; + virtual IPState GuideWest(uint32_t ms) override; + protected: bool isSlewComplete(); void slewError(int slewCode); @@ -56,4 +74,8 @@ class LXD650 : public INDI::Telescope double targetRA = 0, targetDEC = 0; double currentRA = 0, currentDEC = 0; uint32_t DBG_SCOPE = 0; + + private: + INDI::PropertyNumber GuideRateNP {2}; + bool guidePulse(INDI_EQ_AXIS axis, uint32_t ms, int8_t rate); }; |