00001
00002 #ifndef __DSME_INFO_ADAPTER_HH__
00003 #define __DSME_INFO_ADAPTER_HH__
00004
00014 #include <accdata.hh>
00015 #include <accvector.hh>
00016 #include <accdevexception.hh>
00017
00018
00019
00020 using std::auto_ptr;
00021
00022 namespace DeviceAccess
00023 {
00024 namespace EqModDSME
00025 {
00026
00037 class E_API INFODataAdapter
00038 {
00039 public:
00040
00041 static auto_ptr<const INFODataAdapter> createRcvP(const DeviceAccess::AccData& data)
00042 {
00043 if (data.size()>20) {
00044 throw(AccDevException(ODA_MOREDATA,ODA_OK,ACCDEV_ERRORLOCATION));
00045 }
00046 DeviceAccess::AccData& mutual_data = const_cast<DeviceAccess::AccData&>(data);
00047 return auto_ptr<const INFODataAdapter>(new INFODataAdapter(mutual_data,0));
00048 }
00049
00050 static auto_ptr<INFODataAdapter> createSndP(DeviceAccess::AccData& data)
00051 {
00052 data.assign(20,Float32());
00053
00054 auto_ptr<INFODataAdapter> p(new INFODataAdapter(data,0));
00055 p->init();
00056 return p;
00057 }
00058
00060 Float32 mrot1() const {
00061 return (*_ptr)[_offset+0].convert(Float32());
00062 }
00063
00065 void mrot1(Float32 val) {
00066 (*_ptr)[_offset+0] = val;
00067 }
00068
00070 Float32 mrot2() const {
00071 return (*_ptr)[_offset+1].convert(Float32());
00072 }
00073
00075 void mrot2(Float32 val) {
00076 (*_ptr)[_offset+1] = val;
00077 }
00078
00080 Float32 mrot3() const {
00081 return (*_ptr)[_offset+2].convert(Float32());
00082 }
00083
00085 void mrot3(Float32 val) {
00086 (*_ptr)[_offset+2] = val;
00087 }
00088
00090 Float32 mrot4() const {
00091 return (*_ptr)[_offset+3].convert(Float32());
00092 }
00093
00095 void mrot4(Float32 val) {
00096 (*_ptr)[_offset+3] = val;
00097 }
00098
00100 Float32 potlength() const {
00101 return (*_ptr)[_offset+4].convert(Float32());
00102 }
00103
00105 void potlength(Float32 val) {
00106 (*_ptr)[_offset+4] = val;
00107 }
00108
00110 Float32 steps() const {
00111 return (*_ptr)[_offset+5].convert(Float32());
00112 }
00113
00115 void steps(Float32 val) {
00116 (*_ptr)[_offset+5] = val;
00117 }
00118
00120 Float32 kathmin() const {
00121 return (*_ptr)[_offset+6].convert(Float32());
00122 }
00123
00125 void kathmin(Float32 val) {
00126 (*_ptr)[_offset+6] = val;
00127 }
00128
00130 Float32 kathmax() const {
00131 return (*_ptr)[_offset+7].convert(Float32());
00132 }
00133
00135 void kathmax(Float32 val) {
00136 (*_ptr)[_offset+7] = val;
00137 }
00138
00140 Float32 anodmin() const {
00141 return (*_ptr)[_offset+8].convert(Float32());
00142 }
00143
00145 void anodmin(Float32 val) {
00146 (*_ptr)[_offset+8] = val;
00147 }
00148
00150 Float32 anodmax() const {
00151 return (*_ptr)[_offset+9].convert(Float32());
00152 }
00153
00155 void anodmax(Float32 val) {
00156 (*_ptr)[_offset+9] = val;
00157 }
00158
00160 Float32 acc() const {
00161 return (*_ptr)[_offset+10].convert(Float32());
00162 }
00163
00165 void acc(Float32 val) {
00166 (*_ptr)[_offset+10] = val;
00167 }
00168
00170 Float32 velo() const {
00171 return (*_ptr)[_offset+11].convert(Float32());
00172 }
00173
00175 void velo(Float32 val) {
00176 (*_ptr)[_offset+11] = val;
00177 }
00178
00180 Float32 offset1() const {
00181 return (*_ptr)[_offset+12].convert(Float32());
00182 }
00183
00185 void offset1(Float32 val) {
00186 (*_ptr)[_offset+12] = val;
00187 }
00188
00190 Float32 offset2() const {
00191 return (*_ptr)[_offset+13].convert(Float32());
00192 }
00193
00195 void offset2(Float32 val) {
00196 (*_ptr)[_offset+13] = val;
00197 }
00198
00200 Float32 offset3() const {
00201 return (*_ptr)[_offset+14].convert(Float32());
00202 }
00203
00205 void offset3(Float32 val) {
00206 (*_ptr)[_offset+14] = val;
00207 }
00208
00210 Float32 offset4() const {
00211 return (*_ptr)[_offset+15].convert(Float32());
00212 }
00213
00215 void offset4(Float32 val) {
00216 (*_ptr)[_offset+15] = val;
00217 }
00218
00220 Float32 volts1() const {
00221 return (*_ptr)[_offset+16].convert(Float32());
00222 }
00223
00225 void volts1(Float32 val) {
00226 (*_ptr)[_offset+16] = val;
00227 }
00228
00230 Float32 volts2() const {
00231 return (*_ptr)[_offset+17].convert(Float32());
00232 }
00233
00235 void volts2(Float32 val) {
00236 (*_ptr)[_offset+17] = val;
00237 }
00238
00240 Float32 volts3() const {
00241 return (*_ptr)[_offset+18].convert(Float32());
00242 }
00243
00245 void volts3(Float32 val) {
00246 (*_ptr)[_offset+18] = val;
00247 }
00248
00250 Float32 volts4() const {
00251 return (*_ptr)[_offset+19].convert(Float32());
00252 }
00253
00255 void volts4(Float32 val) {
00256 (*_ptr)[_offset+19] = val;
00257 }
00258
00259
00261 INFODataAdapter(DeviceAccess::AccData& data, size_t offset=0) : _ptr(&data), _offset(offset)
00262 {
00263 }
00264
00266 void init() {
00267
00268 }
00269
00270
00271
00272 private:
00273 DeviceAccess::AccData* _ptr;
00274 size_t _offset;
00275 };
00276
00278 typedef INFODataAdapter ReadINFODataAdapter;
00279
00281 typedef auto_ptr<ReadINFODataAdapter> ReadINFODataP;
00282
00286 }
00287 }
00288
00289 #endif