ifw-fcf  5.0.0-pre2
piezoLcsIf.hpp
Go to the documentation of this file.
1 
10 #ifndef DEVMGR_DEVICE_PIEZO_IF_HPP
11 #define DEVMGR_DEVICE_PIEZO_IF_HPP
12 
13 #include <unordered_map>
14 
15 #include <yaml-cpp/yaml.h>
19 
20 #include <Fcfif.hpp>
21 #include <rad/mal/publisher.hpp>
22 
23 namespace fcf::devmgr::piezo {
24 
25 
34  public:
36  virtual ~PiezoControllerData();
37 
38  inline std::string GetErrorText() const;
39  void SetData(const PiezoControllerData& data);
40  void SetPosBit(short axis, int value);
41  void SetPosUser(short axis, double value);
42  int GetPosBit(short axis) const;
43  double GetPosUser(short axis) const;
44  inline virtual std::string GetSubstateStr() const;
45 
46  protected:
47  std::vector<int> m_pos_bit;
48  std::vector<double> m_pos_user;
49 
50 
51  };
52 
53 
54 
69  {
70 
71  // enumerations for Piezo status
72  enum {
73  STAT_LOCAL = 1,
74  STAT_ERROR = 2,
75  STAT_HW_STATUS = 3,
76  STAT_STATE = 4,
77  STAT_SUBSTATE = 5,
78  STAT_BIT1,
79  STAT_BIT2,
80  STAT_BIT3,
81  STAT_POS1,
82  STAT_POS2,
83  STAT_POS3,
84  STAT_MON_BIT1,
85  STAT_MON_BIT2,
86  STAT_MON_BIT3,
87  STAT_MON_POS1,
88  STAT_MON_POS2,
89  STAT_MON_POS3
90  };
91 
92  public:
101  PiezoLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
103 
104 
108  virtual ~PiezoLcsIf() = default;
109 
110 
119  virtual void InitObject();
120 
132  bool IsInAuto() const;
133 
138  bool IsInPos() const;
139 
140  void Auto();
141 
148  void Home();
149 
156  void Pos();
157 
167  void MoveBits(short bit1, short bit2, short bit3);
168 
178  void MoveUser(double pos1, double pos2, double pos3);
179 
188  virtual void ReadStatus(PiezoControllerData& status);
189 
190 
202  void Listener(protocol::base::VectorVariant& params);
203 
209  virtual std::string GetRpcError(const short error_code) const;
210 
211 
212  private:
213 
214 
215 
216  protected:
217  std::vector<int> m_pos_bit {0,0,0};
218  std::vector<double> m_pos_user {0.0, 0.0, 0.0};
219 
220 
221  private:
222  log4cplus::Logger m_logger;
223 
224 
225  };
226 
227 } //namespace
228 
229 #include "piezoLcsIf.ipp"
230 
231 #endif //DEVMGR_DEVICE_PIEZO_IF_HPP
Definition: dataContext.hpp:90
Definition: deviceLcsIf.hpp:77
Piezo Local Control System (LCS) Interface (IF) class.
Definition: piezoLcsIf.hpp:69
void Auto()
Definition: piezoLcsIf.cpp:118
virtual std::string GetRpcError(const short error_code) const
Definition: piezoLcsIf.cpp:400
bool IsInPos() const
Check if piezo is in POS state.
Definition: piezoLcsIf.cpp:105
PiezoLcsIf(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config, fcf::devmgr::common::DataContext &data_ctx)
piezoLcsIf constructor.
Definition: piezoLcsIf.cpp:43
std::vector< int > m_pos_bit
Definition: piezoLcsIf.hpp:217
void Pos()
Executes the Pos RPC.
Definition: piezoLcsIf.cpp:171
virtual void InitObject()
Initialize object.
Definition: piezoLcsIf.cpp:53
virtual ~PiezoLcsIf()=default
Default destructor.
void Listener(protocol::base::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: piezoLcsIf.cpp:312
void MoveBits(short bit1, short bit2, short bit3)
Executes the MoveBits RPC.
Definition: piezoLcsIf.cpp:198
virtual void ReadStatus(PiezoControllerData &status)
Read status from the controller.
Definition: piezoLcsIf.cpp:298
void MoveUser(double pos1, double pos2, double pos3)
Executes the MoveUser RPC.
Definition: piezoLcsIf.cpp:248
void Home()
Executes the Home RPC.
Definition: piezoLcsIf.cpp:145
std::vector< double > m_pos_user
Definition: piezoLcsIf.hpp:218
bool IsInAuto() const
Executes the Auto RPC.
Definition: piezoLcsIf.cpp:92
DataContext class header file.
deviceLcsIf class header file.
Definition: piezo.hpp:19
PiezoConfig class header file.
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:36
The piezoControllerData struct.
Definition: piezoLcsIf.hpp:33
void SetPosUser(short axis, double value)
virtual std::string GetSubstateStr() const
std::vector< int > m_pos_bit
Definition: piezoLcsIf.hpp:47
std::vector< double > m_pos_user
Definition: piezoLcsIf.hpp:48
double GetPosUser(short axis) const
void SetPosBit(short axis, int value)
virtual ~PiezoControllerData()
Definition: piezoLcsIf.cpp:35
void SetData(const PiezoControllerData &data)
Definition: piezoLcsIf.cpp:38
PiezoControllerData()
Definition: piezoLcsIf.cpp:29