49 virtual bool ISNewText(
const char *dev,
const char *name,
char *texts[],
char *names[],
int n)
override;
50 virtual bool ISNewNumber(
const char *dev,
const char *name,
double values[],
char *names[],
int n)
override;
51 virtual bool ISNewSwitch(
const char *dev,
const char *name,
ISState *states,
char *names[],
int n)
override;
52 virtual bool ISNewBLOB(
const char *dev,
const char *name,
int sizes[],
int blobsizes[],
char *blobs[],
53 char *formats[],
char *names[],
int n)
override;
59 virtual bool Abort()
override;
62 virtual bool updateLocation(
double latitude,
double longitude,
double elevation)
override;
63 virtual bool updateTime(ln_date *utc,
double utc_offset)
override;
66 virtual bool Goto(
double ra,
double dec)
override;
67 virtual bool Sync(
double ra,
double dec)
override;
71 virtual bool SetTrackRate(
double raRate,
double deRate)
override;
77 virtual bool Park()
override;
78 virtual bool UnPark()
override;
97 void getRADEFromEncoders(
double haEncoder,
double deEncoder,
double &
ra,
double &de);
98 void getEncodersFromRADE(
double ra,
double de,
double &raEncoder,
double &deEncoder);
99 double calculateSlewTime(
double distance);
121 bool getMaximumSlewVelocity();
127 bool isSlewComplete();
147 bool sendCommand(
const char *
cmd,
char * res =
nullptr,
int cmd_len = -1,
int res_len = -1);
148 void hexDump(
char * buf,
const char * data,
int size);
149 std::vector<std::string> split(
const std::string &input,
const std::string ®ex);
190 void simulateMount();
192 bool handleSimulationCommand(
const char *
cmd,
char * res,
int cmd_len,
int res_len);
200 static const char DRIVER_STOP_CHAR { 0x3E };
202 static constexpr
const uint8_t DRIVER_TIMEOUT {3};
204 static constexpr
const uint8_t DRIVER_LEN {64};
206 static constexpr
const uint8_t SLEW_MODES {10};
208 static const std::array<uint32_t, SLEW_MODES> SLEW_SPEEDS;
211 static constexpr
double MAX_SLEW_VELOCITY {10800.0};
214 static constexpr
double DIFF_THRESHOLD {0.1};
double targetMechanicalDE
virtual bool ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) override
Process the client newSwitch command.
virtual const char * getDefaultName() override
virtual bool Handshake() override
perform handshake with device to check communication
virtual bool SetTrackRate(double raRate, double deRate) override
SetTrackRate Set custom tracking rates.
double currentMechanicalHA
virtual IPState GuideSouth(uint32_t ms) override
Guide south for ms milliseconds. South is defined as DEC-.
virtual IPState GuideWest(uint32_t ms) override
Guide west for ms milliseconds. West is defined as RA-.
virtual bool SetCurrentPark() override
SetCurrentPark Set current coordinates/encoders value as the desired parking position.
virtual bool SetDefaultPark() override
SetDefaultPark Set default coordinates/encoders value as the desired parking position.
virtual void simulationTriggered(bool enable) override
Handle Simulation Trigger.
virtual bool Sync(double ra, double dec) override
Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates.
double currentMechanicalDE
virtual bool saveConfigItems(FILE *fp) override
Config Items.
virtual bool SetTrackMode(uint8_t mode) override
SetTrackMode Set active tracking mode. Do not change track state.
virtual bool ISNewBLOB(const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n) override
Process the client newBLOB command.
virtual bool MoveNS(INDI_DIR_NS dir, TelescopeMotionCommand command) override
Start or Stop the telescope motion in the direction dir.
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 SetTrackEnabled(bool enabled) override
SetTrackEnabled Engages or disengages mount tracking. If there are no tracking modes available,...
virtual bool Park() override
Park the telescope to its home position.
virtual bool UnPark() override
Unpark the telescope if already parked.
virtual bool updateLocation(double latitude, double longitude, double elevation) override
Update telescope location settings.
double targetMechanicalHA
virtual bool updateProperties() override
Called when connected state changes, to add/remove properties.
virtual ~AstroTrac()=default
virtual bool ReadScopeStatus() override
Read telescope status.
virtual bool ISNewNumber(const char *dev, const char *name, double values[], char *names[], int n) override
Process the client newNumber command.
virtual IPState GuideEast(uint32_t ms) override
Guide east for ms milliseconds. East is defined as RA+.
virtual bool initProperties() override
Called to initialize basic properties required all the time.
virtual bool ISNewText(const char *dev, const char *name, char *texts[], char *names[], int n) override
Process the client newSwitch command.
virtual bool MoveWE(INDI_DIR_WE dir, TelescopeMotionCommand command) override
Move the telescope in the direction dir.
virtual bool Abort() override
Abort any telescope motion including tracking if possible.
virtual IPState GuideNorth(uint32_t ms) override
Guide north for ms milliseconds. North is defined as DEC+.
virtual bool updateTime(ln_date *utc, double utc_offset) override
Update telescope time, date, and UTC offset.
virtual bool Goto(double ra, double dec) override
Move the scope to the supplied RA and DEC coordinates.
This class encapsulates all the alignment subsystem classes that are useful to driver implementations...
The ElapsedTimer class provides a fast way to calculate elapsed times.
#define TRACKRATE_SIDEREAL