1 #ifndef __PSEUDOAXES_ADAPTER_H__
2 #define __PSEUDOAXES_ADAPTER_H__
5 #include "AxisAdapter.h"
9 namespace PseudoAxes_ns
{
13 namespace Diffractometer_ns
{
16 class TangoHKLAdapter
;
18 class PseudoAxesAdapter
{
19 friend class TangoHKLAdapter
;
22 PseudoAxesAdapter(TangoHKLAdapter
*hklAdapter
, size_t _idx
);
24 virtual ~PseudoAxesAdapter(void);
26 Matrix
<double> const & get_read(void) const {return _read
;}
27 Matrix
<double> const & get_write(void) const {return _write
;}
28 Matrix
<char*> const & get_pseudo_axis_names(void) const {return _pseudo_axis_names
;}
29 std::string
const & get_proxy_name(void) const {return _proxy_name
;}
30 Tango::DevState
const & get_state(void) const {return _state
;}
31 std::string
const & get_status(void) const {return _status
;}
33 char const * get_name(void) const;
34 void write(Matrix
<double> const & write
) throw (Tango::DevFailed
);
36 double & get_axis_value(size_t idx
) {return _read
.data
[idx
];}
37 void set_axis_value(size_t idx
, double value
);
39 Tango::DevString
*get_mode(void);
40 void set_mode(const Tango::DevString name
);
42 Tango::DevBoolean
get_initialized(void);
43 void set_initialized(const Tango::DevBoolean initialized
);
45 Matrix
<char *> const &get_mode_names(void) const {return _mode_names
;}
46 Matrix
<char *> &get_mode_parameters_names(void);
48 Matrix
<double> const & get_mode_parameters(void);
49 void set_mode_parameters(Matrix
<double> const & values
);
51 void set_device(PseudoAxes_ns::PseudoAxes
*device
) {_device
= device
;}
57 void add_dynamic_attributes(void);
58 void remove_dynamic_attributes(void);
61 TangoHKLAdapter
*_hklAdapter
;
63 PseudoAxes_ns::PseudoAxes
*_device
;
65 Matrix
<double> _write
;
66 Matrix
<char *> _pseudo_axis_names
;
67 Matrix
<char *> _mode_names
;
68 Matrix
<double> _mode_parameters
;
69 Matrix
<char *> _mode_parameters_names
;
70 std::string _proxy_name
;
71 std::vector
<Tango::Attr
*> _dynamic_attribute_pseudo_axes_axis
;
72 std::vector
<AxisAdapter
*> _axes
;
73 Tango::DevState _state
;
76 void update_axes_i(HklPseudoAxisEngine
*engine
);
77 void update_state_and_status_i(void);
83 #endif // __PSEUDOAXES_ADAPTER_H__