51 virtual bool Connect()
override;
58 virtual bool ISNewNumber(
const char *dev,
const char *name,
double values[],
char *names[],
int n)
override;
59 virtual bool ISNewSwitch(
const char *dev,
const char *name,
ISState *states,
char *names[],
int n)
override;
60 virtual bool ISNewText(
const char *dev,
const char *name,
char *texts[],
char *names[],
int n)
override;
67 virtual bool Abort()
override;
76 virtual bool SetTrackRate(
double raRate,
double deRate)
override;
78 virtual bool Goto(
double,
double)
override;
79 virtual bool Park()
override;
80 virtual bool UnPark()
override;
81 virtual bool Sync(
double ra,
double dec)
override;
86 virtual bool updateLocation(
double latitude,
double longitude,
double elevation)
override;
94 double m_currentRA { 0 };
95 double m_currentDEC { 90 };
96 double m_currentAz { 180 };
97 double m_currentAlt { 0 };
98 double m_targetRA { 0 };
99 double m_targetDEC { 0 };
105 void guideAltAzDecomposed(
double dNS,
double dEW, uint32_t ms);
108 void updateCurrentCoordsFromAxes();
111 void setTargetFromAxisPosition(
Angle primary,
Angle secondary);
113 unsigned int DBG_SCOPE { 0 };
120 bool guidingNS =
false;
121 bool guidingEW =
false;
123 uint32_t applyDecBacklash(
double rate, uint32_t ms);
124 uint32_t backlashComputation(uint32_t ms);
127 uint32_t m_DecGuideBacklashMs { 30 };
130 bool m_GuideDecLastNorth =
false;
134 uint32_t m_DecGuideRemainingBacklash { 0 };
143 double m_Home[2] = {0, 0};
145 Axis axisPrimary {
"Primary Axis" };
146 Axis axisSecondary {
"Secondary Axis" };
149 int m_MountType {-1};
156 bool m_IsPipelinePrimed {
false };
157 double m_LastTrackingRA { 0 };
158 double m_LastTrackingDec { 0 };
160 bool updateMountAndPierSide();
202 double m_snoopedAzError { 0 };
203 double m_snoopedAltError { 0 };
211 enum { PE_RA = 0, PE_DEC = 1 };
The Alignment class This converts between the mount axis angles and the sky hour angle and declinatio...
The Angle class This class implements an angle type. This holds an angle that is always in the range ...
The Axis class Implements a generic Axis which can be used for equatorial or AltAz mounts for both ax...
This class encapsulates all the alignment subsystem classes that are useful to driver implementations...
The ScopeSim class provides a simple mount simulator of an equatorial mount.
virtual bool ReadScopeStatus() override
Read telescope status.
virtual bool SetTrackMode(uint8_t mode) override
SetTrackMode Set active tracking mode. Do not change track state.
virtual bool Abort() override
Abort any telescope motion including tracking if possible.
virtual bool saveConfigItems(FILE *fp) override
saveConfigItems Save specific properties in the provide config file handler. Child class usually over...
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.
virtual IPState ExecuteHomeAction(TelescopeHomeAction action) override
Execute a homing action.
virtual const char * getDefaultName() override
virtual bool Disconnect() override
Disconnect from device.
virtual bool Sync(double ra, double dec) override
Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates.
virtual bool SetCurrentPark() override
SetCurrentPark Set current coordinates/encoders value as the desired parking position.
virtual IPState GuideSouth(uint32_t ms) override
Guide south for ms milliseconds. South is defined as DEC-.
virtual bool Goto(double, double) override
Move the scope to the supplied RA and DEC coordinates.
virtual void ISGetProperties(const char *dev) override
define the driver's properties to the client. Usually, only a minimum set of properties are defined t...
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
virtual bool Park() override
Park the telescope to its home position.
virtual bool SetDefaultPark() override
SetDefaultPark Set default coordinates/encoders value as the desired parking position.
virtual bool updateProperties() override
Called when connected state changes, to add/remove properties.
virtual bool Connect() override
Connect to the device. INDI::DefaultDevice implementation connects to appropriate connection interfac...
virtual IPState GuideWest(uint32_t ms) override
Guide west for ms milliseconds. West is defined as RA-.
virtual IPState GuideNorth(uint32_t ms) override
Guide north for ms milliseconds. North is defined as DEC+.
virtual bool MoveWE(INDI_DIR_WE dir, TelescopeMotionCommand command) override
Move the telescope in the direction dir.
virtual bool SetTrackEnabled(bool enabled) override
SetTrackEnabled Engages or disengages mount tracking. If there are no tracking modes available,...
virtual bool updateLocation(double latitude, double longitude, double elevation) override
Update telescope location settings.
virtual bool SetTrackRate(double raRate, double deRate) override
SetTrackRate Set custom tracking rates.
virtual bool ISSnoopDevice(XMLEle *root) override
Process a snoop event from INDI server. This function is called when a snooped property is updated in...
virtual bool MoveNS(INDI_DIR_NS dir, TelescopeMotionCommand command) override
Start or Stop the telescope motion in the direction dir.
virtual ~ScopeSim()=default
virtual bool initProperties() override
Called to initialize basic properties required all the time.
virtual bool UnPark() override
Unpark the telescope if already parked.
virtual IPState GuideEast(uint32_t ms) override
Guide east for ms milliseconds. East is defined as RA+.