TwiceAsNice
2019-02-18
|
#include <synscanmount.h>
Public Member Functions | |
SynscanMount () | |
virtual | ~SynscanMount ()=default |
virtual void | ISGetProperties (const char *dev) override |
define the driver's properties to the client. More... | |
virtual bool | updateProperties () override |
Called when connected state changes, to add/remove properties. More... | |
virtual const char * | getDefaultName () override |
virtual bool | Connect () override |
Connect to the device. More... | |
virtual bool | initProperties () override |
Called to initialize basic properties required all the time. More... | |
virtual bool | ReadScopeStatus () override |
Read telescope status. More... | |
bool | StartTrackMode () |
virtual bool | Goto (double, double) override |
Move the scope to the supplied RA and DEC coordinates. More... | |
virtual bool | Park () override |
Park the telescope to its home position. More... | |
virtual bool | UnPark () override |
Unpark the telescope if already parked. More... | |
virtual bool | Abort () override |
Abort any telescope motion including tracking if possible. More... | |
virtual bool | SetSlewRate (int index) override |
SetSlewRate Set desired slew rate index. More... | |
virtual bool | MoveNS (INDI_DIR_NS dir, TelescopeMotionCommand command) override |
Start or Stop the telescope motion in the direction dir. More... | |
virtual bool | MoveWE (INDI_DIR_WE dir, TelescopeMotionCommand command) override |
Move the telescope in the direction dir. More... | |
bool | ReadTime () |
bool | ReadLocation () |
virtual bool | updateLocation (double latitude, double longitude, double elevation) override |
Update telescope location settings. More... | |
virtual bool | updateTime (ln_date *utc, double utc_offset) override |
Update telescope time, date, and UTC offset. More... | |
virtual bool | SetCurrentPark () override |
SetCurrentPark Set current coordinates/encoders value as the desired parking position. More... | |
virtual bool | SetDefaultPark () override |
SetDefaultPark Set default coordinates/encoders value as the desired parking position. More... | |
virtual bool | ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n) override |
Process the client newNumber command. More... | |
virtual bool | ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n) override |
Process the client newSwitch command. More... | |
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. More... | |
virtual bool | ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) override |
Process the client newSwitch command. More... | |
virtual bool | Sync (double ra, double dec) override |
Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates. More... | |
![]() | |
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 () |
virtual bool | Handshake () |
perform handshake with device to check communication More... | |
virtual void | TimerHit () |
Called when setTimer() time is up. More... | |
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 () |
virtual bool | Handshake () |
perform handshake with device to check communication More... | |
virtual void | TimerHit () |
Called when setTimer() time is up. More... | |
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 () |
![]() | |
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 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 uint16_t | getDriverInterface () |
void | setDriverInterface (uint16_t value) |
setInterface Set driver interface. More... | |
![]() | |
BaseDevice () | |
virtual | ~BaseDevice () |
INumberVectorProperty * | getNumber (const char *name) |
ITextVectorProperty * | getText (const char *name) |
ISwitchVectorProperty * | getSwitch (const char *name) |
ILightVectorProperty * | getLight (const char *name) |
IBLOBVectorProperty * | getBLOB (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::Property * | getProperty (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::BaseMediator * | getMediator () |
const char * | getDriverName () |
const char * | getDriverExec () |
const char * | getDriverVersion () |
BaseDevice () | |
virtual | ~BaseDevice () |
INumberVectorProperty * | getNumber (const char *name) |
ITextVectorProperty * | getText (const char *name) |
ISwitchVectorProperty * | getSwitch (const char *name) |
ILightVectorProperty * | getLight (const char *name) |
IBLOBVectorProperty * | getBLOB (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::Property * | getProperty (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::BaseMediator * | getMediator () |
const char * | getDriverName () |
const char * | getDriverExec () |
const char * | getDriverVersion () |
Private Member Functions | |
int | PassthruCommand (int cmd, int target, int msgsize, int data, int numReturn) |
ln_hrz_posn | GetAltAzPosition (double ra, double dec) |
int | HexStrToInteger (const std::string &str) |
bool | AnalyzeHandset () |
void | UpdateMountInformation (bool inform_client) |
Private Attributes | |
double | FirmwareVersion { 0 } |
char | LastParkRead [20] |
int | NumPark { 0 } |
int | StopCount { 0 } |
int | SlewRate { 5 } |
int | CustomNSSlewRate { -1 } |
int | CustomWESlewRate { -1 } |
double | SlewTargetAlt { -1 } |
double | SlewTargetAz { -1 } |
double | CurrentRA { 0 } |
double | CurrentDEC { 0 } |
bool | CanSetLocation { false } |
bool | ReadLatLong { false } |
int | RecoverTrials { 0 } |
bool | NewFirmware { false } |
const std::string | MountInfoPage { "Mount Information" } |
IText | BasicMountInfo [6] |
ITextVectorProperty | BasicMountInfoV |
std::string | HandsetFwVersion |
int | MountCode { 0 } |
std::string | AlignmentStatus |
std::string | GotoStatus |
std::string | MountPointingStatus |
std::string | TrackingStatus |
std::string | TrackingMode |
Static Private Attributes | |
static const uint8_t | MAX_SYN_BUF = 64 |
Additional Inherited Members | |
![]() | |
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 } |
![]() | |
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... | |
![]() | |
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) |
![]() | |
enum INDI::Telescope:: { ... } | TelescopeConnection |
enum INDI::Telescope:: { ... } | TelescopeCapability |
enum INDI::Telescope:: { ... } | TelescopeConnection |
enum INDI::Telescope:: { ... } | TelescopeCapability |
![]() | |
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 } |
![]() | |
virtual bool | saveConfigItems (FILE *fp) |
saveConfigItems Save specific properties in the provide config file handler. More... | |
void | NewRaDec (double ra, double dec) |
The child class calls this function when it has updates. More... | |
virtual bool | SetTrackMode (uint8_t mode) |
SetTrackMode Set active tracking mode. More... | |
virtual bool | SetTrackRate (double raRate, double deRate) |
SetTrackRate Set custom tracking rates. More... | |
virtual int | AddTrackMode (const char *name, const char *label, bool isDefault=false) |
AddTrackMode. More... | |
virtual bool | SetTrackEnabled (bool enabled) |
SetTrackEnabled Engages or disengages mount tracking. More... | |
virtual bool | SetParkPosition (double Axis1Value, double Axis2Value) |
SetParkPosition Set desired parking position to the supplied value. 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 () |
virtual bool | saveConfigItems (FILE *fp) |
saveConfigItems Save specific properties in the provide config file handler. More... | |
void | NewRaDec (double ra, double dec) |
The child class calls this function when it has updates. More... | |
virtual bool | SetTrackMode (uint8_t mode) |
SetTrackMode Set active tracking mode. More... | |
virtual bool | SetTrackRate (double raRate, double deRate) |
SetTrackRate Set custom tracking rates. More... | |
virtual int | AddTrackMode (const char *name, const char *label, bool isDefault=false) |
AddTrackMode. More... | |
virtual bool | SetTrackEnabled (bool enabled) |
SetTrackEnabled Engages or disengages mount tracking. More... | |
virtual bool | SetParkPosition (double Axis1Value, double Axis2Value) |
SetParkPosition Set desired parking position to the supplied value. 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 | 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 | Disconnect () |
Disconnect from 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::Interface * | getActiveConnection () |
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 | Disconnect () |
Disconnect from 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::Interface * | getActiveConnection () |
void | setDefaultPollingPeriod (uint32_t period) |
uint32_t | getPollingPeriod () |
![]() | |
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... | |
![]() | |
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 |
ISwitch * | SlewRateS |
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 |
ISwitch * | TrackModeS { 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::Serial * | serialConnection = NULL |
Connection::TCP * | tcpConnection = 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... | |
![]() | |
uint32_t | POLLMS = 1000 |
Period in milliseconds to call TimerHit(). Default 1000 ms. More... | |
|
strongprivate |
SynscanMount::SynscanMount | ( | ) |
|
virtualdefault |
|
overridevirtual |
Abort any telescope motion including tracking if possible.
Reimplemented from INDI::Telescope.
|
private |
|
overridevirtual |
Connect to the device.
INDI::DefaultDevice implementation connects to appropriate connection interface (Serial or TCP) governed by connectionMode. If connection is successful, it proceed to call Handshake() function to ensure communication with device is successful. For other communication interface, override the method in the child class implementation
Reimplemented from INDI::DefaultDevice.
|
private |
|
overridevirtual |
Implements INDI::DefaultDevice.
|
overridevirtual |
Move the scope to the supplied RA and DEC coordinates.
Reimplemented from INDI::Telescope.
|
private |
|
overridevirtual |
Called to initialize basic properties required all the time.
Reimplemented from INDI::Telescope.
|
overridevirtual |
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.
dev | name of the device |
Reimplemented from INDI::Telescope.
|
overridevirtual |
Process the client newBLOB command.
Reimplemented from INDI::DefaultDevice.
|
overridevirtual |
Process the client newNumber command.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Process the client newSwitch command.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Process the client newSwitch command.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Start or Stop the telescope motion in the direction dir.
dir | direction of motion |
command | Start or Stop command |
Reimplemented from INDI::Telescope.
|
overridevirtual |
Move the telescope in the direction dir.
dir | direction of motion |
command | Start or Stop command |
Reimplemented from INDI::Telescope.
|
overridevirtual |
Park the telescope to its home position.
Reimplemented from INDI::Telescope.
|
private |
bool SynscanMount::ReadLocation | ( | ) |
|
overridevirtual |
Read telescope status.
This function checks the following:
Implements INDI::Telescope.
bool SynscanMount::ReadTime | ( | ) |
|
overridevirtual |
SetCurrentPark Set current coordinates/encoders value as the desired parking position.
Reimplemented from INDI::Telescope.
|
overridevirtual |
SetDefaultPark Set default coordinates/encoders value as the desired parking position.
Reimplemented from INDI::Telescope.
|
overridevirtual |
SetSlewRate Set desired slew rate index.
index | Index of slew rate where 0 is slowest rate and capability.nSlewRate-1 is maximum rate. |
Reimplemented from INDI::Telescope.
bool SynscanMount::StartTrackMode | ( | ) |
|
overridevirtual |
Set the telescope current RA and DEC coordinates to the supplied RA and DEC coordinates.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Unpark the telescope if already parked.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Update telescope location settings.
latitude | Site latitude in degrees. |
longitude | Site latitude in degrees increasing eastward from Greenwich (0 to 360). |
elevation | Site elevation in meters. |
Reimplemented from INDI::Telescope.
|
private |
|
overridevirtual |
Called when connected state changes, to add/remove properties.
Reimplemented from INDI::Telescope.
|
overridevirtual |
Update telescope time, date, and UTC offset.
utc | UTC time. |
utc_offset | UTC offset in hours. |
Reimplemented from INDI::Telescope.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |