1 //=============================================================================
3 // file : PseudoAxisClass.h
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.
11 // project : TANGO Device Server
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
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
62 #include <PseudoAxis.h>
65 namespace PseudoAxis_ns
67 //=====================================
68 // Define classes for attributes
69 //=====================================
70 class modeNamesAttrib
: public Tango::SpectrumAttr
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
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
99 modeAttrib():Attr("mode", Tango::DEV_STRING
, Tango::READ_WRITE
) {};
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
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
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
141 offsetAttrib():Attr("offset", Tango::DEV_DOUBLE
, Tango::READ_WRITE
) {};
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
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
172 SetModeParametersClass(const char *name
,
173 Tango::CmdArgType in
,
174 Tango::CmdArgType out
,
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
196 GetModeParametersClass(const char *name
,
197 Tango::CmdArgType in
,
198 Tango::CmdArgType out
,
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
220 InitializeReferencePositionCmd(const char *name
,
221 Tango::CmdArgType in
,
222 Tango::CmdArgType out
,
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
244 DefinePositionCmd(const char *name
,
245 Tango::CmdArgType in
,
246 Tango::CmdArgType out
,
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
268 ForwardCmd(const char *name
,
269 Tango::CmdArgType in
,
270 Tango::CmdArgType out
,
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
) {};
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
292 BackwardClass(const char *name
,
293 Tango::CmdArgType in
,
294 Tango::CmdArgType out
,
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
) {};
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
316 ComputeNewOffsetCmd(const char *name
,
317 Tango::CmdArgType in
,
318 Tango::CmdArgType out
,
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
340 MotorInitCmd(const char *name
,
341 Tango::CmdArgType in
,
342 Tango::CmdArgType out
,
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
) {};
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
364 MotorONCmd(const char *name
,
365 Tango::CmdArgType in
,
366 Tango::CmdArgType out
,
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
) {};
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
388 MotorOFFCmd(const char *name
,
389 Tango::CmdArgType in
,
390 Tango::CmdArgType out
,
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
) {};
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
412 OnCmd(const char *name
,
413 Tango::CmdArgType in
,
414 Tango::CmdArgType out
,
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
) {};
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
436 StopCmd(const char *name
,
437 Tango::CmdArgType in
,
438 Tango::CmdArgType out
,
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
) {};
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
464 // properties member data
466 // add your own data members here
467 //------------------------------------
470 Tango::DbData cl_prop
;
471 Tango::DbData cl_def_prop
;
472 Tango::DbData dev_def_prop
;
475 static PseudoAxisClass
*init(const char *);
476 static PseudoAxisClass
*instance();
478 Tango::DbDatum
get_class_property(string
&);
479 Tango::DbDatum
get_default_device_property(string
&);
480 Tango::DbDatum
get_default_class_property(string
&);
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();
492 void device_factory(const Tango::DevVarStringArray
*);
496 } // namespace PseudoAxis_ns
498 #endif // _PSEUDOAXISCLASS_H