source: BAORadio/libindi/libindi/libs/indibase/indibase.h @ 642

Last change on this file since 642 was 642, checked in by frichard, 12 years ago

-Alignement des antennes
-Version 0.0.9 de libindi

File size: 3.6 KB
Line 
1#ifndef INDIBASE_H
2#define INDIBASE_H
3
4#include "indiapi.h"
5#include "indidevapi.h"
6
7#define MAXRBUF 2048
8
9/**
10 * \namespace INDI
11   \brief Namespace to encapsulate INDI client, drivers, and mediator classes.
12   Developers can subclass the base devices class to implement device specific functionality. This ensures interoperability and consistency among devices within the same family
13   and reduces code overhead.
14
15   <ul>
16   <li>BaseClient: Base class for INDI clients. By subclassing BaseClient, client can easily connect to INDI server
17   and handle device communication, command, and notifcation.</li>
18   <li>BaseMediator: Abstract class to provide interface for event notifications in INDI::BaseClient.</li>
19   <li>BaseDriver: Base class for all INDI virtual driver as handled and stored in INDI::BaseClient.</li>
20   <li>DefaultDriver: INDI::BaseDriver with extended functionality such as debug, simulation, and configuration support.
21       It is \e only used by drivers directly, it cannot be used by clients.</li>
22   <li>FilterInterface: Basic interface for filter wheels functions.</li>
23   <li>GuiderInterface: Basic interface for guider (ST4) port functions.</li>
24   <li>CCD: Base class for CCD drivers. Provides basic support for single chip CCD and CCDs with a guide head as well.</li>
25   <li>Telescope: Base class for telescope drivers.</li>
26   <li>FilterWheel: Base class for Filter Wheels. It implements the FilterInterface.</li>
27   <li>Focuser: Base class for focusers.</li>
28   <li>USBDevice: Base class for USB devices for direct read/write/control over USB.</li>
29   </ul>
30 */
31namespace INDI
32{
33    class BaseMediator;
34    class BaseClient;
35    class BaseDriver;
36    class DefaultDriver;
37    class FilterInterface;
38    class GuiderInterface;
39    class CCD;
40    class Telescope;
41    class FilterWheel;
42    class Focuser;
43    class USBDevice;   
44}
45
46
47/**
48 * \class INDI::BaseMediator
49   \brief Meditates event notification as generated by driver and passed to clients.
50*/
51class INDI::BaseMediator
52{
53public:
54
55    /** \brief Emmited when a new device is created from INDI server.
56        \param device_name Name of the new device
57    */
58    virtual void newDevice(const char *device_name)  =0;
59
60    /** \brief Emmited when a new property is created for an INDI driver.
61        \param device_name Name of the device
62        \param property_name Name of the new property
63    */
64    virtual void newProperty(const char *device_name, const char *property_name)  =0;
65
66    /** \brief Emmited when a new BLOB value arrives from INDI server.
67        \param bp Pointer to filled and process BLOB.
68    */
69    virtual void newBLOB(IBLOB *bp) =0;
70
71    /** \brief Emmited when a new switch value arrives from INDI server.
72        \param svp Pointer to a switch vector property.
73    */
74    virtual void newSwitch(ISwitchVectorProperty *svp) =0;
75
76    /** \brief Emmited when a new number value arrives from INDI server.
77        \param nvp Pointer to a number vector property.
78    */
79    virtual void newNumber(INumberVectorProperty *nvp) =0;
80
81    /** \brief Emmited when a new text value arrives from INDI server.
82        \param tvp Pointer to a text vector property.
83    */
84    virtual void newText(ITextVectorProperty *tvp) =0;
85
86    /** \brief Emmited when a new light value arrives from INDI server.
87        \param lvp Pointer to a light vector property.
88    */
89    virtual void newLight(ILightVectorProperty *lvp) =0;
90
91    /** \brief Emmited when the server is connected.
92    */
93    virtual void serverConnected() =0;
94
95    /** \brief Emmited when the server gets disconnected.
96    */
97    virtual void serverDisconnected() =0;
98};
99
100#endif // INDIBASE_H
Note: See TracBrowser for help on using the repository browser.