* idem for the state and status.
[diffractometer.git] / src / PseudoAxis / PseudoAxisClass.h
blobbce8deeb3aeb276515b787e4d9f8590815b09be9
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 IsInitialisedAttrib: public Tango::Attr
84 public:
85 IsInitialisedAttrib():Attr("IsInitialised", Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
86 ~IsInitialisedAttrib() {};
88 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
89 {(static_cast<PseudoAxis *>(dev))->read_IsInitialised(att);}
90 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
91 {(static_cast<PseudoAxis *>(dev))->write_IsInitialised(att);}
92 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
93 {return (static_cast<PseudoAxis *>(dev))->is_IsInitialised_allowed(ty);}
96 class modeAttrib: public Tango::Attr
98 public:
99 modeAttrib():Attr("mode", Tango::DEV_STRING, Tango::READ_WRITE) {};
100 ~modeAttrib() {};
102 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
103 {(static_cast<PseudoAxis *>(dev))->read_mode(att);}
104 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
105 {(static_cast<PseudoAxis *>(dev))->write_mode(att);}
106 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
107 {return (static_cast<PseudoAxis *>(dev))->is_mode_allowed(ty);}
110 class relativeMoveAttrib: public Tango::Attr
112 public:
113 relativeMoveAttrib():Attr("relativeMove", Tango::DEV_DOUBLE, Tango::WRITE) {};
114 ~relativeMoveAttrib() {};
116 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
117 {(static_cast<PseudoAxis *>(dev))->read_relativeMove(att);}
118 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
119 {(static_cast<PseudoAxis *>(dev))->write_relativeMove(att);}
120 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
121 {return (static_cast<PseudoAxis *>(dev))->is_relativeMove_allowed(ty);}
124 class initializedAttrib: public Tango::Attr
126 public:
127 initializedAttrib():Attr("initialized", Tango::DEV_BOOLEAN, Tango::READ_WRITE) {};
128 ~initializedAttrib() {};
130 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
131 {(static_cast<PseudoAxis *>(dev))->read_initialized(att);}
132 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
133 {(static_cast<PseudoAxis *>(dev))->write_initialized(att);}
134 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
135 {return (static_cast<PseudoAxis *>(dev))->is_initialized_allowed(ty);}
138 class offsetAttrib: public Tango::Attr
140 public:
141 offsetAttrib():Attr("offset", Tango::DEV_DOUBLE, Tango::READ_WRITE) {};
142 ~offsetAttrib() {};
144 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
145 {(static_cast<PseudoAxis *>(dev))->read_offset(att);}
146 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
147 {(static_cast<PseudoAxis *>(dev))->write_offset(att);}
148 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
149 {return (static_cast<PseudoAxis *>(dev))->is_offset_allowed(ty);}
152 class positionAttrib: public Tango::Attr
154 public:
155 positionAttrib():Attr("position", Tango::DEV_DOUBLE, Tango::READ_WRITE) {};
156 ~positionAttrib() {};
158 virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
159 {(static_cast<PseudoAxis *>(dev))->read_position(att);}
160 virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
161 {(static_cast<PseudoAxis *>(dev))->write_position(att);}
162 virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
163 {return (static_cast<PseudoAxis *>(dev))->is_position_allowed(ty);}
166 //=========================================
167 // Define classes for commands
168 //=========================================
169 class SetModeParametersClass : public Tango::Command
171 public:
172 SetModeParametersClass(const char *name,
173 Tango::CmdArgType in,
174 Tango::CmdArgType out,
175 const char *in_desc,
176 const char *out_desc,
177 Tango::DispLevel level)
178 :Command(name,in,out,in_desc,out_desc, level) {};
180 SetModeParametersClass(const char *name,
181 Tango::CmdArgType in,
182 Tango::CmdArgType out)
183 :Command(name,in,out) {};
184 ~SetModeParametersClass() {};
186 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
187 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
188 {return (static_cast<PseudoAxis *>(dev))->is_SetModeParameters_allowed(any);}
193 class GetModeParametersClass : public Tango::Command
195 public:
196 GetModeParametersClass(const char *name,
197 Tango::CmdArgType in,
198 Tango::CmdArgType out,
199 const char *in_desc,
200 const char *out_desc,
201 Tango::DispLevel level)
202 :Command(name,in,out,in_desc,out_desc, level) {};
204 GetModeParametersClass(const char *name,
205 Tango::CmdArgType in,
206 Tango::CmdArgType out)
207 :Command(name,in,out) {};
208 ~GetModeParametersClass() {};
210 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
211 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
212 {return (static_cast<PseudoAxis *>(dev))->is_GetModeParameters_allowed(any);}
217 class InitializeReferencePositionCmd : public Tango::Command
219 public:
220 InitializeReferencePositionCmd(const char *name,
221 Tango::CmdArgType in,
222 Tango::CmdArgType out,
223 const char *in_desc,
224 const char *out_desc,
225 Tango::DispLevel level)
226 :Command(name,in,out,in_desc,out_desc, level) {};
228 InitializeReferencePositionCmd(const char *name,
229 Tango::CmdArgType in,
230 Tango::CmdArgType out)
231 :Command(name,in,out) {};
232 ~InitializeReferencePositionCmd() {};
234 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
235 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
236 {return (static_cast<PseudoAxis *>(dev))->is_InitializeReferencePosition_allowed(any);}
241 class DefinePositionCmd : public Tango::Command
243 public:
244 DefinePositionCmd(const char *name,
245 Tango::CmdArgType in,
246 Tango::CmdArgType out,
247 const char *in_desc,
248 const char *out_desc,
249 Tango::DispLevel level)
250 :Command(name,in,out,in_desc,out_desc, level) {};
252 DefinePositionCmd(const char *name,
253 Tango::CmdArgType in,
254 Tango::CmdArgType out)
255 :Command(name,in,out) {};
256 ~DefinePositionCmd() {};
258 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
259 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
260 {return (static_cast<PseudoAxis *>(dev))->is_DefinePosition_allowed(any);}
265 class ForwardCmd : public Tango::Command
267 public:
268 ForwardCmd(const char *name,
269 Tango::CmdArgType in,
270 Tango::CmdArgType out,
271 const char *in_desc,
272 const char *out_desc,
273 Tango::DispLevel level)
274 :Command(name,in,out,in_desc,out_desc, level) {};
276 ForwardCmd(const char *name,
277 Tango::CmdArgType in,
278 Tango::CmdArgType out)
279 :Command(name,in,out) {};
280 ~ForwardCmd() {};
282 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
283 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
284 {return (static_cast<PseudoAxis *>(dev))->is_Forward_allowed(any);}
289 class BackwardClass : public Tango::Command
291 public:
292 BackwardClass(const char *name,
293 Tango::CmdArgType in,
294 Tango::CmdArgType out,
295 const char *in_desc,
296 const char *out_desc,
297 Tango::DispLevel level)
298 :Command(name,in,out,in_desc,out_desc, level) {};
300 BackwardClass(const char *name,
301 Tango::CmdArgType in,
302 Tango::CmdArgType out)
303 :Command(name,in,out) {};
304 ~BackwardClass() {};
306 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
307 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
308 {return (static_cast<PseudoAxis *>(dev))->is_Backward_allowed(any);}
313 class ComputeNewOffsetCmd : public Tango::Command
315 public:
316 ComputeNewOffsetCmd(const char *name,
317 Tango::CmdArgType in,
318 Tango::CmdArgType out,
319 const char *in_desc,
320 const char *out_desc,
321 Tango::DispLevel level)
322 :Command(name,in,out,in_desc,out_desc, level) {};
324 ComputeNewOffsetCmd(const char *name,
325 Tango::CmdArgType in,
326 Tango::CmdArgType out)
327 :Command(name,in,out) {};
328 ~ComputeNewOffsetCmd() {};
330 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
331 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
332 {return (static_cast<PseudoAxis *>(dev))->is_ComputeNewOffset_allowed(any);}
337 class MotorInitCmd : public Tango::Command
339 public:
340 MotorInitCmd(const char *name,
341 Tango::CmdArgType in,
342 Tango::CmdArgType out,
343 const char *in_desc,
344 const char *out_desc,
345 Tango::DispLevel level)
346 :Command(name,in,out,in_desc,out_desc, level) {};
348 MotorInitCmd(const char *name,
349 Tango::CmdArgType in,
350 Tango::CmdArgType out)
351 :Command(name,in,out) {};
352 ~MotorInitCmd() {};
354 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
355 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
356 {return (static_cast<PseudoAxis *>(dev))->is_MotorInit_allowed(any);}
361 class MotorONCmd : public Tango::Command
363 public:
364 MotorONCmd(const char *name,
365 Tango::CmdArgType in,
366 Tango::CmdArgType out,
367 const char *in_desc,
368 const char *out_desc,
369 Tango::DispLevel level)
370 :Command(name,in,out,in_desc,out_desc, level) {};
372 MotorONCmd(const char *name,
373 Tango::CmdArgType in,
374 Tango::CmdArgType out)
375 :Command(name,in,out) {};
376 ~MotorONCmd() {};
378 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
379 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
380 {return (static_cast<PseudoAxis *>(dev))->is_MotorON_allowed(any);}
385 class MotorOFFCmd : public Tango::Command
387 public:
388 MotorOFFCmd(const char *name,
389 Tango::CmdArgType in,
390 Tango::CmdArgType out,
391 const char *in_desc,
392 const char *out_desc,
393 Tango::DispLevel level)
394 :Command(name,in,out,in_desc,out_desc, level) {};
396 MotorOFFCmd(const char *name,
397 Tango::CmdArgType in,
398 Tango::CmdArgType out)
399 :Command(name,in,out) {};
400 ~MotorOFFCmd() {};
402 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
403 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
404 {return (static_cast<PseudoAxis *>(dev))->is_MotorOFF_allowed(any);}
409 class OnCmd : public Tango::Command
411 public:
412 OnCmd(const char *name,
413 Tango::CmdArgType in,
414 Tango::CmdArgType out,
415 const char *in_desc,
416 const char *out_desc,
417 Tango::DispLevel level)
418 :Command(name,in,out,in_desc,out_desc, level) {};
420 OnCmd(const char *name,
421 Tango::CmdArgType in,
422 Tango::CmdArgType out)
423 :Command(name,in,out) {};
424 ~OnCmd() {};
426 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
427 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
428 {return (static_cast<PseudoAxis *>(dev))->is_On_allowed(any);}
433 class StopCmd : public Tango::Command
435 public:
436 StopCmd(const char *name,
437 Tango::CmdArgType in,
438 Tango::CmdArgType out,
439 const char *in_desc,
440 const char *out_desc,
441 Tango::DispLevel level)
442 :Command(name,in,out,in_desc,out_desc, level) {};
444 StopCmd(const char *name,
445 Tango::CmdArgType in,
446 Tango::CmdArgType out)
447 :Command(name,in,out) {};
448 ~StopCmd() {};
450 virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any);
451 virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any)
452 {return (static_cast<PseudoAxis *>(dev))->is_Stop_allowed(any);}
458 // The PseudoAxisClass singleton definition
461 class PseudoAxisClass : public Tango::DeviceClass
463 public:
464 // properties member data
466 // add your own data members here
467 //------------------------------------
469 public:
470 Tango::DbData cl_prop;
471 Tango::DbData cl_def_prop;
472 Tango::DbData dev_def_prop;
474 // Method prototypes
475 static PseudoAxisClass *init(const char *);
476 static PseudoAxisClass *instance();
477 ~PseudoAxisClass();
478 Tango::DbDatum get_class_property(string &);
479 Tango::DbDatum get_default_device_property(string &);
480 Tango::DbDatum get_default_class_property(string &);
482 protected:
483 PseudoAxisClass(string &);
484 static PseudoAxisClass *_instance;
485 void command_factory();
486 void get_class_property();
487 void attribute_factory(vector<Tango::Attr *> &);
488 void write_class_property();
489 void set_default_property();
491 private:
492 void device_factory(const Tango::DevVarStringArray *);
496 } // namespace PseudoAxis_ns
498 #endif // _PSEUDOAXISCLASS_H