TwiceAsNice
2019-02-18
|
#include <quantum_wheel.h>
Public Member Functions | |
QFW () | |
virtual | ~QFW ()=default |
void | debugTriggered (bool enable) |
Inform driver that the debug option was triggered. More... | |
void | simulationTriggered (bool enable) |
Inform driver that the simulation option was triggered. More... | |
bool | Handshake () |
perform handshake with device to check communication More... | |
const char * | getDefaultName () |
bool | initProperties () |
Initilize properties initial state and value. More... | |
void | ISGetProperties (const char *dev) |
define the driver's properties to the client. More... | |
int | QueryFilter () |
Return current filter position. More... | |
bool | SelectFilter (int) |
Select a new filter position. More... | |
![]() | |
virtual bool | updateProperties () |
updateProperties is called whenever there is a change in the CONNECTION status of the driver. More... | |
virtual bool | ISSnoopDevice (XMLEle *root) |
Process a snoop event from INDI server. More... | |
virtual bool | ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n) |
Process the client newSwitch command. More... | |
virtual bool | ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n) |
Process the client newNumber command. More... | |
virtual bool | ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) |
Process the client newSwitch command. More... | |
void | setFilterConnection (const uint8_t &value) |
setFilterConnection Set Filter connection mode. More... | |
uint8_t | getFilterConnection () const |
virtual bool | updateProperties () |
updateProperties is called whenever there is a change in the CONNECTION status of the driver. More... | |
virtual bool | ISSnoopDevice (XMLEle *root) |
Process a snoop event from INDI server. More... | |
virtual bool | ISNewSwitch (const char *dev, const char *name, ISState *states, char *names[], int n) |
Process the client newSwitch command. More... | |
virtual bool | ISNewNumber (const char *dev, const char *name, double values[], char *names[], int n) |
Process the client newNumber command. More... | |
virtual bool | ISNewText (const char *dev, const char *name, char *texts[], char *names[], int n) |
Process the client newSwitch command. More... | |
void | setFilterConnection (const uint8_t &value) |
setFilterConnection Set Filter connection mode. More... | |
uint8_t | getFilterConnection () const |
![]() | |
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 void | TimerHit () |
Callback function to be called once SetTimer duration elapses. 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 void | TimerHit () |
Callback function to be called once SetTimer duration elapses. 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... | |
![]() | |
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 () |
![]() | |
virtual bool | SetFilterNames () |
Set filter names as defined by the client for each filter position. More... | |
virtual bool | GetFilterNames () |
Obtains a list of filter names from the hardware and initializes the FilterNameTP property. More... | |
void | SelectFilterDone (int newpos) |
The child class calls this function when the hardware successfully finished selecting a new filter wheel position. More... | |
virtual bool | SetFilterNames () |
Set filter names as defined by the client for each filter position. More... | |
virtual bool | GetFilterNames () |
Obtains a list of filter names from the hardware and initializes the FilterNameTP property. More... | |
void | SelectFilterDone (int newpos) |
The child class calls this function when the hardware successfully finished selecting a new filter wheel position. More... | |
Additional Inherited Members | |
![]() | |
enum | { CONNECTION_NONE = 1 << 0, CONNECTION_SERIAL = 1 << 1, CONNECTION_TCP = 1 << 2 } |
enum | { CONNECTION_NONE = 1 << 0, CONNECTION_SERIAL = 1 << 1, CONNECTION_TCP = 1 << 2 } |
![]() | |
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::FilterWheel:: { ... } | FilterConnection |
enum INDI::FilterWheel:: { ... } | FilterConnection |
![]() | |
FilterWheel () | |
virtual | ~FilterWheel ()=default |
virtual bool | saveConfigItems (FILE *fp) |
saveConfigItems Save specific properties in the provide config file handler. More... | |
void | processJoystick (const char *joystick_n, double mag, double angle) |
void | processButton (const char *button_n, ISState state) |
FilterWheel () | |
virtual | ~FilterWheel ()=default |
virtual bool | saveConfigItems (FILE *fp) |
saveConfigItems Save specific properties in the provide config file handler. More... | |
void | processJoystick (const char *joystick_n, double mag, double angle) |
void | processButton (const char *button_n, ISState state) |
![]() | |
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... | |
bool | isDebug () |
bool | isSimulation () |
virtual bool | Connect () |
Connect to the device. More... | |
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... | |
bool | isDebug () |
bool | isSimulation () |
virtual bool | Connect () |
Connect to the device. More... | |
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... | |
![]() | |
FilterInterface (DefaultDevice *defaultDevice) | |
FilterInterface Initiailize Filter Interface. More... | |
~FilterInterface () | |
void | initProperties (const char *groupName) |
Initilize filter wheel properties. More... | |
bool | updateProperties () |
updateProperties Defines or Delete proprties based on default device connection status More... | |
bool | processNumber (const char *dev, const char *name, double values[], char *names[], int n) |
Process number properties. More... | |
bool | processText (const char *dev, const char *name, char *texts[], char *names[], int n) |
Process text properties. More... | |
void | generateSampleFilters () |
generateSampleFilters Generate sample 8-filter wheel and fill it sample filters More... | |
bool | saveConfigItems (FILE *fp) |
saveConfigItems save Filter Names in config file More... | |
FilterInterface (DefaultDevice *defaultDevice) | |
FilterInterface Initiailize Filter Interface. More... | |
~FilterInterface () | |
void | initProperties (const char *groupName) |
Initilize filter wheel properties. More... | |
bool | updateProperties () |
updateProperties Defines or Delete proprties based on default device connection status More... | |
bool | processNumber (const char *dev, const char *name, double values[], char *names[], int n) |
Process number properties. More... | |
bool | processText (const char *dev, const char *name, char *texts[], char *names[], int n) |
Process text properties. More... | |
void | generateSampleFilters () |
generateSampleFilters Generate sample 8-filter wheel and fill it sample filters More... | |
bool | saveConfigItems (FILE *fp) |
saveConfigItems save Filter Names in config file More... | |
![]() | |
Controller * | controller |
Connection::Serial * | serialConnection = NULL |
Connection::TCP * | tcpConnection = NULL |
int | PortFD = -1 |
For Serial & TCP connections. More... | |
![]() | |
uint32_t | POLLMS = 1000 |
Period in milliseconds to call TimerHit(). Default 1000 ms. More... | |
![]() | |
INumberVectorProperty | FilterSlotNP |
INumber | FilterSlotN [1] |
ITextVectorProperty * | FilterNameTP { nullptr } |
IText * | FilterNameT |
int | CurrentFilter |
int | TargetFilter |
bool | loadingFromConfig = false |
DefaultDevice * | m_defaultDevice { nullptr } |
QFW::QFW | ( | ) |
|
virtualdefault |
|
virtual |
Inform driver that the debug option was triggered.
This function is called after setDebug is triggered by the client. Reimplement this function if your driver needs to take specific action after debug is enabled/disabled. Otherwise, you can use isDebug() to check if simulation is enabled or disabled.
enable | If true, the debug option is set to ON. |
Reimplemented from INDI::DefaultDevice.
|
virtual |
Implements INDI::DefaultDevice.
|
virtual |
perform handshake with device to check communication
Reimplemented from INDI::FilterWheel.
|
virtual |
Initilize properties initial state and value.
The child class must implement this function.
Reimplemented from INDI::FilterWheel.
|
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.
dev | name of the device |
Reimplemented from INDI::FilterWheel.
|
virtual |
Return current filter position.
Reimplemented from INDI::FilterWheel.
|
virtual |
Select a new filter position.
Reimplemented from INDI::FilterWheel.
|
virtual |
Inform driver that the simulation option was triggered.
This function is called after setSimulation is triggered by the client. Reimplement this function if your driver needs to take specific action after simulation is enabled/disabled. Otherwise, you can use isSimulation() to check if simulation is enabled or disabled.
enable | If true, the simulation option is set to ON. |
Reimplemented from INDI::DefaultDevice.