120 bool getUTCDateTime(
double *utc_hours,
int *yy,
int *mm,
int *dd,
int *hh,
int *minute,
int *ss);
159 bool sendCommand(
const char *
cmd,
char * res =
nullptr,
int cmd_len = -1,
int res_len = -1);
168 void hexDump(
char * buf,
const char * data,
int size);
188 virtual bool abort();
193 virtual bool setAz(
double az);
194 virtual bool setAlt(
double alt);
214 virtual bool setGuideRate(
double raRate,
double deRate);
215 virtual bool getGuideRate(
double * raRate,
double * deRate);
226 virtual bool setDST(
bool enabled);
241 {
"0010",
"Cube II EQ",
"160610"},
242 {
"0011",
"Smart EQ Pro+",
"161028"},
243 {
"0025",
"CEM25",
"170106"},
244 {
"0026",
"CEM25-EC",
"170518"},
245 {
"0030",
"iEQ30 Pro",
"161101"},
246 {
"0040",
"CEM40",
"181018"},
247 {
"0041",
"CEM40-EC",
"181018"},
248 {
"0043",
"GEM45",
"191018"},
249 {
"0044",
"GEM45-EC",
"191018"},
250 {
"0045",
"iEQ45 Pro EQ",
"161101"},
251 {
"0046",
"iEQ45 Pro AA",
"161101"},
252 {
"0060",
"CEM60",
"161101"},
253 {
"0061",
"CEM60-EC",
"161101"},
254 {
"5010",
"Cube II AA",
"160610"},
255 {
"5035",
"AZ Mount Pro",
"170410"},
265 double DecodeString(
const char * data,
size_t size,
double factor);
275 constexpr static const double ieqDegrees { 60.0 * 60.0 * 100.0 };
276 constexpr static const double ieqHours { 60.0 * 60.0 * 1000.0 };
The BaseFirmware class provides control for iOptron version 2014 v2.0 protocol.
static const uint8_t DRIVER_LEN
void setDeviceName(const std::string &name)
void hexDump(char *buf, const char *data, int size)
hexDump Helper function to print non-string commands to the logger so it is easier to debug
virtual bool setCurrentHome()
const FirmwareInfo & getFirmwareInfo() const
virtual bool setRA(double ra)
virtual bool setSlewRate(SlewRate rate)
bool getStatus(Info *info)
FirmwareInfo m_FirmwareInfo
virtual bool setTrackEnabled(bool enabled)
bool initCommunication(int fd)
initCommunication Checks if communication with the mount is working
virtual bool setLocalDate(int yy, int mm, int dd)
bool isCommandSupported(const std::string &command, bool silent=false)
isCommandSupported Check if specific iOptron command is supported for this mount model
virtual bool setAlt(double alt)
bool getCoords(double *ra, double *dec)
bool getPierSide(IEQ_PIER_SIDE *pierSide)
double DecodeString(const char *data, size_t size, double factor)
DecodeString converts the string to a double by dividing by the factor.
virtual bool setParkAlt(double alt)
virtual bool setLatitude(double latitude)
virtual bool setParkAz(double az)
virtual bool getGuideRate(double *raRate, double *deRate)
virtual bool setAz(double az)
static constexpr const double ieqDegrees
virtual bool setDE(double dec)
virtual bool setUTCOffset(double offset_hours)
virtual bool stopMotion(Direction dir)
virtual bool setGuideRate(double raRate, double deRate)
static const char DRIVER_STOP_CHAR
const std::vector< MountInfo > m_MountList
bool sendCommand(const char *cmd, char *res=nullptr, int cmd_len=-1, int res_len=-1)
sendCommand Send a string command to device.
virtual bool setDST(bool enabled)
void setDebugEnabled(bool enable)
static constexpr const double ieqHours
bool getUTCDateTime(double *utc_hours, int *yy, int *mm, int *dd, int *hh, int *minute, int *ss)
virtual bool setLongitude(double longitude)
const char * getDeviceName()
virtual bool setCustomRATrackRate(double rate)
static const uint8_t DRIVER_TIMEOUT
virtual bool startGuide(Direction dir, uint32_t ms)
virtual bool startMotion(Direction dir)
virtual bool setTrackMode(TrackRate rate)
#define setLocalTime(fd, x, y, z)
std::string MainBoardFirmware
std::string ControllerFirmware
SystemStatus systemStatus
SystemStatus rememberSystemStatus