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 modeAttrib
: public Tango::Attr
85 modeAttrib():Attr("mode", Tango::DEV_STRING
, Tango::READ_WRITE
) {};
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
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
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
127 offsetAttrib():Attr("offset", Tango::DEV_DOUBLE
, Tango::READ_WRITE
) {};
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
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
158 SetModeParametersClass(const char *name
,
159 Tango::CmdArgType in
,
160 Tango::CmdArgType out
,
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
182 GetModeParametersClass(const char *name
,
183 Tango::CmdArgType in
,
184 Tango::CmdArgType out
,
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
206 InitializeReferencePositionCmd(const char *name
,
207 Tango::CmdArgType in
,
208 Tango::CmdArgType out
,
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
230 DefinePositionCmd(const char *name
,
231 Tango::CmdArgType in
,
232 Tango::CmdArgType out
,
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
254 ForwardCmd(const char *name
,
255 Tango::CmdArgType in
,
256 Tango::CmdArgType out
,
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
) {};
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
278 BackwardClass(const char *name
,
279 Tango::CmdArgType in
,
280 Tango::CmdArgType out
,
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
) {};
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
302 ComputeNewOffsetCmd(const char *name
,
303 Tango::CmdArgType in
,
304 Tango::CmdArgType out
,
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
326 MotorInitCmd(const char *name
,
327 Tango::CmdArgType in
,
328 Tango::CmdArgType out
,
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
) {};
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
350 MotorONCmd(const char *name
,
351 Tango::CmdArgType in
,
352 Tango::CmdArgType out
,
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
) {};
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
374 MotorOFFCmd(const char *name
,
375 Tango::CmdArgType in
,
376 Tango::CmdArgType out
,
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
) {};
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
398 StopCmd(const char *name
,
399 Tango::CmdArgType in
,
400 Tango::CmdArgType out
,
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
) {};
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
426 // properties member data
428 // add your own data members here
429 //------------------------------------
432 Tango::DbData cl_prop
;
433 Tango::DbData cl_def_prop
;
434 Tango::DbData dev_def_prop
;
437 static PseudoAxisClass
*init(const char *);
438 static PseudoAxisClass
*instance();
440 Tango::DbDatum
get_class_property(string
&);
441 Tango::DbDatum
get_default_device_property(string
&);
442 Tango::DbDatum
get_default_class_property(string
&);
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();
454 void device_factory(const Tango::DevVarStringArray
*);
458 } // namespace PseudoAxis_ns
460 #endif // _PSEUDOAXISCLASS_H