* remove dead code.
[diffractometer.git] / src / PseudoAxisAdapter.h
blob4221771ad630e92d4b223c01e5087494c6c860b0
1 #ifndef __PSEUDOAXIS_ADAPTER_H__
2 #define __PSEUDOAXIS_ADAPTER_H__
4 #include <tango.h>
6 #include <hkl/hkl-geometry-factory.h>
7 #include <hkl/hkl-pseudoaxis-factory.h>
9 #include "AxisAdapter.h"
10 #include "Matrix.h"
12 namespace Diffractometer_ns {
14 //forwar declaration
15 class TangoHKLAdapter;
17 struct PseudoAxisConfig{
18 Tango::DevDouble position_r;
19 Tango::DevDouble position_w;
20 Tango::DevDouble offset;
21 Tango::DevBoolean initialized;
22 Tango::DevState state;
23 std::string status;
24 Tango::DevString mode;
25 Matrix<char *> mode_names;
28 class PseudoAxisAdapter {
29 friend class TangoHKLAdapter;
31 public:
32 PseudoAxisAdapter(TangoHKLAdapter & hklAdapter, HklPseudoAxis *pseudo_read, HklPseudoAxis *pseudo_write);
33 virtual ~PseudoAxisAdapter(void);
35 PseudoAxisConfig get_config(void);
37 bool is_ready(void);
39 void set_position(const Tango::DevDouble & position);
40 void set_offset(const Tango::DevDouble & offset);
41 void set_mode(Tango::DevString const & mode);
42 void set_initialized(Tango::DevBoolean initialized);
44 void get_mode_parameters(Tango::DevVarDoubleStringArray *argout);
45 void set_mode_parameters(const Tango::DevVarDoubleStringArray *argin);
46 Tango::DevDouble compute_new_offset(const Tango::DevDouble & position);
47 void on(void);
48 void stop(void);
49 private:
50 TangoHKLAdapter &_hklAdapter;
51 std::string _devicename;
52 HklPseudoAxis *_pseudo_r;
53 HklPseudoAxis *_pseudo_w;
54 PseudoAxisConfig _config;
55 std::vector<AxisAdapter *> _axes;
56 bool _ready;
58 void update(void);
59 void to_proxies(void);
64 #endif // __PSEUDOAXIS_ADAPTER_H__