ifw-fcf 6.0.0
Loading...
Searching...
No Matches
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
23namespace 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:87
Piezo Local Control System (LCS) Interface (IF) class.
Definition: piezoLcsIf.hpp:69
void Auto()
Definition: piezoLcsIf.cpp:119
virtual std::string GetRpcError(const short error_code) const
Definition: piezoLcsIf.cpp:395
bool IsInPos() const
Check if piezo is in POS state.
Definition: piezoLcsIf.cpp:106
std::vector< int > m_pos_bit
Definition: piezoLcsIf.hpp:217
void Pos()
Executes the Pos RPC.
Definition: piezoLcsIf.cpp:172
virtual void InitObject()
Initialize object.
Definition: piezoLcsIf.cpp:54
virtual ~PiezoLcsIf()=default
Default destructor.
void Listener(protocol::base::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: piezoLcsIf.cpp:313
void MoveBits(short bit1, short bit2, short bit3)
Executes the MoveBits RPC.
Definition: piezoLcsIf.cpp:199
virtual void ReadStatus(PiezoControllerData &status)
Read status from the controller.
Definition: piezoLcsIf.cpp:299
void MoveUser(double pos1, double pos2, double pos3)
Executes the MoveUser RPC.
Definition: piezoLcsIf.cpp:249
void Home()
Executes the Home RPC.
Definition: piezoLcsIf.cpp:146
std::vector< double > m_pos_user
Definition: piezoLcsIf.hpp:218
bool IsInAuto() const
Executes the Auto RPC.
Definition: piezoLcsIf.cpp:93
DataContext class header file.
deviceLcsIf class header file.
Definition: piezo.hpp:19
PiezoConfig class header file.
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:46
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:36
void SetData(const PiezoControllerData &data)
Definition: piezoLcsIf.cpp:39
PiezoControllerData()
Definition: piezoLcsIf.cpp:30