summaryrefslogtreecommitdiffstats
path: root/indi-lxd650/lxd650.h
diff options
context:
space:
mode:
Diffstat (limited to 'indi-lxd650/lxd650.h')
-rw-r--r--indi-lxd650/lxd650.h24
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);
};