* add the autotools buildsystem
[diffractometer.git] / src / PseudoAxis / PseudoAxisClass.h
blob75dd6c6ea518f2cc041d5b0fd362e24c8a56cd07
1 //=============================================================================
2 //
3 // file : PseudoAxisClass.h
4 //
5 // description : Include for the PseudoAxisClass root class.
6 // This class is represents the singleton class for
7 // the PseudoAxis device class.
8 // It contains all properties and methods which the
9 // PseudoAxis requires only once e.g. the commands.
10 //
11 // project : TANGO Device Server
13 // $Author: piccaf $
15 // $Revision: 1.3 $
17 // $Log: PseudoAxisClass.h,v $
18 // Revision 1.3 2008/09/24 08:37:48 piccaf
19 // * add dummy commandes for the Axis V2 interface
21 // Revision 1.2 2008/09/22 08:46:40 piccaf
22 // * add files from the new diffractometer Device
24 // Revision 1.3 2007/07/11 07:19:27 picca
25 // * add the "offset" and the "relativeMove" attributes to the PseudoAxes.
26 // * syntax in Kappa6C
28 // Revision 1.2 2007/05/15 08:26:58 hardion
29 // * Merge with branch DIFFRACTO_KAPPA_6C
31 // Revision 1.1.2.1 2006/08/25 15:08:22 hardion
32 // * Merge corrections of hubert
33 // * Create directory for each class of device
34 // * Fix problem when PseudoAxis is initialized on first
35 // * Tested on diffabs for the communication part
37 // Revision 1.2 2006/07/06 10:29:44 hardion
38 // * commit to keep modification about Pseudo axis management but it doesn't work ( Error Check the wavelength)
39 // try to come back to old version to see if the problem persists
41 // Revision 1.1 2006/03/29 16:45:47 hardion
42 // * Add PseudoAxis device
43 // * Add DiffractometerFactory which associates Diffracto and PseudoAxis
46 // copyleft : European Synchrotron Radiation Facility
47 // BP 220, Grenoble 38043
48 // FRANCE
50 //=============================================================================
52 // This file is generated by POGO
53 // (Program Obviously used to Generate tango Object)
55 // (c) - Software Engineering Group - ESRF
56 //=============================================================================
58 #ifndef _PSEUDOAXISCLASS_H
59 #define _PSEUDOAXISCLASS_H
61 #include <tango.h>
62 #include <PseudoAxis.h>
65 namespace PseudoAxis_ns
67 //=====================================
68 // Define classes for attributes
69 //=====================================
70 class modeNamesAttrib: public Tango::SpectrumAttr
72 public:
73 modeNamesAttrib():SpectrumAttr("modeNames", Tango::DEV_STRING, Tango::READ, 100) {};
74 ~modeNamesAttrib() {};
76 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
77 {(static_cast<PseudoAxis *>(dev))->read_modeNames(att);}
78 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
79 {return (static_cast<PseudoAxis *>(dev))->is_modeNames_allowed(ty);}
82 class modeAttrib: public Tango::Attr
84 public:
85 modeAttrib():Attr("mode", Tango::DEV_STRING, Tango::READ_WRITE) {};
86 ~modeAttrib() {};
88 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
89 {(static_cast<PseudoAxis *>(dev))->read_mode(att);}
90 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
91 {(static_cast<PseudoAxis *>(dev))->write_mode(att);}
92 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
93 {return (static_cast<PseudoAxis *>(dev))->is_mode_allowed(ty);}
96 class relativeMoveAttrib: public Tango::Attr
98 public:
99 relativeMoveAttrib():Attr("relativeMove", Tango::DEV_DOUBLE, Tango::WRITE) {};
100 ~relativeMoveAttrib() {};
102 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
103 {(static_cast<PseudoAxis *>(dev))->read_relativeMove(att);}
104 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
105 {(static_cast<PseudoAxis *>(dev))->write_relativeMove(att);}
106 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
107 {return (static_cast<PseudoAxis *>(dev))->is_relativeMove_allowed(ty);}
110 class IsInitialisedAttrib: public Tango::Attr
112 public:
113 IsInitialisedAttrib():Attr("IsInitialised", Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
114 ~IsInitialisedAttrib() {};
116 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
117 {(static_cast<PseudoAxis *>(dev))->read_IsInitialised(att);}
118 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
119 {(static_cast<PseudoAxis *>(dev))->write_IsInitialised(att);}
120 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
121 {return (static_cast<PseudoAxis *>(dev))->is_IsInitialised_allowed(ty);}
124 class offsetAttrib: public Tango::Attr
126 public:
127 offsetAttrib():Attr("offset", Tango::DEV_DOUBLE, Tango::READ_WRITE) {};
128 ~offsetAttrib() {};
130 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
131 {(static_cast<PseudoAxis *>(dev))->read_offset(att);}
132 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
133 {(static_cast<PseudoAxis *>(dev))->write_offset(att);}
134 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
135 {return (static_cast<PseudoAxis *>(dev))->is_offset_allowed(ty);}
138 class positionAttrib: public Tango::Attr
140 public:
141 positionAttrib():Attr("position", Tango::DEV_DOUBLE, Tango::READ_WRITE) {};
142 ~positionAttrib() {};
144 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
145 {(static_cast<PseudoAxis *>(dev))->read_position(att);}
146 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
147 {(static_cast<PseudoAxis *>(dev))->write_position(att);}
148 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
149 {return (static_cast<PseudoAxis *>(dev))->is_position_allowed(ty);}
152 //=========================================
153 // Define classes for commands
154 //=========================================
155 class SetModeParametersClass : public Tango::Command
157 public:
158 SetModeParametersClass(const char *name,
159 Tango::CmdArgType in,
160 Tango::CmdArgType out,
161 const char *in_desc,
162 const char *out_desc,
163 Tango::DispLevel level)
164 :Command(name,in,out,in_desc,out_desc, level) {};
166 SetModeParametersClass(const char *name,
167 Tango::CmdArgType in,
168 Tango::CmdArgType out)
169 :Command(name,in,out) {};
170 ~SetModeParametersClass() {};
172 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
173 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
174 {return (static_cast<PseudoAxis *>(dev))->is_SetModeParameters_allowed(any);}
179 class GetModeParametersClass : public Tango::Command
181 public:
182 GetModeParametersClass(const char *name,
183 Tango::CmdArgType in,
184 Tango::CmdArgType out,
185 const char *in_desc,
186 const char *out_desc,
187 Tango::DispLevel level)
188 :Command(name,in,out,in_desc,out_desc, level) {};
190 GetModeParametersClass(const char *name,
191 Tango::CmdArgType in,
192 Tango::CmdArgType out)
193 :Command(name,in,out) {};
194 ~GetModeParametersClass() {};
196 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
197 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
198 {return (static_cast<PseudoAxis *>(dev))->is_GetModeParameters_allowed(any);}
203 class InitializeReferencePositionCmd : public Tango::Command
205 public:
206 InitializeReferencePositionCmd(const char *name,
207 Tango::CmdArgType in,
208 Tango::CmdArgType out,
209 const char *in_desc,
210 const char *out_desc,
211 Tango::DispLevel level)
212 :Command(name,in,out,in_desc,out_desc, level) {};
214 InitializeReferencePositionCmd(const char *name,
215 Tango::CmdArgType in,
216 Tango::CmdArgType out)
217 :Command(name,in,out) {};
218 ~InitializeReferencePositionCmd() {};
220 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
221 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
222 {return (static_cast<PseudoAxis *>(dev))->is_InitializeReferencePosition_allowed(any);}
227 class DefinePositionCmd : public Tango::Command
229 public:
230 DefinePositionCmd(const char *name,
231 Tango::CmdArgType in,
232 Tango::CmdArgType out,
233 const char *in_desc,
234 const char *out_desc,
235 Tango::DispLevel level)
236 :Command(name,in,out,in_desc,out_desc, level) {};
238 DefinePositionCmd(const char *name,
239 Tango::CmdArgType in,
240 Tango::CmdArgType out)
241 :Command(name,in,out) {};
242 ~DefinePositionCmd() {};
244 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
245 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
246 {return (static_cast<PseudoAxis *>(dev))->is_DefinePosition_allowed(any);}
251 class ForwardCmd : public Tango::Command
253 public:
254 ForwardCmd(const char *name,
255 Tango::CmdArgType in,
256 Tango::CmdArgType out,
257 const char *in_desc,
258 const char *out_desc,
259 Tango::DispLevel level)
260 :Command(name,in,out,in_desc,out_desc, level) {};
262 ForwardCmd(const char *name,
263 Tango::CmdArgType in,
264 Tango::CmdArgType out)
265 :Command(name,in,out) {};
266 ~ForwardCmd() {};
268 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
269 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
270 {return (static_cast<PseudoAxis *>(dev))->is_Forward_allowed(any);}
275 class BackwardClass : public Tango::Command
277 public:
278 BackwardClass(const char *name,
279 Tango::CmdArgType in,
280 Tango::CmdArgType out,
281 const char *in_desc,
282 const char *out_desc,
283 Tango::DispLevel level)
284 :Command(name,in,out,in_desc,out_desc, level) {};
286 BackwardClass(const char *name,
287 Tango::CmdArgType in,
288 Tango::CmdArgType out)
289 :Command(name,in,out) {};
290 ~BackwardClass() {};
292 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
293 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
294 {return (static_cast<PseudoAxis *>(dev))->is_Backward_allowed(any);}
299 class ComputeNewOffsetCmd : public Tango::Command
301 public:
302 ComputeNewOffsetCmd(const char *name,
303 Tango::CmdArgType in,
304 Tango::CmdArgType out,
305 const char *in_desc,
306 const char *out_desc,
307 Tango::DispLevel level)
308 :Command(name,in,out,in_desc,out_desc, level) {};
310 ComputeNewOffsetCmd(const char *name,
311 Tango::CmdArgType in,
312 Tango::CmdArgType out)
313 :Command(name,in,out) {};
314 ~ComputeNewOffsetCmd() {};
316 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
317 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
318 {return (static_cast<PseudoAxis *>(dev))->is_ComputeNewOffset_allowed(any);}
323 class MotorInitCmd : public Tango::Command
325 public:
326 MotorInitCmd(const char *name,
327 Tango::CmdArgType in,
328 Tango::CmdArgType out,
329 const char *in_desc,
330 const char *out_desc,
331 Tango::DispLevel level)
332 :Command(name,in,out,in_desc,out_desc, level) {};
334 MotorInitCmd(const char *name,
335 Tango::CmdArgType in,
336 Tango::CmdArgType out)
337 :Command(name,in,out) {};
338 ~MotorInitCmd() {};
340 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
341 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
342 {return (static_cast<PseudoAxis *>(dev))->is_MotorInit_allowed(any);}
347 class MotorONCmd : public Tango::Command
349 public:
350 MotorONCmd(const char *name,
351 Tango::CmdArgType in,
352 Tango::CmdArgType out,
353 const char *in_desc,
354 const char *out_desc,
355 Tango::DispLevel level)
356 :Command(name,in,out,in_desc,out_desc, level) {};
358 MotorONCmd(const char *name,
359 Tango::CmdArgType in,
360 Tango::CmdArgType out)
361 :Command(name,in,out) {};
362 ~MotorONCmd() {};
364 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
365 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
366 {return (static_cast<PseudoAxis *>(dev))->is_MotorON_allowed(any);}
371 class MotorOFFCmd : public Tango::Command
373 public:
374 MotorOFFCmd(const char *name,
375 Tango::CmdArgType in,
376 Tango::CmdArgType out,
377 const char *in_desc,
378 const char *out_desc,
379 Tango::DispLevel level)
380 :Command(name,in,out,in_desc,out_desc, level) {};
382 MotorOFFCmd(const char *name,
383 Tango::CmdArgType in,
384 Tango::CmdArgType out)
385 :Command(name,in,out) {};
386 ~MotorOFFCmd() {};
388 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
389 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
390 {return (static_cast<PseudoAxis *>(dev))->is_MotorOFF_allowed(any);}
395 class StopCmd : public Tango::Command
397 public:
398 StopCmd(const char *name,
399 Tango::CmdArgType in,
400 Tango::CmdArgType out,
401 const char *in_desc,
402 const char *out_desc,
403 Tango::DispLevel level)
404 :Command(name,in,out,in_desc,out_desc, level) {};
406 StopCmd(const char *name,
407 Tango::CmdArgType in,
408 Tango::CmdArgType out)
409 :Command(name,in,out) {};
410 ~StopCmd() {};
412 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
413 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
414 {return (static_cast<PseudoAxis *>(dev))->is_Stop_allowed(any);}
420 // The PseudoAxisClass singleton definition
423 class PseudoAxisClass : public Tango::DeviceClass
425 public:
426 // properties member data
428 // add your own data members here
429 //------------------------------------
431 public:
432 Tango::DbData cl_prop;
433 Tango::DbData cl_def_prop;
434 Tango::DbData dev_def_prop;
436 // Method prototypes
437 static PseudoAxisClass *init(const char *);
438 static PseudoAxisClass *instance();
439 ~PseudoAxisClass();
440 Tango::DbDatum get_class_property(string &);
441 Tango::DbDatum get_default_device_property(string &);
442 Tango::DbDatum get_default_class_property(string &);
444 protected:
445 PseudoAxisClass(string &);
446 static PseudoAxisClass *_instance;
447 void command_factory();
448 void get_class_property();
449 void attribute_factory(vector<Tango::Attr *> &);
450 void write_class_property();
451 void set_default_property();
453 private:
454 void device_factory(const Tango::DevVarStringArray *);
458 } // namespace PseudoAxis_ns
460 #endif // _PSEUDOAXISCLASS_H