TwiceAsNice  2019-02-18
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
LoaderClient Class Reference

#include <LoaderClient.h>

Inheritance diagram for LoaderClient:
Inheritance graph
Collaboration diagram for LoaderClient:
Collaboration graph

Public Member Functions

 LoaderClient ()
 
virtual ~LoaderClient ()
 
void Initialise (int argc, char *argv[])
 
void Load ()
 
- Public Member Functions inherited from INDI::BaseClient
 BaseClient ()
 
virtual ~BaseClient ()
 
void setServer (const char *hostname, unsigned int port)
 Set the server host name and port. More...
 
void watchDevice (const char *deviceName)
 Add a device to the watch list. More...
 
bool connectServer ()
 Connect to INDI server. More...
 
bool disconnectServer ()
 Disconnect from INDI server. More...
 
bool isServerConnected () const
 
void connectDevice (const char *deviceName)
 Connect to INDI driver. More...
 
void disconnectDevice (const char *deviceName)
 Disconnect INDI driver. More...
 
INDI::BaseDevicegetDevice (const char *deviceName)
 
const 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=NULL)
 Set Binary Large Object policy mode. More...
 
BLOBHandling getBLOBMode (const char *dev, const char *prop=NULL)
 getBLOBMode Get Binary Large Object policy mode IF set previously by setBLOBMode More...
 
const char * getHost ()
 
int getPort ()
 
void sendNewText (ITextVectorProperty *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 (INumberVectorProperty *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 (ISwitchVectorProperty *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. More...
 
void sendOneBlob (const char *blobName, unsigned int blobSize, const char *blobFormat, void *blobBuffer)
 Send ONE blob content to server. More...
 
void finishBlob ()
 Send closing tag for BLOB command to server. More...
 
void setVerbose (bool enable)
 setVerbose Set verbose mode More...
 
bool isVerbose () const
 isVerbose Is client in verbose mode? More...
 
void setConnectionTimeout (uint32_t seconds, uint32_t microseconds)
 setConnectionTimeout Set connection timeout. More...
 
 BaseClient ()
 
virtual ~BaseClient ()
 
void setServer (const char *hostname, unsigned int port)
 Set the server host name and port. More...
 
void watchDevice (const char *deviceName)
 Add a device to the watch list. More...
 
bool connectServer ()
 Connect to INDI server. More...
 
bool disconnectServer ()
 Disconnect from INDI server. More...
 
bool isServerConnected () const
 
void connectDevice (const char *deviceName)
 Connect to INDI driver. More...
 
void disconnectDevice (const char *deviceName)
 Disconnect INDI driver. More...
 
INDI::BaseDevicegetDevice (const char *deviceName)
 
const 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=NULL)
 Set Binary Large Object policy mode. More...
 
BLOBHandling getBLOBMode (const char *dev, const char *prop=NULL)
 getBLOBMode Get Binary Large Object policy mode IF set previously by setBLOBMode More...
 
const char * getHost ()
 
int getPort ()
 
void sendNewText (ITextVectorProperty *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 (INumberVectorProperty *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 (ISwitchVectorProperty *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. More...
 
void sendOneBlob (const char *blobName, unsigned int blobSize, const char *blobFormat, void *blobBuffer)
 Send ONE blob content to server. More...
 
void finishBlob ()
 Send closing tag for BLOB command to server. More...
 
void setVerbose (bool enable)
 setVerbose Set verbose mode More...
 
bool isVerbose () const
 isVerbose Is client in verbose mode? More...
 
void setConnectionTimeout (uint32_t seconds, uint32_t microseconds)
 setConnectionTimeout Set connection timeout. More...
 
- Public Member Functions inherited from INDI::BaseMediator
virtual void removeDevice (INDI::BaseDevice *dp)=0
 Emmited when a device is deleted from INDI server. More...
 
virtual ~BaseMediator ()
 
virtual void removeDevice (INDI::BaseDevice *dp)=0
 Emmited when a device is deleted from INDI server. More...
 
virtual ~BaseMediator ()
 

Protected Member Functions

virtual void newBLOB (IBLOB *bp)
 Emmited when a new BLOB value arrives from INDI server. More...
 
virtual void newDevice (INDI::BaseDevice *dp)
 Emmited when a new device is created from INDI server. More...
 
virtual void newLight (ILightVectorProperty *lvp)
 Emmited when a new light value arrives from INDI server. More...
 
virtual void newMessage (INDI::BaseDevice *dp, int messageID)
 Emmited when a new message arrives from INDI server. More...
 
virtual void newNumber (INumberVectorProperty *nvp)
 Emmited when a new number value arrives from INDI server. More...
 
virtual void newProperty (INDI::Property *property)
 Emmited when a new property is created for an INDI driver. More...
 
virtual void newSwitch (ISwitchVectorProperty *svp)
 Emmited when a new switch value arrives from INDI server. More...
 
virtual void newText (ITextVectorProperty *tvp)
 Emmited when a new text 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 serverConnected ()
 Emmited when the server is connected. More...
 
virtual void serverDisconnected (int exit_code)
 Emmited when the server gets disconnected. More...
 
- Protected Member Functions inherited from INDI::BaseClient
int dispatchCommand (XMLEle *root, char *errmsg)
 Dispatch command received from INDI server to respective devices handled by the client. More...
 
int deleteDevice (const char *devName, char *errmsg)
 Remove device. More...
 
int delPropertyCmd (XMLEle *root, char *errmsg)
 Delete property command. More...
 
INDI::BaseDevicefindDev (const char *devName, char *errmsg)
 Find and return a particular device. More...
 
INDI::BaseDeviceaddDevice (XMLEle *dep, char *errmsg)
 Add a new device. More...
 
INDI::BaseDevicefindDev (XMLEle *root, int create, char *errmsg)
 Find a device, and if it doesn't exist, create it if create is set to 1. More...
 
int messageCmd (XMLEle *root, char *errmsg)
 Process messages. More...
 
virtual void newUniversalMessage (std::string message)
 newUniversalMessage Universal messages are sent from INDI server without a specific device. More...
 
int dispatchCommand (XMLEle *root, char *errmsg)
 Dispatch command received from INDI server to respective devices handled by the client. More...
 
int deleteDevice (const char *devName, char *errmsg)
 Remove device. More...
 
int delPropertyCmd (XMLEle *root, char *errmsg)
 Delete property command. More...
 
INDI::BaseDevicefindDev (const char *devName, char *errmsg)
 Find and return a particular device. More...
 
INDI::BaseDeviceaddDevice (XMLEle *dep, char *errmsg)
 Add a new device. More...
 
INDI::BaseDevicefindDev (XMLEle *root, int create, char *errmsg)
 Find a device, and if it doesn't exist, create it if create is set to 1. More...
 
int messageCmd (XMLEle *root, char *errmsg)
 Process messages. More...
 
virtual void newUniversalMessage (std::string message)
 newUniversalMessage Universal messages are sent from INDI server without a specific device. More...
 

Private Attributes

INDI::BaseDeviceDevice
 
std::string DeviceName
 

Additional Inherited Members

- Static Public Member Functions inherited from INDI::BaseClient
static void * listenHelper (void *context)
 
static void * listenHelper (void *context)
 
- Private Types inherited from INDI::AlignmentSubsystem::ClientAPIForMathPluginManagement
typedef std::vector< std::string > MathPluginsList
 
- Private Types inherited from INDI::AlignmentSubsystem::TelescopeDirectionVectorSupportFunctions
enum  AzimuthAngleDirection { CLOCKWISE, ANTI_CLOCKWISE }
 
enum  PolarAngleDirection { FROM_POLAR_AXIS, FROM_AZIMUTHAL_PLANE }
 
typedef enum INDI::AlignmentSubsystem::TelescopeDirectionVectorSupportFunctions::AzimuthAngleDirection AzimuthAngleDirection_t
 
typedef enum INDI::AlignmentSubsystem::TelescopeDirectionVectorSupportFunctions::PolarAngleDirection PolarAngleDirection_t
 
- Private Member Functions inherited from INDI::AlignmentSubsystem::AlignmentSubsystemForClients
virtual ~AlignmentSubsystemForClients ()
 Virtual destructor. More...
 
void Initialise (const char *DeviceName, INDI::BaseClient *BaseClient)
 This routine should be called before any connections to devices are made. More...
 
void ProcessNewBLOB (IBLOB *BLOBPointer)
 Process new BLOB message from driver. More...
 
void ProcessNewDevice (INDI::BaseDevice *DevicePointer)
 Process new device message from driver. More...
 
void ProcessNewProperty (INDI::Property *PropertyPointer)
 Process new property message from driver. More...
 
void ProcessNewNumber (INumberVectorProperty *NumberVectorPropertyPointer)
 Process new number message from driver. More...
 
void ProcessNewSwitch (ISwitchVectorProperty *SwitchVectorPropertyPointer)
 Process new switch message from driver. More...
 
- Private Member Functions inherited from INDI::AlignmentSubsystem::ClientAPIForMathPluginManagement
virtual ~ClientAPIForMathPluginManagement ()
 Virtual destructor. More...
 
bool EnumerateMathPlugins (MathPluginsList &AvailableMathPlugins)
 Return a list of the names of the available math plugins. More...
 
void Initialise (INDI::BaseClient *BaseClient)
 Intialise the API. More...
 
void ProcessNewDevice (INDI::BaseDevice *DevicePointer)
 Process new device message from driver. More...
 
void ProcessNewProperty (INDI::Property *PropertyPointer)
 Process new property message from driver. More...
 
void ProcessNewSwitch (ISwitchVectorProperty *SwitchVectorProperty)
 Process new switch message from driver. More...
 
bool SelectMathPlugin (const std::string &MathPluginName)
 Selects, loads and initialises the named math plugin. More...
 
bool ReInitialiseMathPlugin ()
 Re-initialises the current math plugin. More...
 
- Private Member Functions inherited from INDI::AlignmentSubsystem::ClientAPIForAlignmentDatabase
 ClientAPIForAlignmentDatabase ()
 Default constructor. More...
 
virtual ~ClientAPIForAlignmentDatabase ()
 Virtual destructor. More...
 
bool AppendSyncPoint (const AlignmentDatabaseEntry &CurrentValues)
 Append a sync point to the database. More...
 
bool ClearSyncPoints ()
 Delete all sync points from the database. More...
 
bool DeleteSyncPoint (unsigned int Offset)
 Delete a sync point from the database. More...
 
bool EditSyncPoint (unsigned int Offset, const AlignmentDatabaseEntry &CurrentValues)
 Edit a sync point in the database. More...
 
int GetDatabaseSize ()
 Return the number of entries in the database. More...
 
void Initialise (INDI::BaseClient *BaseClient)
 Initialise the API. More...
 
bool InsertSyncPoint (unsigned int Offset, const AlignmentDatabaseEntry &CurrentValues)
 Insert a sync point in the database. More...
 
bool LoadDatabase ()
 Load the database from persistent storage. More...
 
void ProcessNewBLOB (IBLOB *BLOBPointer)
 Process new BLOB message from driver. More...
 
void ProcessNewDevice (INDI::BaseDevice *DevicePointer)
 Process new device message from driver. More...
 
void ProcessNewNumber (INumberVectorProperty *NumberVectorProperty)
 Process new number message from driver. More...
 
void ProcessNewProperty (INDI::Property *PropertyPointer)
 Process new property message from driver. More...
 
void ProcessNewSwitch (ISwitchVectorProperty *SwitchVectorProperty)
 Process new switch message from driver. More...
 
bool ReadIncrementSyncPoint (AlignmentDatabaseEntry &CurrentValues)
 Increment the current offset then read a sync point from the database. More...
 
bool ReadSyncPoint (unsigned int Offset, AlignmentDatabaseEntry &CurrentValues)
 Read a sync point from the database. More...
 
bool SaveDatabase ()
 Save the database to persistent storage. More...
 
- Private Member Functions inherited from INDI::AlignmentSubsystem::TelescopeDirectionVectorSupportFunctions
virtual ~TelescopeDirectionVectorSupportFunctions ()
 Virtual destructor. More...
 
void AltitudeAzimuthFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, ln_hrz_posn &HorizontalCoordinates)
 Calculates an altitude and azimuth from the supplied normalised direction vector and declination. More...
 
void AltitudeAzimuthFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, lnh_hrz_posn &HorizontalCoordinates)
 Calculates an altitude and azimuth from the supplied normalised direction vector and declination. More...
 
void EquatorialCoordinatesFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, struct ln_equ_posn &EquatorialCoordinates)
 Calculates equatorial coordinates from the supplied telescope direction vector and declination. More...
 
void EquatorialCoordinatesFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, struct lnh_equ_posn &EquatorialCoordinates)
 Calculates equatorial coordinates from the supplied telescope direction vector and declination. More...
 
void LocalHourAngleDeclinationFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, struct ln_equ_posn &EquatorialCoordinates)
 Calculates a local hour angle and declination from the supplied telescope direction vector and declination. More...
 
void LocalHourAngleDeclinationFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, struct lnh_equ_posn &EquatorialCoordinates)
 Calculates a local hour angle and declination from the supplied telescope direction vector and declination. More...
 
void SphericalCoordinateFromTelescopeDirectionVector (const TelescopeDirectionVector TelescopeDirectionVector, double &AzimuthAngle, AzimuthAngleDirection_t AzimuthAngleDirection, double &PolarAngle, PolarAngleDirection_t PolarAngleDirection)
 Calculates a spherical coordinate from the supplied telescope direction vector. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromAltitudeAzimuth (ln_hrz_posn HorizontalCoordinates)
 Calculates a normalised direction vector from the supplied altitude and azimuth. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromAltitudeAzimuth (lnh_hrz_posn HorizontalCoordinates)
 Calculates a normalised direction vector from the supplied altitude and azimuth. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromEquatorialCoordinates (struct ln_equ_posn EquatorialCoordinates)
 Calculates a telescope direction vector from the supplied equatorial coordinates. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromEquatorialCoordinates (struct lnh_equ_posn EquatorialCoordinates)
 Calculates a telescope direction vector from the supplied equatorial coordinates. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromLocalHourAngleDeclination (struct ln_equ_posn EquatorialCoordinates)
 Calculates a telescope direction vector from the supplied local hour angle and declination. More...
 
const TelescopeDirectionVector TelescopeDirectionVectorFromSphericalCoordinate (const double AzimuthAngle, AzimuthAngleDirection_t AzimuthAngleDirection, const double PolarAngle, PolarAngleDirection_t PolarAngleDirection)
 Calculates a telescope direction vector from the supplied spherical coordinate information. More...
 

Constructor & Destructor Documentation

◆ LoaderClient()

LoaderClient::LoaderClient ( )

◆ ~LoaderClient()

LoaderClient::~LoaderClient ( )
virtual

Member Function Documentation

◆ Initialise()

void LoaderClient::Initialise ( int  argc,
char *  argv[] 
)

◆ Load()

void LoaderClient::Load ( )

◆ newBLOB()

void LoaderClient::newBLOB ( IBLOB bp)
protectedvirtual

Emmited when a new BLOB value arrives from INDI server.

Parameters
bpPointer to filled and process BLOB.

Implements INDI::BaseMediator.

◆ newDevice()

void LoaderClient::newDevice ( INDI::BaseDevice dp)
protectedvirtual

Emmited when a new device is created from INDI server.

Parameters
dpPointer to the base device instance

Implements INDI::BaseMediator.

◆ newLight()

virtual void LoaderClient::newLight ( ILightVectorProperty lvp)
inlineprotectedvirtual

Emmited when a new light value arrives from INDI server.

Parameters
lvpPointer to a light vector property.

Implements INDI::BaseMediator.

◆ newMessage()

virtual void LoaderClient::newMessage ( INDI::BaseDevice dp,
int  messageID 
)
inlineprotectedvirtual

Emmited when a new message arrives from INDI server.

Parameters
dppointer to the INDI device the message is sent to.
messageIDID of the message that can be used to retrieve the message from the device's messageQueue() function.

Implements INDI::BaseMediator.

◆ newNumber()

void LoaderClient::newNumber ( INumberVectorProperty nvp)
protectedvirtual

Emmited when a new number value arrives from INDI server.

Parameters
nvpPointer to a number vector property.

Implements INDI::BaseMediator.

◆ newProperty()

void LoaderClient::newProperty ( INDI::Property property)
protectedvirtual

Emmited when a new property is created for an INDI driver.

Parameters
propertyPointer to the Property Container

Implements INDI::BaseMediator.

◆ newSwitch()

void LoaderClient::newSwitch ( ISwitchVectorProperty svp)
protectedvirtual

Emmited when a new switch value arrives from INDI server.

Parameters
svpPointer to a switch vector property.

Implements INDI::BaseMediator.

◆ newText()

virtual void LoaderClient::newText ( ITextVectorProperty tvp)
inlineprotectedvirtual

Emmited when a new text value arrives from INDI server.

Parameters
tvpPointer to a text vector property.

Implements INDI::BaseMediator.

◆ removeProperty()

virtual void LoaderClient::removeProperty ( INDI::Property property)
inlineprotectedvirtual

Emmited when a property is deleted for an INDI driver.

Parameters
propertyPointer to the Property Container to remove.

Implements INDI::BaseMediator.

◆ serverConnected()

virtual void LoaderClient::serverConnected ( )
inlineprotectedvirtual

Emmited when the server is connected.

Implements INDI::BaseMediator.

◆ serverDisconnected()

virtual void LoaderClient::serverDisconnected ( int  exit_code)
inlineprotectedvirtual

Emmited when the server gets disconnected.

Parameters
exit_code0 if client was requested to disconnect from server. -1 if connection to server is terminated due to remote server disconnection.

Implements INDI::BaseMediator.

Member Data Documentation

◆ Device

INDI::BaseDevice* LoaderClient::Device
private

◆ DeviceName

std::string LoaderClient::DeviceName
private

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