1 #ifndef __PSEUDOAXES_ADAPTER_H__
2 #define __PSEUDOAXES_ADAPTER_H__
6 #include "AxisAdapter.h"
10 namespace PseudoAxes_ns
{
14 namespace Diffractometer_ns
{
17 class TangoHKLAdapter
;
19 class PseudoAxesAdapter
{
20 friend class TangoHKLAdapter
;
23 PseudoAxesAdapter(TangoHKLAdapter
*hklAdapter
, size_t _idx
);
25 Matrix
<double> const & get_read(void) const {return _read
;}
26 Matrix
<double> const & get_write(void) const {return _write
;}
27 Matrix
<char*> const & get_pseudo_axis_names(void) const {return _pseudo_axis_names
;}
28 std::string
const & get_proxy_name(void) const {return _proxy_name
;}
29 Tango::DevState
const & get_state(void) const {return _state
;}
30 std::string
const & get_status(void) const {return _status
;}
32 char const * get_name(void) const;
33 void write(Matrix
<double> const & write
);
35 double & get_axis_value(size_t idx
) {return _read
.data
[idx
];}
36 void set_axis_value(size_t idx
, double value
);
38 Tango::DevString
*get_mode(void);
39 void set_mode(const Tango::DevString name
);
41 Matrix
<char *> const &get_mode_names(void) const {return _mode_names
;}
42 Matrix
<char *> &get_mode_parameters_names(void);
44 Matrix
<double> const & get_mode_parameters(void);
45 void set_mode_parameters(Matrix
<double> const & values
);
47 void set_device(PseudoAxes_ns::PseudoAxes
*device
) {_device
= device
;}
52 TangoHKLAdapter
*_hklAdapter
;
54 PseudoAxes_ns::PseudoAxes
*_device
;
56 Matrix
<double> _write
;
57 Matrix
<char *> _pseudo_axis_names
;
58 Matrix
<char *> _mode_names
;
59 Matrix
<double> _mode_parameters
;
60 Matrix
<char *> _mode_parameters_names
;
61 std::string _proxy_name
;
62 std::vector
<Tango::Attr
*> _dynamic_attribute_pseudo_axes_axis
;
63 std::vector
<AxisAdapter
*> _axes
;
64 Tango::DevState _state
;
67 void update_axes_i(HklPseudoAxisEngine
*engine
);
68 void update_state_and_status_i(void);
73 #endif // __PSEUDOAXES_ADAPTER_H__