TwiceAsNice  2019-02-18
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
EQMod Class Reference

#include <eqmod.h>

Inheritance diagram for EQMod:
Inheritance graph
Collaboration diagram for EQMod:
Collaboration graph

Classes

struct  GotoParams
 

Public Types

enum  AutoHomeStatus {
  AUTO_HOME_IDLE, AUTO_HOME_CONFIRM, AUTO_HOME_WAIT_PHASE1, AUTO_HOME_WAIT_PHASE2,
  AUTO_HOME_WAIT_PHASE3, AUTO_HOME_WAIT_PHASE4, AUTO_HOME_WAIT_PHASE5, AUTO_HOME_WAIT_PHASE6
}
 
- Public Types inherited from INDI::Telescope
enum  TelescopeStatus {
  SCOPE_IDLE, SCOPE_SLEWING, SCOPE_TRACKING, SCOPE_PARKING,
  SCOPE_PARKED, SCOPE_IDLE, SCOPE_SLEWING, SCOPE_TRACKING,
  SCOPE_PARKING, SCOPE_PARKED
}
 
enum  TelescopeMotionCommand { MOTION_START = 0, MOTION_STOP, MOTION_START = 0, MOTION_STOP }
 
enum  TelescopeSlewRate {
  SLEW_GUIDE, SLEW_CENTERING, SLEW_FIND, SLEW_MAX,
  SLEW_GUIDE, SLEW_CENTERING, SLEW_FIND, SLEW_MAX
}
 
enum  TelescopeTrackMode {
  TRACK_SIDEREAL, TRACK_SOLAR, TRACK_LUNAR, TRACK_CUSTOM,
  TRACK_SIDEREAL, TRACK_SOLAR, TRACK_LUNAR, TRACK_CUSTOM
}
 
enum  TelescopeTrackState {
  TRACK_ON, TRACK_OFF, TRACK_UNKNOWN, TRACK_ON,
  TRACK_OFF, TRACK_UNKNOWN
}
 
enum  TelescopeParkData {
  PARK_NONE, PARK_RA_DEC, PARK_HA_DEC, PARK_AZ_ALT,
  PARK_RA_DEC_ENCODER, PARK_AZ_ALT_ENCODER, PARK_NONE, PARK_RA_DEC,
  PARK_HA_DEC, PARK_AZ_ALT, PARK_RA_DEC_ENCODER, PARK_AZ_ALT_ENCODER
}
 
enum  TelescopeLocation {
  LOCATION_LATITUDE, LOCATION_LONGITUDE, LOCATION_ELEVATION, LOCATION_LATITUDE,
  LOCATION_LONGITUDE, LOCATION_ELEVATION
}
 
enum  TelescopePierSide {
  PIER_UNKNOWN = -1, PIER_WEST = 0, PIER_EAST = 1, PIER_UNKNOWN = -1,
  PIER_WEST = 0, PIER_EAST = 1
}
 
enum  TelescopePECState {
  PEC_UNKNOWN = -1, PEC_OFF = 0, PEC_ON = 1, PEC_UNKNOWN = -1,
  PEC_OFF = 0, PEC_ON = 1
}
 
enum  { CONNECTION_NONE = 1 << 0, CONNECTION_SERIAL = 1 << 1, CONNECTION_TCP = 1 << 2 }
 
enum  {
  TELESCOPE_CAN_GOTO = 1 << 0, TELESCOPE_CAN_SYNC = 1 << 1, TELESCOPE_CAN_PARK = 1 << 2, TELESCOPE_CAN_ABORT = 1 << 3,
  TELESCOPE_HAS_TIME = 1 << 4, TELESCOPE_HAS_LOCATION = 1 << 5, TELESCOPE_HAS_PIER_SIDE = 1 << 6, TELESCOPE_HAS_PEC = 1 << 7,
  TELESCOPE_HAS_TRACK_MODE = 1 << 8, TELESCOPE_CAN_CONTROL_TRACK = 1 << 9, TELESCOPE_HAS_TRACK_RATE = 1 << 10
}
 
enum  TelescopeStatus {
  SCOPE_IDLE, SCOPE_SLEWING, SCOPE_TRACKING, SCOPE_PARKING,
  SCOPE_PARKED, SCOPE_IDLE, SCOPE_SLEWING, SCOPE_TRACKING,
  SCOPE_PARKING, SCOPE_PARKED
}
 
enum  TelescopeMotionCommand { MOTION_START = 0, MOTION_STOP, MOTION_START = 0, MOTION_STOP }
 
enum  TelescopeSlewRate {
  SLEW_GUIDE, SLEW_CENTERING, SLEW_FIND, SLEW_MAX,
  SLEW_GUIDE, SLEW_CENTERING, SLEW_FIND, SLEW_MAX
}
 
enum  TelescopeTrackMode {
  TRACK_SIDEREAL, TRACK_SOLAR, TRACK_LUNAR, TRACK_CUSTOM,
  TRACK_SIDEREAL, TRACK_SOLAR, TRACK_LUNAR, TRACK_CUSTOM
}
 
enum  TelescopeTrackState {
  TRACK_ON, TRACK_OFF, TRACK_UNKNOWN, TRACK_ON,
  TRACK_OFF, TRACK_UNKNOWN
}
 
enum  TelescopeParkData {
  PARK_NONE, PARK_RA_DEC, PARK_HA_DEC, PARK_AZ_ALT,
  PARK_RA_DEC_ENCODER, PARK_AZ_ALT_ENCODER, PARK_NONE, PARK_RA_DEC,
  PARK_HA_DEC, PARK_AZ_ALT, PARK_RA_DEC_ENCODER, PARK_AZ_ALT_ENCODER
}
 
enum  TelescopeLocation {
  LOCATION_LATITUDE, LOCATION_LONGITUDE, LOCATION_ELEVATION, LOCATION_LATITUDE,
  LOCATION_LONGITUDE, LOCATION_ELEVATION
}
 
enum  TelescopePierSide {
  PIER_UNKNOWN = -1, PIER_WEST = 0, PIER_EAST = 1, PIER_UNKNOWN = -1,
  PIER_WEST = 0, PIER_EAST = 1
}
 
enum  TelescopePECState {
  PEC_UNKNOWN = -1, PEC_OFF = 0, PEC_ON = 1, PEC_UNKNOWN = -1,
  PEC_OFF = 0, PEC_ON = 1
}
 
enum  { CONNECTION_NONE = 1 << 0, CONNECTION_SERIAL = 1 << 1, CONNECTION_TCP = 1 << 2 }
 
enum  {
  TELESCOPE_CAN_GOTO = 1 << 0, TELESCOPE_CAN_SYNC = 1 << 1, TELESCOPE_CAN_PARK = 1 << 2, TELESCOPE_CAN_ABORT = 1 << 3,
  TELESCOPE_HAS_TIME = 1 << 4, TELESCOPE_HAS_LOCATION = 1 << 5, TELESCOPE_HAS_PIER_SIDE = 1 << 6, TELESCOPE_HAS_PEC = 1 << 7,
  TELESCOPE_HAS_TRACK_MODE = 1 << 8, TELESCOPE_CAN_CONTROL_TRACK = 1 << 9, TELESCOPE_HAS_TRACK_RATE = 1 << 10
}
 
- Public Types inherited from INDI::BaseDevice
enum  INDI_ERROR {
  INDI_DEVICE_NOT_FOUND = -1, INDI_PROPERTY_INVALID = -2, INDI_PROPERTY_DUPLICATED = -3, INDI_DISPATCH_ERROR = -4,
  INDI_DEVICE_NOT_FOUND = -1, INDI_PROPERTY_INVALID = -2, INDI_PROPERTY_DUPLICATED = -3, INDI_DISPATCH_ERROR = -4
}
 
enum  DRIVER_INTERFACE {
  GENERAL_INTERFACE = 0, TELESCOPE_INTERFACE = (1 << 0), CCD_INTERFACE = (1 << 1), GUIDER_INTERFACE = (1 << 2),
  FOCUSER_INTERFACE = (1 << 3), FILTER_INTERFACE = (1 << 4), DOME_INTERFACE = (1 << 5), GPS_INTERFACE = (1 << 6),
  WEATHER_INTERFACE = (1 << 7), AO_INTERFACE = (1 << 8), DUSTCAP_INTERFACE = (1 << 9), LIGHTBOX_INTERFACE = (1 << 10),
  DETECTOR_INTERFACE = (1 << 11), ROTATOR_INTERFACE = (1 << 12), SPECTROGRAPH_INTERFACE = (1 << 13), AUX_INTERFACE = (1 << 15),
  GENERAL_INTERFACE = 0, TELESCOPE_INTERFACE = (1 << 0), CCD_INTERFACE = (1 << 1), GUIDER_INTERFACE = (1 << 2),
  FOCUSER_INTERFACE = (1 << 3), FILTER_INTERFACE = (1 << 4), DOME_INTERFACE = (1 << 5), GPS_INTERFACE = (1 << 6),
  WEATHER_INTERFACE = (1 << 7), AO_INTERFACE = (1 << 8), DUSTCAP_INTERFACE = (1 << 9), LIGHTBOX_INTERFACE = (1 << 10),
  DETECTOR_INTERFACE = (1 << 11), ROTATOR_INTERFACE = (1 << 12), SPECTROGRAPH_INTERFACE = (1 << 13), AUX_INTERFACE = (1 << 15)
}
 The DRIVER_INTERFACE enum defines the class of devices the driver implements. More...
 
enum  INDI_ERROR {
  INDI_DEVICE_NOT_FOUND = -1, INDI_PROPERTY_INVALID = -2, INDI_PROPERTY_DUPLICATED = -3, INDI_DISPATCH_ERROR = -4,
  INDI_DEVICE_NOT_FOUND = -1, INDI_PROPERTY_INVALID = -2, INDI_PROPERTY_DUPLICATED = -3, INDI_DISPATCH_ERROR = -4
}
 
enum  DRIVER_INTERFACE {
  GENERAL_INTERFACE = 0, TELESCOPE_INTERFACE = (1 << 0), CCD_INTERFACE = (1 << 1), GUIDER_INTERFACE = (1 << 2),
  FOCUSER_INTERFACE = (1 << 3), FILTER_INTERFACE = (1 << 4), DOME_INTERFACE = (1 << 5), GPS_INTERFACE = (1 << 6),
  WEATHER_INTERFACE = (1 << 7), AO_INTERFACE = (1 << 8), DUSTCAP_INTERFACE = (1 << 9), LIGHTBOX_INTERFACE = (1 << 10),
  DETECTOR_INTERFACE = (1 << 11), ROTATOR_INTERFACE = (1 << 12), SPECTROGRAPH_INTERFACE = (1 << 13), AUX_INTERFACE = (1 << 15),
  GENERAL_INTERFACE = 0, TELESCOPE_INTERFACE = (1 << 0), CCD_INTERFACE = (1 << 1), GUIDER_INTERFACE = (1 << 2),
  FOCUSER_INTERFACE = (1 << 3), FILTER_INTERFACE = (1 << 4), DOME_INTERFACE = (1 << 5), GPS_INTERFACE = (1 << 6),
  WEATHER_INTERFACE = (1 << 7), AO_INTERFACE = (1 << 8), DUSTCAP_INTERFACE = (1 << 9), LIGHTBOX_INTERFACE = (1 << 10),
  DETECTOR_INTERFACE = (1 << 11), ROTATOR_INTERFACE = (1 << 12), SPECTROGRAPH_INTERFACE = (1 << 13), AUX_INTERFACE = (1 << 15)
}
 The DRIVER_INTERFACE enum defines the class of devices the driver implements. More...
 

Public Member Functions

 EQMod ()
 
virtual ~EQMod ()
 
virtual const char * getDefaultName ()
 
virtual bool Handshake ()
 perform handshake with device to check communication More...
 
virtual bool Disconnect ()
 Disconnect from device. More...
 
virtual void TimerHit ()
 Called when setTimer() time is up. More...
 
virtual bool ReadScopeStatus ()
 Read telescope status. More...
 
virtual bool initProperties ()
 Called to initialize basic properties required all the time. More...
 
virtual bool updateProperties ()
 Called when connected state changes, to add/remove properties. More...
 
virtual void ISGetProperties (const char *dev)
 define the driver's properties to the client. More...
 
virtual bool ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n)
 Process the client newNumber command. More...
 
virtual bool ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n)
 Process the client newSwitch command. More...
 
virtual bool ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n)
 Process the client newSwitch command. More...
 
virtual bool MoveNS (INDI_DIR_NS dir, TelescopeMotionCommand command)
 Start or Stop the telescope motion in the direction dir. More...
 
virtual bool MoveWE (INDI_DIR_WE dir, TelescopeMotionCommand command)
 Move the telescope in the direction dir. More...
 
virtual bool Abort ()
 Abort any telescope motion including tracking if possible. More...
 
virtual IPState GuideNorth (uint32_t ms)
 Guide north for ms milliseconds. More...
 
virtual IPState GuideSouth (uint32_t ms)
 Guide south for ms milliseconds. More...
 
virtual IPState GuideEast (uint32_t ms)
 Guide east for ms milliseconds. More...
 
virtual IPState GuideWest (uint32_t ms)
 Guide west for ms milliseconds. More...
 
bool Goto (double ra, double dec)
 Move the scope to the supplied RA and DEC coordinates. More...
 
bool Park ()
 Park the telescope to its home position. More...
 
bool UnPark ()
 Unpark the telescope if already parked. More...
 
bool SetCurrentPark ()
 SetCurrentPark Set current coordinates/encoders value as the desired parking position. More...
 
bool SetDefaultPark ()
 SetDefaultPark Set default coordinates/encoders value as the desired parking position. More...
 
bool Sync (double ra, double dec)
 Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates. More...
 
void abnormalDisconnect ()
 
bool SetTrackMode (uint8_t mode)
 SetTrackMode Set active tracking mode. More...
 
bool SetTrackRate (double raRate, double deRate)
 SetTrackRate Set custom tracking rates. More...
 
bool SetTrackEnabled (bool enabled)
 SetTrackEnabled Engages or disengages mount tracking. More...
 
virtual bool saveConfigItems (FILE *fp)
 saveConfigItems Save specific properties in the provide config file handler. More...
 
bool updateTime (ln_date *lndate_utc, double utc_offset)
 Update telescope time, date, and UTC offset. More...
 
bool updateLocation (double latitude, double longitude, double elevation)
 Update telescope location settings. More...
 
double getLongitude ()
 
double getLatitude ()
 
double getJulianDate ()
 
double getLst (double jd, double lng)
 
- Public Member Functions inherited from INDI::Telescope
 Telescope ()
 
virtual ~Telescope ()
 
virtual bool ISSnoopDevice (XMLEle *root)
 Process a snoop event from INDI server. More...
 
uint32_t GetTelescopeCapability () const
 GetTelescopeCapability returns the capability of the Telescope. More...
 
void SetTelescopeCapability (uint32_t cap, uint8_t slewRateCount=0)
 SetTelescopeCapability sets the Telescope capabilities. More...
 
bool CanGOTO ()
 
bool CanSync ()
 
bool CanAbort ()
 
bool CanPark ()
 
bool CanControlTrack ()
 
bool HasTime ()
 
bool HasLocation ()
 
bool HasPierSide ()
 
bool HasPECState ()
 
bool HasTrackMode ()
 
bool HasTrackRate ()
 
void SetParkDataType (TelescopeParkData type)
 setParkDataType Sets the type of parking data stored in the park data file and presented to the user. More...
 
bool InitPark ()
 InitPark Loads parking data (stored in ~/.indi/ParkData.xml) that contains parking status and parking position. More...
 
bool isParked ()
 isParked is mount currently parked? More...
 
void SetParked (bool isparked)
 SetParked Change the mount parking status. More...
 
double GetAxis1Park () const
 
double GetAxis1ParkDefault () const
 
double GetAxis2Park () const
 
double GetAxis2ParkDefault () const
 
void SetAxis1Park (double value)
 SetRAPark Set current RA/AZ parking position. More...
 
void SetAxis1ParkDefault (double steps)
 SetRAPark Set default RA/AZ parking position. More...
 
void SetAxis2Park (double steps)
 SetDEPark Set current DEC/ALT parking position. More...
 
void SetAxis2ParkDefault (double steps)
 SetDEParkDefault Set default DEC/ALT parking position. More...
 
bool isLocked () const
 isLocked is mount currently locked? More...
 
void setTelescopeConnection (const uint8_t &value)
 setTelescopeConnection Set telescope connection mode. More...
 
uint8_t getTelescopeConnection () const
 
void setPierSide (TelescopePierSide side)
 
TelescopePierSide getPierSide ()
 
void setPECState (TelescopePECState state)
 
TelescopePECState getPECState ()
 
 Telescope ()
 
virtual ~Telescope ()
 
virtual bool ISSnoopDevice (XMLEle *root)
 Process a snoop event from INDI server. More...
 
uint32_t GetTelescopeCapability () const
 GetTelescopeCapability returns the capability of the Telescope. More...
 
void SetTelescopeCapability (uint32_t cap, uint8_t slewRateCount=0)
 SetTelescopeCapability sets the Telescope capabilities. More...
 
bool CanGOTO ()
 
bool CanSync ()
 
bool CanAbort ()
 
bool CanPark ()
 
bool CanControlTrack ()
 
bool HasTime ()
 
bool HasLocation ()
 
bool HasPierSide ()
 
bool HasPECState ()
 
bool HasTrackMode ()
 
bool HasTrackRate ()
 
void SetParkDataType (TelescopeParkData type)
 setParkDataType Sets the type of parking data stored in the park data file and presented to the user. More...
 
bool InitPark ()
 InitPark Loads parking data (stored in ~/.indi/ParkData.xml) that contains parking status and parking position. More...
 
bool isParked ()
 isParked is mount currently parked? More...
 
void SetParked (bool isparked)
 SetParked Change the mount parking status. More...
 
double GetAxis1Park () const
 
double GetAxis1ParkDefault () const
 
double GetAxis2Park () const
 
double GetAxis2ParkDefault () const
 
void SetAxis1Park (double value)
 SetRAPark Set current RA/AZ parking position. More...
 
void SetAxis1ParkDefault (double steps)
 SetRAPark Set default RA/AZ parking position. More...
 
void SetAxis2Park (double steps)
 SetDEPark Set current DEC/ALT parking position. More...
 
void SetAxis2ParkDefault (double steps)
 SetDEParkDefault Set default DEC/ALT parking position. More...
 
bool isLocked () const
 isLocked is mount currently locked? More...
 
void setTelescopeConnection (const uint8_t &value)
 setTelescopeConnection Set telescope connection mode. More...
 
uint8_t getTelescopeConnection () const
 
void setPierSide (TelescopePierSide side)
 
TelescopePierSide getPierSide ()
 
void setPECState (TelescopePECState state)
 
TelescopePECState getPECState ()
 
- Public Member Functions inherited from INDI::DefaultDevice
 DefaultDevice ()
 
virtual ~DefaultDevice ()
 
void addAuxControls ()
 Add Debug, Simulation, and Configuration options to the driver. More...
 
void addDebugControl ()
 Add Debug control to the driver. More...
 
void addSimulationControl ()
 Add Simulation control to the driver. More...
 
void addConfigurationControl ()
 Add Configuration control to the driver. More...
 
void addPollPeriodControl ()
 Add Polling period control to the driver. More...
 
void resetProperties ()
 Set all properties to IDLE state. More...
 
void defineNumber (INumberVectorProperty *nvp)
 Define number vector to client & register it. More...
 
void defineText (ITextVectorProperty *tvp)
 Define text vector to client & register it. More...
 
void defineSwitch (ISwitchVectorProperty *svp)
 Define switch vector to client & register it. More...
 
void defineLight (ILightVectorProperty *lvp)
 Define light vector to client & register it. More...
 
void defineBLOB (IBLOBVectorProperty *bvp)
 Define BLOB vector to client & register it. More...
 
virtual bool deleteProperty (const char *propertyName)
 Delete a property and unregister it. More...
 
virtual void setConnected (bool status, IPState state=IPS_OK, const char *msg=nullptr)
 Set connection switch status in the client. More...
 
int SetTimer (uint32_t ms)
 Set a timer to call the function TimerHit after ms milliseconds. More...
 
void RemoveTimer (int id)
 Remove timer added with SetTimer. More...
 
virtual const char * getDriverExec ()
 
virtual const char * getDriverName ()
 
void setVersion (uint16_t vMajor, uint16_t vMinor)
 Set driver version information to be defined in DRIVER_INFO property as vMajor.vMinor. More...
 
uint16_t getMajorVersion ()
 
uint16_t getMinorVersion ()
 
virtual bool ISNewBLOB (const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
 Process the client newBLOB command. More...
 
virtual uint16_t getDriverInterface ()
 
void setDriverInterface (uint16_t value)
 setInterface Set driver interface. More...
 
 DefaultDevice ()
 
virtual ~DefaultDevice ()
 
void addAuxControls ()
 Add Debug, Simulation, and Configuration options to the driver. More...
 
void addDebugControl ()
 Add Debug control to the driver. More...
 
void addSimulationControl ()
 Add Simulation control to the driver. More...
 
void addConfigurationControl ()
 Add Configuration control to the driver. More...
 
void addPollPeriodControl ()
 Add Polling period control to the driver. More...
 
void resetProperties ()
 Set all properties to IDLE state. More...
 
void defineNumber (INumberVectorProperty *nvp)
 Define number vector to client & register it. More...
 
void defineText (ITextVectorProperty *tvp)
 Define text vector to client & register it. More...
 
void defineSwitch (ISwitchVectorProperty *svp)
 Define switch vector to client & register it. More...
 
void defineLight (ILightVectorProperty *lvp)
 Define light vector to client & register it. More...
 
void defineBLOB (IBLOBVectorProperty *bvp)
 Define BLOB vector to client & register it. More...
 
virtual bool deleteProperty (const char *propertyName)
 Delete a property and unregister it. More...
 
virtual void setConnected (bool status, IPState state=IPS_OK, const char *msg=nullptr)
 Set connection switch status in the client. More...
 
int SetTimer (uint32_t ms)
 Set a timer to call the function TimerHit after ms milliseconds. More...
 
void RemoveTimer (int id)
 Remove timer added with SetTimer. More...
 
virtual const char * getDriverExec ()
 
virtual const char * getDriverName ()
 
void setVersion (uint16_t vMajor, uint16_t vMinor)
 Set driver version information to be defined in DRIVER_INFO property as vMajor.vMinor. More...
 
uint16_t getMajorVersion ()
 
uint16_t getMinorVersion ()
 
virtual bool ISNewBLOB (const char *dev, const char *name, int sizes[], int blobsizes[], char *blobs[], char *formats[], char *names[], int n)
 Process the client newBLOB command. More...
 
virtual uint16_t getDriverInterface ()
 
void setDriverInterface (uint16_t value)
 setInterface Set driver interface. More...
 
- Public Member Functions inherited from INDI::BaseDevice
 BaseDevice ()
 
virtual ~BaseDevice ()
 
INumberVectorPropertygetNumber (const char *name)
 
ITextVectorPropertygetText (const char *name)
 
ISwitchVectorPropertygetSwitch (const char *name)
 
ILightVectorPropertygetLight (const char *name)
 
IBLOBVectorPropertygetBLOB (const char *name)
 
IPState getPropertyState (const char *name)
 
IPerm getPropertyPermission (const char *name)
 
void registerProperty (void *p, INDI_PROPERTY_TYPE type)
 
int removeProperty (const char *name, char *errmsg)
 Remove a property. More...
 
void * getRawProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN)
 Return a property and its type given its name. More...
 
INDI::PropertygetProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN)
 Return a property and its type given its name. More...
 
std::vector< INDI::Property * > * getProperties ()
 Return a list of all properties in the device. More...
 
bool buildSkeleton (const char *filename)
 Build driver properties from a skeleton file. More...
 
bool isConnected ()
 
void setDeviceName (const char *dev)
 Set the device name. More...
 
const char * getDeviceName ()
 
void addMessage (const std::string &msg)
 Add message to the driver's message queue. More...
 
void checkMessage (XMLEle *root)
 
void doMessage (XMLEle *msg)
 
std::string messageQueue (int index) const
 
std::string lastMessage ()
 
void setMediator (INDI::BaseMediator *med)
 Set the driver's mediator to receive notification of news devices and updated property values. More...
 
INDI::BaseMediatorgetMediator ()
 
const char * getDriverName ()
 
const char * getDriverExec ()
 
const char * getDriverVersion ()
 
 BaseDevice ()
 
virtual ~BaseDevice ()
 
INumberVectorPropertygetNumber (const char *name)
 
ITextVectorPropertygetText (const char *name)
 
ISwitchVectorPropertygetSwitch (const char *name)
 
ILightVectorPropertygetLight (const char *name)
 
IBLOBVectorPropertygetBLOB (const char *name)
 
IPState getPropertyState (const char *name)
 
IPerm getPropertyPermission (const char *name)
 
void registerProperty (void *p, INDI_PROPERTY_TYPE type)
 
int removeProperty (const char *name, char *errmsg)
 Remove a property. More...
 
void * getRawProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN)
 Return a property and its type given its name. More...
 
INDI::PropertygetProperty (const char *name, INDI_PROPERTY_TYPE type=INDI_UNKNOWN)
 Return a property and its type given its name. More...
 
std::vector< INDI::Property * > * getProperties ()
 Return a list of all properties in the device. More...
 
bool buildSkeleton (const char *filename)
 Build driver properties from a skeleton file. More...
 
bool isConnected ()
 
void setDeviceName (const char *dev)
 Set the device name. More...
 
const char * getDeviceName ()
 
void addMessage (const std::string &msg)
 Add message to the driver's message queue. More...
 
void checkMessage (XMLEle *root)
 
void doMessage (XMLEle *msg)
 
std::string messageQueue (int index) const
 
std::string lastMessage ()
 
void setMediator (INDI::BaseMediator *med)
 Set the driver's mediator to receive notification of news devices and updated property values. More...
 
INDI::BaseMediatorgetMediator ()
 
const char * getDriverName ()
 
const char * getDriverExec ()
 
const char * getDriverVersion ()
 
- Public Member Functions inherited from INDI::GuiderInterface
virtual void GuideComplete (INDI_EQ_AXIS axis)
 Call GuideComplete once the guiding pulse is complete. More...
 
virtual void GuideComplete (INDI_EQ_AXIS axis)
 Call GuideComplete once the guiding pulse is complete. More...
 

Public Attributes

EQModSimulatorsimulator
 
AutoHomeStatus AutohomeState
 
- Public Attributes inherited from INDI::Telescope
enum INDI::Telescope:: { ... }  TelescopeConnection
 
enum INDI::Telescope:: { ... }  TelescopeCapability
 
enum INDI::Telescope:: { ... }  TelescopeConnection
 
enum INDI::Telescope:: { ... }  TelescopeCapability
 

Static Public Attributes

static const TelescopeStatus SCOPE_AUTOHOMING = static_cast<TelescopeStatus>(SCOPE_PARKED + 1)
 

Private Types

enum  Hemisphere { NORTH = 0, SOUTH = 1 }
 
typedef struct EQMod::GotoParams GotoParams
 

Private Member Functions

void EncodersToRADec (unsigned long rastep, unsigned long destep, double lst, double *ra, double *de, double *ha)
 
double EncoderToHours (unsigned long destep, unsigned long initdestep, unsigned long totalrastep, enum Hemisphere h)
 
double EncoderToDegrees (unsigned long destep, unsigned long initdestep, unsigned long totalrastep, enum Hemisphere h)
 
double EncoderFromHour (double hour, unsigned long initstep, unsigned long totalstep, enum Hemisphere h)
 
double EncoderFromRA (double ratarget, double detarget, double lst, unsigned long initstep, unsigned long totalstep, enum Hemisphere h)
 
double EncoderFromDegree (double degree, TelescopePierSide p, unsigned long initstep, unsigned long totalstep, enum Hemisphere h)
 
double EncoderFromDec (double detarget, TelescopePierSide p, unsigned long initstep, unsigned long totalstep, enum Hemisphere h)
 
void EncoderTarget (GotoParams *g)
 
void SetSouthernHemisphere (bool southern)
 
void UpdateDEInverted ()
 
double GetRATrackRate ()
 
double GetDETrackRate ()
 
double GetDefaultRATrackRate ()
 
double GetDefaultDETrackRate ()
 
double GetRASlew ()
 
double GetDESlew ()
 
bool gotoInProgress ()
 
bool loadProperties ()
 
void setStepperSimulation (bool enable)
 
void computePolarAlign (SyncData s1, SyncData s2, double lat, double *tpaalt, double *tpaaz)
 
void starPolarAlign (double lst, double ra, double dec, double theta, double gamma, double *tra, double *tdec)
 

Static Private Member Functions

static void timedguideNSCallback (void *userpointer)
 
static void timedguideWECallback (void *userpointer)
 

Private Attributes

Skywatchermount
 
unsigned long currentRAEncoder
 
unsigned long zeroRAEncoder
 
unsigned long totalRAEncoder
 
unsigned long currentDEEncoder
 
unsigned long zeroDEEncoder
 
unsigned long totalDEEncoder
 
unsigned long homeRAEncoder
 
unsigned long parkRAEncoder
 
unsigned long homeDEEncoder
 
unsigned long parkDEEncoder
 
double currentRA
 
double currentHA
 
double currentDEC
 
double alignedRA
 
double alignedDEC
 
double ghalignedRA
 
double ghalignedDEC
 
double targetRA
 
double targetDEC
 
int last_motion_ns
 
int last_motion_ew
 
struct ln_equ_posn lnradec
 
struct ln_lnlat_posn lnobserver
 
struct ln_hrz_posn lnaltaz
 
struct tm utc
 
struct ln_date lndate
 
struct timeval lasttimeupdate
 
struct timespec lastclockupdate
 
double juliandate
 
int GuideTimerNS
 
int GuideTimerWE
 
INumberGuideRateN = NULL
 
INumberVectorPropertyGuideRateNP = NULL
 
ITextVectorPropertyMountInformationTP = NULL
 
INumberVectorPropertySteppersNP = NULL
 
INumberVectorPropertyCurrentSteppersNP = NULL
 
INumberVectorPropertyPeriodsNP = NULL
 
INumberVectorPropertyJulianNP = NULL
 
INumberVectorPropertyTimeLSTNP = NULL
 
ILightVectorPropertyRAStatusLP = NULL
 
ILightVectorPropertyDEStatusLP = NULL
 
INumberVectorPropertySlewSpeedsNP = NULL
 
ISwitchVectorPropertyHemisphereSP = NULL
 
ISwitchVectorPropertyTrackDefaultSP = NULL
 
INumberVectorPropertyHorizontalCoordNP = NULL
 
INumberVectorPropertyStandardSyncNP = NULL
 
INumberVectorPropertyStandardSyncPointNP = NULL
 
INumberVectorPropertySyncPolarAlignNP = NULL
 
ISwitchVectorPropertySyncManageSP = NULL
 
ISwitchVectorPropertyReverseDECSP = NULL
 
ISwitchVectorPropertyEnforceCWUP = NULL
 
INumberVectorPropertyBacklashNP = NULL
 
ISwitchVectorPropertyUseBacklashSP = NULL
 
ISwitchVectorPropertyAutoHomeSP = NULL
 
ISwitchVectorPropertyAuxEncoderSP = NULL
 
INumberVectorPropertyAuxEncoderNP = NULL
 
ISwitchVectorPropertyST4GuideRateNSSP = NULL
 
ISwitchVectorPropertyST4GuideRateWESP = NULL
 
ISwitchVectorPropertyRAPPECTrainingSP = NULL
 
ISwitchVectorPropertyDEPPECTrainingSP = NULL
 
ISwitchVectorPropertyRAPPECSP = NULL
 
ISwitchVectorPropertyDEPPECSP = NULL
 
INumberMinPulseN = NULL
 
INumberMinPulseTimerN = NULL
 
INumberVectorPropertyPulseLimitsNP = NULL
 
Hemisphere Hemisphere
 
bool RAInverted
 
bool DEInverted
 
bool ForceCwUp = false
 
GotoParams gotoparams
 
SyncData syncdata
 
SyncData syncdata2
 
double tpa_alt
 
double tpa_az
 
int ah_confirm_timeout
 
bool ah_bSlewingUp_RA
 
bool ah_bSlewingUp_DE
 
unsigned long ah_iPosition_RA
 
unsigned long ah_iPosition_DE
 
int ah_iChanges
 
bool ah_bIndexChanged_RA
 
bool ah_bIndexChanged_DE
 
unsigned long ah_sHomeIndexPosition_RA
 
unsigned long ah_sHomeIndexPosition_DE
 
int ah_waitRA
 
int ah_waitDE
 
bool restartguideRAPPEC
 
bool restartguideDEPPEC
 
uint8_t pulseInProgress
 

Additional Inherited Members

- Static Public Member Functions inherited from INDI::Telescope
static void joystickHelper (const char *joystick_n, double mag, double angle, void *context)
 
static void buttonHelper (const char *button_n, ISState state, void *context)
 
static void joystickHelper (const char *joystick_n, double mag, double angle, void *context)
 
static void buttonHelper (const char *button_n, ISState state, void *context)
 
- Protected Types inherited from INDI::Telescope
enum  {
  SCOPE_CONFIG1, SCOPE_CONFIG2, SCOPE_CONFIG3, SCOPE_CONFIG4,
  SCOPE_CONFIG5, SCOPE_CONFIG6
}
 
enum  {
  SCOPE_CONFIG1, SCOPE_CONFIG2, SCOPE_CONFIG3, SCOPE_CONFIG4,
  SCOPE_CONFIG5, SCOPE_CONFIG6
}
 
- Protected Member Functions inherited from INDI::Telescope
void NewRaDec (double ra, double dec)
 The child class calls this function when it has updates. More...
 
virtual int AddTrackMode (const char *name, const char *label, bool isDefault=false)
 AddTrackMode. More...
 
virtual bool SetParkPosition (double Axis1Value, double Axis2Value)
 SetParkPosition Set desired parking position to the supplied value. More...
 
virtual bool SetSlewRate (int index)
 SetSlewRate Set desired slew rate index. More...
 
bool callHandshake ()
 callHandshake Helper function that sets the port file descriptor before calling the actual Handshake function implenented in drivers More...
 
void processNSWE (double mag, double angle)
 
void processJoystick (const char *joystick_n, double mag, double angle)
 
void processSlewPresets (double mag, double angle)
 
void processButton (const char *button_n, ISState state)
 
bool LoadScopeConfig ()
 Load scope settings from XML files. More...
 
bool HasDefaultScopeConfig ()
 Load scope settings from XML files. More...
 
bool UpdateScopeConfig ()
 Save scope settings to XML files. More...
 
std::string GetHomeDirectory () const
 Validate a file name. More...
 
int GetScopeConfigIndex () const
 Get the scope config index. More...
 
bool CheckFile (const std::string &file_name, bool writable) const
 Check if a file exists and it is readable. More...
 
void sendTimeFromSystem ()
 
char * LoadParkData ()
 
bool WriteParkData ()
 
void NewRaDec (double ra, double dec)
 The child class calls this function when it has updates. More...
 
virtual int AddTrackMode (const char *name, const char *label, bool isDefault=false)
 AddTrackMode. More...
 
virtual bool SetParkPosition (double Axis1Value, double Axis2Value)
 SetParkPosition Set desired parking position to the supplied value. More...
 
virtual bool SetSlewRate (int index)
 SetSlewRate Set desired slew rate index. More...
 
bool callHandshake ()
 callHandshake Helper function that sets the port file descriptor before calling the actual Handshake function implenented in drivers More...
 
void processNSWE (double mag, double angle)
 
void processJoystick (const char *joystick_n, double mag, double angle)
 
void processSlewPresets (double mag, double angle)
 
void processButton (const char *button_n, ISState state)
 
bool LoadScopeConfig ()
 Load scope settings from XML files. More...
 
bool HasDefaultScopeConfig ()
 Load scope settings from XML files. More...
 
bool UpdateScopeConfig ()
 Save scope settings to XML files. More...
 
std::string GetHomeDirectory () const
 Validate a file name. More...
 
int GetScopeConfigIndex () const
 Get the scope config index. More...
 
bool CheckFile (const std::string &file_name, bool writable) const
 Check if a file exists and it is readable. More...
 
void sendTimeFromSystem ()
 
char * LoadParkData ()
 
bool WriteParkData ()
 
- Protected Member Functions inherited from INDI::DefaultDevice
void setDynamicPropertiesBehavior (bool defineEnabled, bool deleteEnabled)
 setDynamicPropertiesBehavior controls handling of dynamic properties. More...
 
virtual bool loadConfig (bool silent=false, const char *property=nullptr)
 Load the last saved configuration file. More...
 
virtual bool saveConfig (bool silent=false, const char *property=nullptr)
 Save the current properties in a configuration file. More...
 
virtual bool saveAllConfigItems (FILE *fp)
 saveAllConfigItems Save all the drivers' properties in the configuration file More...
 
virtual bool loadDefaultConfig ()
 Load the default configuration file. More...
 
void setDebug (bool enable)
 Toggle driver debug status A driver can be more verbose if Debug option is enabled by the client. More...
 
void setSimulation (bool enable)
 Toggle driver simulation status A driver can run in simulation mode if Simulation option is enabled by the client. More...
 
virtual void debugTriggered (bool enable)
 Inform driver that the debug option was triggered. More...
 
virtual void simulationTriggered (bool enable)
 Inform driver that the simulation option was triggered. More...
 
bool isDebug ()
 
bool isSimulation ()
 
virtual bool Connect ()
 Connect to the device. More...
 
void registerConnection (Connection::Interface *newConnection)
 registerConnection Add new connection plugin to the existing connection pool. More...
 
bool unRegisterConnection (Connection::Interface *existingConnection)
 unRegisterConnection Remove connection from existing pool More...
 
Connection::InterfacegetActiveConnection ()
 
void setDefaultPollingPeriod (uint32_t period)
 
uint32_t getPollingPeriod ()
 
void setDynamicPropertiesBehavior (bool defineEnabled, bool deleteEnabled)
 setDynamicPropertiesBehavior controls handling of dynamic properties. More...
 
virtual bool loadConfig (bool silent=false, const char *property=nullptr)
 Load the last saved configuration file. More...
 
virtual bool saveConfig (bool silent=false, const char *property=nullptr)
 Save the current properties in a configuration file. More...
 
virtual bool saveAllConfigItems (FILE *fp)
 saveAllConfigItems Save all the drivers' properties in the configuration file More...
 
virtual bool loadDefaultConfig ()
 Load the default configuration file. More...
 
void setDebug (bool enable)
 Toggle driver debug status A driver can be more verbose if Debug option is enabled by the client. More...
 
void setSimulation (bool enable)
 Toggle driver simulation status A driver can run in simulation mode if Simulation option is enabled by the client. More...
 
virtual void debugTriggered (bool enable)
 Inform driver that the debug option was triggered. More...
 
virtual void simulationTriggered (bool enable)
 Inform driver that the simulation option was triggered. More...
 
bool isDebug ()
 
bool isSimulation ()
 
virtual bool Connect ()
 Connect to the device. More...
 
void registerConnection (Connection::Interface *newConnection)
 registerConnection Add new connection plugin to the existing connection pool. More...
 
bool unRegisterConnection (Connection::Interface *existingConnection)
 unRegisterConnection Remove connection from existing pool More...
 
Connection::InterfacegetActiveConnection ()
 
void setDefaultPollingPeriod (uint32_t period)
 
uint32_t getPollingPeriod ()
 
- Protected Member Functions inherited from INDI::BaseDevice
int buildProp (XMLEle *root, char *errmsg)
 Build a property given the supplied XML element (defXXX) More...
 
int setValue (XMLEle *root, char *errmsg)
 handle SetXXX commands from client More...
 
int setBLOB (IBLOBVectorProperty *pp, XMLEle *root, char *errmsg)
 Parse and store BLOB in the respective vector. More...
 
int buildProp (XMLEle *root, char *errmsg)
 Build a property given the supplied XML element (defXXX) More...
 
int setValue (XMLEle *root, char *errmsg)
 handle SetXXX commands from client More...
 
int setBLOB (IBLOBVectorProperty *pp, XMLEle *root, char *errmsg)
 Parse and store BLOB in the respective vector. More...
 
- Protected Member Functions inherited from INDI::GuiderInterface
 GuiderInterface ()
 
 ~GuiderInterface ()
 
void initGuiderProperties (const char *deviceName, const char *groupName)
 Initilize guider properties. More...
 
void processGuiderProperties (const char *name, double values[], char *names[], int n)
 Call this function whenever client updates GuideNSNP or GuideWSP properties in the primary device. More...
 
 GuiderInterface ()
 
 ~GuiderInterface ()
 
void initGuiderProperties (const char *deviceName, const char *groupName)
 Initilize guider properties. More...
 
void processGuiderProperties (const char *name, double values[], char *names[], int n)
 Call this function whenever client updates GuideNSNP or GuideWSP properties in the primary device. More...
 
- Protected Attributes inherited from INDI::Telescope
TelescopeStatus TrackState
 This is a variable filled in by the ReadStatus telescope low level code, used to report current state are we slewing, tracking, or parked. More...
 
TelescopeStatus RememberTrackState
 RememberTrackState Remember last state of Track State to fall back to in case of errors or aborts. More...
 
INumberVectorProperty EqNP
 
INumber EqN [2]
 
INumberVectorProperty TargetNP
 
INumber TargetN [2]
 
ISwitchVectorProperty AbortSP
 
ISwitch AbortS [1]
 
ISwitchVectorProperty CoordSP
 
ISwitch CoordS [3]
 
INumberVectorProperty LocationNP
 
INumber LocationN [3]
 
ISwitchVectorProperty ParkSP
 
ISwitch ParkS [2]
 
INumber ParkPositionN [2]
 
INumberVectorProperty ParkPositionNP
 
ISwitch ParkOptionS [3]
 
ISwitchVectorProperty ParkOptionSP
 
ISwitch MovementNSS [2]
 
ISwitchVectorProperty MovementNSSP
 
ISwitch MovementWES [2]
 
ISwitchVectorProperty MovementWESP
 
ISwitchVectorProperty SlewRateSP
 
ISwitchSlewRateS
 
INumber ScopeParametersN [4]
 
INumberVectorProperty ScopeParametersNP
 
IText TimeT [2] {}
 
ITextVectorProperty TimeTP
 
ITextVectorProperty ActiveDeviceTP
 
IText ActiveDeviceT [2] {}
 
ISwitchVectorProperty DomeClosedLockTP
 
ISwitch DomeClosedLockT [4]
 
ISwitch LockAxisS [2]
 
ISwitchVectorProperty LockAxisSP
 
ISwitch PierSideS [2]
 
ISwitchVectorProperty PierSideSP
 
TelescopePierSide lastPierSide
 
TelescopePierSide currentPierSide
 
ISwitch PECStateS [2]
 
ISwitchVectorProperty PECStateSP
 
ISwitchVectorProperty TrackModeSP
 
ISwitchTrackModeS { nullptr }
 
ISwitchVectorProperty TrackStateSP
 
ISwitch TrackStateS [2]
 
INumberVectorProperty TrackRateNP
 
INumber TrackRateN [2]
 
TelescopePECState lastPECState
 
TelescopePECState currentPECState
 
uint32_t capability
 
int last_we_motion
 
int last_ns_motion
 
int PortFD = -1
 
Connection::SerialserialConnection = NULL
 
Connection::TCPtcpConnection = NULL
 
const std::string ScopeConfigRootXmlNode { "scopeconfig" }
 
const std::string ScopeConfigDeviceXmlNode { "device" }
 
const std::string ScopeConfigNameXmlNode { "name" }
 
const std::string ScopeConfigScopeFocXmlNode { "scopefoc" }
 
const std::string ScopeConfigScopeApXmlNode { "scopeap" }
 
const std::string ScopeConfigGScopeFocXmlNode { "gscopefoc" }
 
const std::string ScopeConfigGScopeApXmlNode { "gscopeap" }
 
const std::string ScopeConfigLabelApXmlNode { "label" }
 
ISwitch ScopeConfigs [6]
 
ISwitchVectorProperty ScopeConfigsSP
 
ITextVectorProperty ScopeConfigNameTP
 
IText ScopeConfigNameT [1] {}
 
const std::string ScopeConfigFileName
 The telescope/guide scope configuration file name. More...
 
- Protected Attributes inherited from INDI::DefaultDevice
uint32_t POLLMS = 1000
 Period in milliseconds to call TimerHit(). Default 1000 ms. More...
 
- Protected Attributes inherited from INDI::GuiderInterface
INumber GuideNSN [2]
 
INumberVectorProperty GuideNSNP
 
INumber GuideWEN [2]
 
INumberVectorProperty GuideWENP
 

Member Typedef Documentation

◆ GotoParams

typedef struct EQMod::GotoParams EQMod::GotoParams
private

Member Enumeration Documentation

◆ AutoHomeStatus

Enumerator
AUTO_HOME_IDLE 
AUTO_HOME_CONFIRM 
AUTO_HOME_WAIT_PHASE1 
AUTO_HOME_WAIT_PHASE2 
AUTO_HOME_WAIT_PHASE3 
AUTO_HOME_WAIT_PHASE4 
AUTO_HOME_WAIT_PHASE5 
AUTO_HOME_WAIT_PHASE6 

◆ Hemisphere

enum EQMod::Hemisphere
private
Enumerator
NORTH 
SOUTH 

Constructor & Destructor Documentation

◆ EQMod()

EQMod::EQMod ( )

◆ ~EQMod()

EQMod::~EQMod ( )
virtual

Member Function Documentation

◆ abnormalDisconnect()

void EQMod::abnormalDisconnect ( )

◆ Abort()

bool EQMod::Abort ( )
virtual

Abort any telescope motion including tracking if possible.

Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ computePolarAlign()

void EQMod::computePolarAlign ( SyncData  s1,
SyncData  s2,
double  lat,
double *  tpaalt,
double *  tpaaz 
)
private

◆ Disconnect()

bool EQMod::Disconnect ( )
virtual

Disconnect from device.

Returns
True if successful, false otherwise

Reimplemented from INDI::DefaultDevice.

◆ EncoderFromDec()

double EQMod::EncoderFromDec ( double  detarget,
TelescopePierSide  p,
unsigned long  initstep,
unsigned long  totalstep,
enum Hemisphere  h 
)
private

◆ EncoderFromDegree()

double EQMod::EncoderFromDegree ( double  degree,
TelescopePierSide  p,
unsigned long  initstep,
unsigned long  totalstep,
enum Hemisphere  h 
)
private

◆ EncoderFromHour()

double EQMod::EncoderFromHour ( double  hour,
unsigned long  initstep,
unsigned long  totalstep,
enum Hemisphere  h 
)
private

◆ EncoderFromRA()

double EQMod::EncoderFromRA ( double  ratarget,
double  detarget,
double  lst,
unsigned long  initstep,
unsigned long  totalstep,
enum Hemisphere  h 
)
private

◆ EncodersToRADec()

void EQMod::EncodersToRADec ( unsigned long  rastep,
unsigned long  destep,
double  lst,
double *  ra,
double *  de,
double *  ha 
)
private

◆ EncoderTarget()

void EQMod::EncoderTarget ( GotoParams g)
private

◆ EncoderToDegrees()

double EQMod::EncoderToDegrees ( unsigned long  destep,
unsigned long  initdestep,
unsigned long  totalrastep,
enum Hemisphere  h 
)
private

◆ EncoderToHours()

double EQMod::EncoderToHours ( unsigned long  destep,
unsigned long  initdestep,
unsigned long  totalrastep,
enum Hemisphere  h 
)
private

◆ GetDefaultDETrackRate()

double EQMod::GetDefaultDETrackRate ( )
private

◆ getDefaultName()

const char * EQMod::getDefaultName ( )
virtual
Returns
Default name of the device.

Implements INDI::DefaultDevice.

◆ GetDefaultRATrackRate()

double EQMod::GetDefaultRATrackRate ( )
private

◆ GetDESlew()

double EQMod::GetDESlew ( )
private

◆ GetDETrackRate()

double EQMod::GetDETrackRate ( )
private

◆ getJulianDate()

double EQMod::getJulianDate ( )

◆ getLatitude()

double EQMod::getLatitude ( )

◆ getLongitude()

double EQMod::getLongitude ( )

◆ getLst()

double EQMod::getLst ( double  jd,
double  lng 
)

◆ GetRASlew()

double EQMod::GetRASlew ( )
private

◆ GetRATrackRate()

double EQMod::GetRATrackRate ( )
private

◆ Goto()

bool EQMod::Goto ( double  ra,
double  dec 
)
virtual

Move the scope to the supplied RA and DEC coordinates.

Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ gotoInProgress()

bool EQMod::gotoInProgress ( )
private

◆ GuideEast()

IPState EQMod::GuideEast ( uint32_t  ms)
virtual

Guide east for ms milliseconds.

East is defined as RA+

Returns
IPS_OK if operation is completed successfully, IPS_BUSY if operation will take take to complete, or IPS_ALERT if operation failed.

Implements INDI::GuiderInterface.

◆ GuideNorth()

IPState EQMod::GuideNorth ( uint32_t  ms)
virtual

Guide north for ms milliseconds.

North is defined as DEC+

Returns
IPS_OK if operation is completed successfully, IPS_BUSY if operation will take take to complete, or IPS_ALERT if operation failed.

Implements INDI::GuiderInterface.

◆ GuideSouth()

IPState EQMod::GuideSouth ( uint32_t  ms)
virtual

Guide south for ms milliseconds.

South is defined as DEC-

Returns
IPS_OK if operation is completed successfully, IPS_BUSY if operation will take take to complete, or IPS_ALERT if operation failed.

Implements INDI::GuiderInterface.

◆ GuideWest()

IPState EQMod::GuideWest ( uint32_t  ms)
virtual

Guide west for ms milliseconds.

West is defined as RA-

Returns
IPS_OK if operation is completed successfully, IPS_BUSY if operation will take take to complete, or IPS_ALERT if operation failed.

Implements INDI::GuiderInterface.

◆ Handshake()

bool EQMod::Handshake ( )
virtual

perform handshake with device to check communication

Reimplemented from INDI::Telescope.

◆ initProperties()

bool EQMod::initProperties ( )
virtual

Called to initialize basic properties required all the time.

Reimplemented from INDI::Telescope.

◆ ISGetProperties()

void EQMod::ISGetProperties ( const char *  dev)
virtual

define the driver's properties to the client.

Usually, only a minimum set of properties are defined to the client in this function if the device is in disconnected state. Those properties should be enough to enable the client to establish a connection to the device. In addition to CONNECT/DISCONNECT, such properties may include port name, IP address, etc. You should check if the device is already connected, and if this is true, then you must define the remainder of the the properties to the client in this function. Otherwise, the remainder of the driver's properties are defined to the client in updateProperties() function which is called when a client connects/disconnects from a device.

Parameters
devname of the device
Note
This function is called by the INDI framework, do not call it directly. See LX200 Generic driver for an example implementation

Reimplemented from INDI::Telescope.

◆ ISNewNumber()

bool EQMod::ISNewNumber ( const char *  dev,
const char *  name,
double  values[],
char *  names[],
int  n 
)
virtual

Process the client newNumber command.

Note
This function is called by the INDI framework, do not call it directly.
Returns
True if any property was successfully processed, false otherwise.

Reimplemented from INDI::Telescope.

◆ ISNewSwitch()

bool EQMod::ISNewSwitch ( const char *  dev,
const char *  name,
ISState states,
char *  names[],
int  n 
)
virtual

Process the client newSwitch command.

Note
This function is called by the INDI framework, do not call it directly.
Returns
True if any property was successfully processed, false otherwise.

Reimplemented from INDI::Telescope.

◆ ISNewText()

bool EQMod::ISNewText ( const char *  dev,
const char *  name,
char *  texts[],
char *  names[],
int  n 
)
virtual

Process the client newSwitch command.

Note
This function is called by the INDI framework, do not call it directly.
Returns
True if any property was successfully processed, false otherwise.

Reimplemented from INDI::Telescope.

◆ loadProperties()

bool EQMod::loadProperties ( )
private

◆ MoveNS()

bool EQMod::MoveNS ( INDI_DIR_NS  dir,
TelescopeMotionCommand  command 
)
virtual

Start or Stop the telescope motion in the direction dir.

Parameters
dirdirection of motion
commandStart or Stop command
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ MoveWE()

bool EQMod::MoveWE ( INDI_DIR_WE  dir,
TelescopeMotionCommand  command 
)
virtual

Move the telescope in the direction dir.

Parameters
dirdirection of motion
commandStart or Stop command
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ Park()

bool EQMod::Park ( )
virtual

Park the telescope to its home position.

Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ ReadScopeStatus()

bool EQMod::ReadScopeStatus ( )
virtual

Read telescope status.

This function checks the following:

  1. Check if the link to the telescope is alive.
  2. Update telescope status: Idle, Slewing, Parking..etc.
  3. Read coordinates
Returns
True if reading scope status is OK, false if an error is encounterd.
Note
This function is not implemented in Telescope, it must be implemented in the child class

Implements INDI::Telescope.

◆ saveConfigItems()

bool EQMod::saveConfigItems ( FILE *  fp)
virtual

saveConfigItems Save specific properties in the provide config file handler.

Child class usually override this function to save their own properties and the base class saveConfigItems(fp) must be explicitly called by each child class. The Default Device saveConfigItems(fp) only save Debug properties options in the config file.

Parameters
fpPointer to config file handler
Returns
True if successful, false otherwise.

Reimplemented from INDI::Telescope.

◆ SetCurrentPark()

bool EQMod::SetCurrentPark ( )
virtual

SetCurrentPark Set current coordinates/encoders value as the desired parking position.

Returns
True if current mount coordinates are set as parking position, false on error.
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ SetDefaultPark()

bool EQMod::SetDefaultPark ( )
virtual

SetDefaultPark Set default coordinates/encoders value as the desired parking position.

Returns
True if default park coordinates are set as parking position, false on error.
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ SetSouthernHemisphere()

void EQMod::SetSouthernHemisphere ( bool  southern)
private

◆ setStepperSimulation()

void EQMod::setStepperSimulation ( bool  enable)
private

◆ SetTrackEnabled()

bool EQMod::SetTrackEnabled ( bool  enabled)
virtual

SetTrackEnabled Engages or disengages mount tracking.

If there are no tracking modes available, it is assumed sidereal. Otherwise, whatever tracking mode should be activated or deactivated accordingly.

Parameters
enabledTrue to engage tracking, false to stop tracking completely.
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ SetTrackMode()

bool EQMod::SetTrackMode ( uint8_t  mode)
virtual

SetTrackMode Set active tracking mode.

Do not change track state.

Parameters
modeIndex of track mode.
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ SetTrackRate()

bool EQMod::SetTrackRate ( double  raRate,
double  deRate 
)
virtual

SetTrackRate Set custom tracking rates.

Parameters
raRateRA tracking rate in arcsecs/s
deRateDEC tracking rate in arcsecs/s
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ starPolarAlign()

void EQMod::starPolarAlign ( double  lst,
double  ra,
double  dec,
double  theta,
double  gamma,
double *  tra,
double *  tdec 
)
private

◆ Sync()

bool EQMod::Sync ( double  ra,
double  dec 
)
virtual

Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates.

Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ timedguideNSCallback()

void EQMod::timedguideNSCallback ( void *  userpointer)
staticprivate

◆ timedguideWECallback()

void EQMod::timedguideWECallback ( void *  userpointer)
staticprivate

◆ TimerHit()

void EQMod::TimerHit ( )
virtual

Called when setTimer() time is up.

Reimplemented from INDI::Telescope.

◆ UnPark()

bool EQMod::UnPark ( )
virtual

Unpark the telescope if already parked.

Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ UpdateDEInverted()

void EQMod::UpdateDEInverted ( )
private

◆ updateLocation()

bool EQMod::updateLocation ( double  latitude,
double  longitude,
double  elevation 
)
virtual

Update telescope location settings.

Parameters
latitudeSite latitude in degrees.
longitudeSite latitude in degrees increasing eastward from Greenwich (0 to 360).
elevationSite elevation in meters.
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

◆ updateProperties()

bool EQMod::updateProperties ( )
virtual

Called when connected state changes, to add/remove properties.

Reimplemented from INDI::Telescope.

◆ updateTime()

bool EQMod::updateTime ( ln_date *  utc,
double  utc_offset 
)
virtual

Update telescope time, date, and UTC offset.

Parameters
utcUTC time.
utc_offsetUTC offset in hours.
Returns
True if successful, false otherwise
Note
If not implemented by the child class, this function by default returns false with a warning message.

Reimplemented from INDI::Telescope.

Member Data Documentation

◆ ah_bIndexChanged_DE

bool EQMod::ah_bIndexChanged_DE
private

◆ ah_bIndexChanged_RA

bool EQMod::ah_bIndexChanged_RA
private

◆ ah_bSlewingUp_DE

bool EQMod::ah_bSlewingUp_DE
private

◆ ah_bSlewingUp_RA

bool EQMod::ah_bSlewingUp_RA
private

◆ ah_confirm_timeout

int EQMod::ah_confirm_timeout
private

◆ ah_iChanges

int EQMod::ah_iChanges
private

◆ ah_iPosition_DE

unsigned long EQMod::ah_iPosition_DE
private

◆ ah_iPosition_RA

unsigned long EQMod::ah_iPosition_RA
private

◆ ah_sHomeIndexPosition_DE

unsigned long EQMod::ah_sHomeIndexPosition_DE
private

◆ ah_sHomeIndexPosition_RA

unsigned long EQMod::ah_sHomeIndexPosition_RA
private

◆ ah_waitDE

int EQMod::ah_waitDE
private

◆ ah_waitRA

int EQMod::ah_waitRA
private

◆ alignedDEC

double EQMod::alignedDEC
private

◆ alignedRA

double EQMod::alignedRA
private

◆ AutoHomeSP

ISwitchVectorProperty* EQMod::AutoHomeSP = NULL
private

◆ AutohomeState

AutoHomeStatus EQMod::AutohomeState

◆ AuxEncoderNP

INumberVectorProperty* EQMod::AuxEncoderNP = NULL
private

◆ AuxEncoderSP

ISwitchVectorProperty* EQMod::AuxEncoderSP = NULL
private

◆ BacklashNP

INumberVectorProperty* EQMod::BacklashNP = NULL
private

◆ currentDEC

double EQMod::currentDEC
private

◆ currentDEEncoder

unsigned long EQMod::currentDEEncoder
private

◆ currentHA

double EQMod::currentHA
private

◆ currentRA

double EQMod::currentRA
private

◆ currentRAEncoder

unsigned long EQMod::currentRAEncoder
private

◆ CurrentSteppersNP

INumberVectorProperty* EQMod::CurrentSteppersNP = NULL
private

◆ DEInverted

bool EQMod::DEInverted
private

◆ DEPPECSP

ISwitchVectorProperty* EQMod::DEPPECSP = NULL
private

◆ DEPPECTrainingSP

ISwitchVectorProperty* EQMod::DEPPECTrainingSP = NULL
private

◆ DEStatusLP

ILightVectorProperty* EQMod::DEStatusLP = NULL
private

◆ EnforceCWUP

ISwitchVectorProperty* EQMod::EnforceCWUP = NULL
private

◆ ForceCwUp

bool EQMod::ForceCwUp = false
private

◆ ghalignedDEC

double EQMod::ghalignedDEC
private

◆ ghalignedRA

double EQMod::ghalignedRA
private

◆ gotoparams

GotoParams EQMod::gotoparams
private

◆ GuideRateN

INumber* EQMod::GuideRateN = NULL
private

◆ GuideRateNP

INumberVectorProperty* EQMod::GuideRateNP = NULL
private

◆ GuideTimerNS

int EQMod::GuideTimerNS
private

◆ GuideTimerWE

int EQMod::GuideTimerWE
private

◆ Hemisphere

◆ HemisphereSP

ISwitchVectorProperty* EQMod::HemisphereSP = NULL
private

◆ homeDEEncoder

unsigned long EQMod::homeDEEncoder
private

◆ homeRAEncoder

unsigned long EQMod::homeRAEncoder
private

◆ HorizontalCoordNP

INumberVectorProperty* EQMod::HorizontalCoordNP = NULL
private

◆ juliandate

double EQMod::juliandate
private

◆ JulianNP

INumberVectorProperty* EQMod::JulianNP = NULL
private

◆ last_motion_ew

int EQMod::last_motion_ew
private

◆ last_motion_ns

int EQMod::last_motion_ns
private

◆ lastclockupdate

struct timespec EQMod::lastclockupdate
private

◆ lasttimeupdate

struct timeval EQMod::lasttimeupdate
private

◆ lnaltaz

struct ln_hrz_posn EQMod::lnaltaz
private

◆ lndate

struct ln_date EQMod::lndate
private

◆ lnobserver

struct ln_lnlat_posn EQMod::lnobserver
private

◆ lnradec

struct ln_equ_posn EQMod::lnradec
private

◆ MinPulseN

INumber* EQMod::MinPulseN = NULL
private

◆ MinPulseTimerN

INumber* EQMod::MinPulseTimerN = NULL
private

◆ mount

Skywatcher* EQMod::mount
private

◆ MountInformationTP

ITextVectorProperty* EQMod::MountInformationTP = NULL
private

◆ parkDEEncoder

unsigned long EQMod::parkDEEncoder
private

◆ parkRAEncoder

unsigned long EQMod::parkRAEncoder
private

◆ PeriodsNP

INumberVectorProperty* EQMod::PeriodsNP = NULL
private

◆ pulseInProgress

uint8_t EQMod::pulseInProgress
private

◆ PulseLimitsNP

INumberVectorProperty* EQMod::PulseLimitsNP = NULL
private

◆ RAInverted

bool EQMod::RAInverted
private

◆ RAPPECSP

ISwitchVectorProperty* EQMod::RAPPECSP = NULL
private

◆ RAPPECTrainingSP

ISwitchVectorProperty* EQMod::RAPPECTrainingSP = NULL
private

◆ RAStatusLP

ILightVectorProperty* EQMod::RAStatusLP = NULL
private

◆ restartguideDEPPEC

bool EQMod::restartguideDEPPEC
private

◆ restartguideRAPPEC

bool EQMod::restartguideRAPPEC
private

◆ ReverseDECSP

ISwitchVectorProperty* EQMod::ReverseDECSP = NULL
private

◆ SCOPE_AUTOHOMING

const TelescopeStatus EQMod::SCOPE_AUTOHOMING = static_cast<TelescopeStatus>(SCOPE_PARKED + 1)
static

◆ simulator

EQModSimulator* EQMod::simulator

◆ SlewSpeedsNP

INumberVectorProperty* EQMod::SlewSpeedsNP = NULL
private

◆ ST4GuideRateNSSP

ISwitchVectorProperty* EQMod::ST4GuideRateNSSP = NULL
private

◆ ST4GuideRateWESP

ISwitchVectorProperty* EQMod::ST4GuideRateWESP = NULL
private

◆ StandardSyncNP

INumberVectorProperty* EQMod::StandardSyncNP = NULL
private

◆ StandardSyncPointNP

INumberVectorProperty* EQMod::StandardSyncPointNP = NULL
private

◆ SteppersNP

INumberVectorProperty* EQMod::SteppersNP = NULL
private

◆ syncdata

SyncData EQMod::syncdata
private

◆ syncdata2

SyncData EQMod::syncdata2
private

◆ SyncManageSP

ISwitchVectorProperty* EQMod::SyncManageSP = NULL
private

◆ SyncPolarAlignNP

INumberVectorProperty* EQMod::SyncPolarAlignNP = NULL
private

◆ targetDEC

double EQMod::targetDEC
private

◆ targetRA

double EQMod::targetRA
private

◆ TimeLSTNP

INumberVectorProperty* EQMod::TimeLSTNP = NULL
private

◆ totalDEEncoder

unsigned long EQMod::totalDEEncoder
private

◆ totalRAEncoder

unsigned long EQMod::totalRAEncoder
private

◆ tpa_alt

double EQMod::tpa_alt
private

◆ tpa_az

double EQMod::tpa_az
private

◆ TrackDefaultSP

ISwitchVectorProperty* EQMod::TrackDefaultSP = NULL
private

◆ UseBacklashSP

ISwitchVectorProperty* EQMod::UseBacklashSP = NULL
private

◆ utc

struct tm EQMod::utc
private

◆ zeroDEEncoder

unsigned long EQMod::zeroDEEncoder
private

◆ zeroRAEncoder

unsigned long EQMod::zeroRAEncoder
private

The documentation for this class was generated from the following files: