00001 #ifndef _STAGE_PLAYER_INTERFACES_H
00002 #define _STAGE_PLAYER_INTERFACES_H
00003
00004 #include "player_driver.h"
00005
00006 class Interface
00007 {
00008 public:
00009 Interface( player_device_id_t id, StgDriver* driver,ConfigFile* cf, int section );
00010
00011 virtual ~Interface( void ){ };
00012
00013 player_device_id_t id;
00014 stg_model_t* mod;
00015
00016 StgDriver* driver;
00017
00018 size_t data_len;
00019 size_t cmd_len;
00020 size_t req_qlen;
00021 size_t rep_qlen;
00022
00023
00024 virtual void Command( void* buffer, size_t len ){};
00025 virtual void Configure( void* client, void* buffer, size_t len ){};
00026 virtual void Publish( void ){};
00027 };
00028
00029
00030 class InterfaceSimulation : public Interface
00031 {
00032 public:
00033 InterfaceSimulation( player_device_id_t id, StgDriver* driver,ConfigFile* cf, int section );
00034 virtual ~InterfaceSimulation( void ){ };
00035
00036
00037 virtual void Configure( void* client, void* buffer, size_t len );
00038 };
00039
00040
00041 class InterfaceModel : public Interface
00042 {
00043 public:
00044 InterfaceModel( player_device_id_t id,
00045 StgDriver* driver,
00046 ConfigFile* cf,
00047 int section,
00048 stg_model_type_t modtype );
00049
00050 virtual ~InterfaceModel( void ){ };
00051 };
00052
00053 class InterfacePosition : public InterfaceModel
00054 {
00055 public:
00056 InterfacePosition( player_device_id_t id, StgDriver* driver, ConfigFile* cf, int section );
00057 virtual ~InterfacePosition( void ){ };
00058 virtual void Command( void* buffer, size_t len );
00059 virtual void Configure( void* client, void* buffer, size_t len );
00060 virtual void Publish( void );
00061 };
00062
00063 class InterfaceLaser : public InterfaceModel
00064 {
00065 public:
00066 InterfaceLaser( player_device_id_t id, StgDriver* driver, ConfigFile* cf, int section );
00067 virtual ~InterfaceLaser( void ){ };
00068
00069 virtual void Configure( void* client, void* buffer, size_t len );
00070 virtual void Publish( void );
00071 };
00072
00073 class InterfaceFiducial : public InterfaceModel
00074 {
00075 public:
00076 InterfaceFiducial( player_device_id_t id, StgDriver* driver, ConfigFile* cf, int section );
00077 virtual ~InterfaceFiducial( void ){ };
00078
00079 virtual void Configure( void* client, void* buffer, size_t len );
00080 virtual void Publish( void );
00081 };
00082
00083 class InterfaceBlobfinder : public InterfaceModel
00084 {
00085 public:
00086 InterfaceBlobfinder( player_device_id_t id, StgDriver* driver, ConfigFile* cf, int section );
00087 virtual ~InterfaceBlobfinder( void ){ };
00088
00089 virtual void Configure( void* client, void* buffer, size_t len );
00090 virtual void Publish( void );
00091 };
00092
00093 class InterfaceSonar : public InterfaceModel
00094 {
00095 public:
00096 InterfaceSonar( player_device_id_t id, StgDriver* driver, ConfigFile* cf, int section );
00097 virtual ~InterfaceSonar( void ){ };
00098
00099 virtual void Configure( void* client, void* buffer, size_t len );
00100 virtual void Publish( void );
00101 };
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155 #endif