Instrument Neutral Distributed Interface INDI
2.0.2
|
Class to provide basic client functionality. More...
#include <baseclient.h>
Public Member Functions | |
BaseClient () | |
virtual | ~BaseClient () |
bool | connectServer () override |
Connect to INDI server. More... | |
bool | disconnectServer (int exit_code=0) override |
Disconnect from INDI server. Any devices previously created will be deleted and memory cleared. More... | |
void | enableDirectBlobAccess (const char *dev=nullptr, const char *prop=nullptr) |
activate zero-copy delivering of the blob content. When enabled, all blob copy will be avoided when possible (depending on the connection). This changes how the IBLOB.data field : More... | |
Public Member Functions inherited from INDI::AbstractBaseClient | |
AbstractBaseClient ()=delete | |
virtual | ~AbstractBaseClient () |
void | setServer (const char *hostname, unsigned int port) |
Set the server host name and port. More... | |
const char * | getHost () const |
Get the server host name. More... | |
int | getPort () const |
Get the port number. More... | |
bool | isServerConnected () const |
Get status of the connection. More... | |
void | setConnectionTimeout (uint32_t seconds, uint32_t microseconds) |
setConnectionTimeout Set connection timeout. By default it is 3 seconds. More... | |
void | setVerbose (bool enable) |
setVerbose Set verbose mode More... | |
bool | isVerbose () const |
isVerbose Is client in verbose mode? More... | |
void | watchDevice (const char *deviceName) |
Add a device to the watch list. More... | |
void | watchDevice (const char *deviceName, const std::function< void(BaseDevice)> &callback) |
void | watchProperty (const char *deviceName, const char *propertyName) |
watchProperties Add a property to the watch list. When communicating with INDI server. More... | |
void | connectDevice (const char *deviceName) |
Disconnect INDI driver. More... | |
void | disconnectDevice (const char *deviceName) |
Disconnect INDI driver. More... | |
INDI::BaseDevice | getDevice (const char *deviceName) |
std::vector< INDI::BaseDevice > | getDevices () const |
bool | getDevices (std::vector< INDI::BaseDevice > &deviceList, uint16_t driverInterface) |
getDevices Returns list of devices that belong to a particular DRIVER_INTERFACE class. More... | |
void | setBLOBMode (BLOBHandling blobH, const char *dev, const char *prop=nullptr) |
Set Binary Large Object policy mode. More... | |
BLOBHandling | getBLOBMode (const char *dev, const char *prop=nullptr) |
getBLOBMode Get Binary Large Object policy mode IF set previously by setBLOBMode More... | |
void | sendNewProperty (INDI::Property pp) |
Send new Property command to server. More... | |
void | sendNewText (INDI::Property pp) |
Send new Text command to server. More... | |
void | sendNewText (const char *deviceName, const char *propertyName, const char *elementName, const char *text) |
Send new Text command to server. More... | |
void | sendNewNumber (INDI::Property pp) |
Send new Number command to server. More... | |
void | sendNewNumber (const char *deviceName, const char *propertyName, const char *elementName, double value) |
Send new Number command to server. More... | |
void | sendNewSwitch (INDI::Property pp) |
Send new Switch command to server. More... | |
void | sendNewSwitch (const char *deviceName, const char *propertyName, const char *elementName) |
Send new Switch command to server. More... | |
void | startBlob (const char *devName, const char *propName, const char *timestamp) |
Send opening tag for BLOB command to server. More... | |
void | sendOneBlob (IBLOB *bp) |
Send ONE blob content to server. The BLOB data in raw binary format and will be converted to base64 and sent to server. More... | |
void | sendOneBlob (INDI::WidgetViewBlob *blob) |
void | sendOneBlob (const char *blobName, unsigned int blobSize, const char *blobFormat, void *blobBuffer) |
Send ONE blob content to server. The BLOB data in raw binary format and will be converted to base64 and sent to server. More... | |
void | finishBlob () |
Send closing tag for BLOB command to server. More... | |
void | sendPingRequest (const char *uid) |
Send one ping request, the server will answer back with the same uuid. More... | |
void | sendPingReply (const char *uid) |
Send a ping reply for the given uuid. More... | |
Public Member Functions inherited from INDI::BaseMediator | |
virtual | ~BaseMediator ()=default |
virtual void | newDevice (INDI::BaseDevice baseDevice) |
Emmited when a new device is created from INDI server. More... | |
virtual void | removeDevice (INDI::BaseDevice baseDevice) |
Emmited when a device is deleted from INDI server. More... | |
virtual void | newProperty (INDI::Property property) |
Emmited when a new property is created for an INDI driver. More... | |
virtual void | updateProperty (INDI::Property property) |
Emmited when a new property value arrives from INDI server. More... | |
virtual void | removeProperty (INDI::Property property) |
Emmited when a property is deleted for an INDI driver. More... | |
virtual void | newMessage (INDI::BaseDevice baseDevice, int messageID) |
Emmited when a new message arrives from INDI server. More... | |
virtual void | serverConnected () |
Emmited when the server is connected. More... | |
virtual void | serverDisconnected (int exit_code) |
Emmited when the server gets disconnected. More... | |
virtual void | newDevice (INDI::BaseDevice *dp) |
Emmited when a new device is created from INDI server. More... | |
virtual void | removeDevice (INDI::BaseDevice *dp) |
Emmited when a device is deleted from INDI server. More... | |
virtual void | newProperty (INDI::Property *property) |
Emmited when a new property is created for an INDI driver. More... | |
virtual void | removeProperty (INDI::Property *property) |
Emmited when a property is deleted for an INDI driver. More... | |
virtual void | newSwitch (ISwitchVectorProperty *svp) |
Emmited when a new switch value arrives from INDI server. More... | |
virtual void | newNumber (INumberVectorProperty *nvp) |
Emmited when a new number value arrives from INDI server. More... | |
virtual void | newText (ITextVectorProperty *tvp) |
Emmited when a new text value arrives from INDI server. More... | |
virtual void | newLight (ILightVectorProperty *lvp) |
Emmited when a new light value arrives from INDI server. More... | |
virtual void | newBLOB (IBLOB *bp) |
Emmited when a new property value arrives from INDI server. More... | |
virtual void | newMessage (INDI::BaseDevice *dp, int messageID) |
Emmited when a new message arrives from INDI server. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from INDI::AbstractBaseClient | |
virtual void | newPingReply (std::string uid) |
pingReply are sent by the server on response to pingReply (see above). More... | |
virtual void | newUniversalMessage (std::string message) |
newUniversalMessage Universal messages are sent from INDI server without a specific device. It is addressed to the client overall. More... | |
AbstractBaseClient (std::unique_ptr< AbstractBaseClientPrivate > &&dd) | |
Protected Attributes inherited from INDI::AbstractBaseClient | |
std::unique_ptr< AbstractBaseClientPrivate > | d_ptr_indi |
Class to provide basic client functionality.
BaseClient enables accelerated development of INDI Clients by providing a framework that facilitates communication, device handling, and event notification. By subclassing BaseClient, clients can quickly connect to an INDI server, and query for a set of INDI::BaseDevice devices, and read and write properties seamlessly. Event driven programming is possible due to notifications upon reception of new devices or properties.
Upon connecting to an INDI server, it creates a dedicated thread to handle all incoming traffic. The thread is terminated when disconnectServer() is called or when a communication error occurs.
Definition at line 51 of file baseclient.h.
INDI::BaseClient::BaseClient | ( | ) |
Definition at line 288 of file baseclient.cpp.
|
virtual |
Definition at line 292 of file baseclient.cpp.
|
overridevirtual |
Connect to INDI server.
Implements INDI::AbstractBaseClient.
Definition at line 308 of file baseclient.cpp.
|
overridevirtual |
Disconnect from INDI server. Any devices previously created will be deleted and memory cleared.
Implements INDI::AbstractBaseClient.
Definition at line 343 of file baseclient.cpp.
void INDI::BaseClient::enableDirectBlobAccess | ( | const char * | dev = nullptr , |
const char * | prop = nullptr |
||
) |
activate zero-copy delivering of the blob content. When enabled, all blob copy will be avoided when possible (depending on the connection). This changes how the IBLOB.data field :
dev | name of device, can be NULL to all devs |
prop | property name, can be NULL to activate for all property of dev |
Definition at line 360 of file baseclient.cpp.