ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
adcLcsIf.hpp
Go to the documentation of this file.
1
7
8#ifndef FCF_DEVMGR_DEVICE_ADC_IF_HPP
9#define FCF_DEVMGR_DEVICE_ADC_IF_HPP
10
11#include <unordered_map>
12
13#include <yaml-cpp/yaml.h>
17
18
19namespace ifw::fcf::devmgr::adc {
20
29 public:
31 virtual ~AdcControllerData();
32
33 void SetData(const AdcControllerData& data);
34
35 inline virtual std::string GetErrorText() const;
36 inline virtual std::string GetSubstateStr() const;
37
38 inline short GetTrackingMode() const;
39 inline std::string GetTrackingModeStr() const;
40 inline void SetTrackingMode(short mode);
41
42 inline double GetAlpha() const;
43 inline void SetAlpha(double alpha);
44
45 inline double GetDelta() const;
46 inline void SetDelta(double delta);
47
49
50 inline void ClearMotors();
51
52 inline void AddMotor(const std::string motor,
54
55 inline void GetMotorNames(std::vector<std::string>& motor_vector);
56
57 private:
58 short m_tracking_mode {};
59 double m_alpha {};
60 double m_delta {};
61
62 std::map<std::string, fcf::devmgr::motor::MotorControllerData> m_motors;
63 };
64
65
66
81
82 // enumerations for Adc status
83 enum {
84 STAT_LOCAL = 100,
85 STAT_ERROR = 101,
86 STAT_STATE = 102,
87 STAT_SUBSTATE = 103,
88 STAT_TRACK_MODE = 104,
89 STAT_ALPHA = 105,
90 STAT_DELTA = 106
91 };
92
93 public:
103 AdcLcsIf(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config,
105
109 virtual ~AdcLcsIf() {};
110
119 virtual void InitObject();
120
126 virtual void Init();
127
128 std::optional<double> GetTargetInUserUnits(int axis_id, double value);
129 void UpdateTargetPosition(int axis_id, double position, std::string move_type);
136 void MoveAbs(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
137
144 void MoveRel(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
145
146 void MoveEncAbs(int axis_id, long int encoders);
147
148 void MoveEncRel(int axis_id, long int encoders);
158 void MoveVel(int axis_id, double velocity);
159
160
161
167 void StartTrack(const double& angle);
168
172 void StopTrack();
173
178 void MoveAngle(const double& angle, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
179
184 bool IsTracking() const;
185
190 bool IsMoving() const;
191
197 bool IsInPosition(const int axis = -1) const;
198
203 bool IsStandstill() const;
204
205
212
213 std::string GetMotorMapValue(std::string motor, std::string category, std::string key);
214
215
216
217
226 virtual void ReadStatus(AdcControllerData& status);
227
229 void StopTrackMonitoring();
230
242 void Listener(const ifw::fnd::defs::Notification& note);
243
249 virtual std::string GetRpcError(const short error_code) const;
250
251 protected:
252
258
259 private:
260
261
269 void StoreMotorPosition(const std::string nodeid_prefix,
270 const ifw::fnd::defs::Value& value,
271 int attribute);
272
273 void StoreMotorAttribute(const std::string nodeid_prefix,
274 const ifw::fnd::defs::Value& value,
275 int attribute);
276
277 void MovePos(int axis_id, double position, double velocity,
278 std::string move_type=ifw::fcf::devmgr::motor::RPC_MOVE_ABS);
279
280 private:
282 std::vector<std::string> m_monitor_track_vector;
283 //std::map<std::string, int> m_motor_index;
287 std::unique_ptr<elt::configng::CiiConfigDocument> m_motor_map_doc;
288
289 double m_mot_actual_pos {0.0};
290 double m_mot_actual_pos_axis[2] {0.0,0.0};
291 double m_alpha {};
292 double m_delta {};
293 short m_track_mode {};
294
295 std::map<std::string, fcf::devmgr::motor::MotorControllerData> m_motors_status;
296
297 private:
298 log4cplus::Logger m_logger;
299 };
300
301}
302
303#include "adcLcsIf.ipp"
304
305#endif //FCF_DEVMGR_DEVICE_ADC_IF_HPP
m_logger(log4cplus::Logger::getInstance(LOGGER_NAME))
Definition {{cookiecutter.device_name}}.cpp:29
void Listener(const ifw::fnd::defs::Notification &note)
Callback to manage changes on the monitored items.
Definition adcLcsIf.cpp:698
virtual void ReadStatus(AdcControllerData &status)
Read status from the controller.
Definition adcLcsIf.cpp:551
bool IsMoving() const
IsMoving.
Definition adcLcsIf.cpp:614
virtual ~AdcLcsIf()
Default destructor.
Definition adcLcsIf.hpp:109
void MoveAbs(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveAbs RPC.
Definition adcLcsIf.cpp:317
virtual void InitObject()
Initialize object.
Definition adcLcsIf.cpp:86
void StartTrack(const double &angle)
Start ADC tracking.
Definition adcLcsIf.cpp:454
void StartTrackMonitoring()
Definition adcLcsIf.cpp:579
void MoveEncAbs(int axis_id, long int encoders)
Definition adcLcsIf.cpp:362
void MoveAngle(const double &angle, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
MoveAngle.
Definition adcLcsIf.cpp:505
virtual void Init()
Executes the Init RPC.
Definition adcLcsIf.cpp:196
void UpdateTargetPosition(int axis_id, double position, std::string move_type)
Definition adcLcsIf.cpp:288
void MoveVel(int axis_id, double velocity)
Executes the MoveVel RPC.
Definition adcLcsIf.cpp:386
void MoveRel(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveRel RPC.
Definition adcLcsIf.cpp:340
void ReadConfig()
Read the configuration.
std::optional< double > GetTargetInUserUnits(int axis_id, double value)
Definition adcLcsIf.cpp:251
AdcLcsIf(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config, ifw::fcf::devmgr::common::DataContext &data_ctx)
adcLcsIf constructor.
Definition adcLcsIf.cpp:77
std::string GetMotorMapValue(std::string motor, std::string category, std::string key)
Definition adcLcsIf.cpp:433
bool IsInPosition(const int axis=-1) const
IsInPosition.
Definition adcLcsIf.cpp:629
void StopTrackMonitoring()
Definition adcLcsIf.cpp:592
bool IsTracking() const
IsTracking.
Definition adcLcsIf.cpp:600
void MoveEncRel(int axis_id, long int encoders)
Definition adcLcsIf.cpp:374
void StopTrack()
StopTrack.
Definition adcLcsIf.cpp:479
virtual std::string GetRpcError(const short error_code) const
Definition adcLcsIf.cpp:668
bool IsStandstill() const
IsStandstill.
Definition adcLcsIf.cpp:659
void LoadConfig()
Load the YAML configuration.
Definition dataContext.hpp:86
Definition deviceLcsIf.hpp:91
virtual void ReadStatus(DeviceControllerData &status)
ReadStatus.
Definition deviceLcsIf.cpp:651
Adc class source file.
Definition adc.cpp:19
constexpr auto RPC_MOVE_ABS
Definition motorBaseConfig.hpp:45
Definition __init__.py:1
The adcControllerData struct.
Definition adcLcsIf.hpp:28
AdcControllerData()
Definition adcLcsIf.cpp:57
virtual ~AdcControllerData()
Definition adcLcsIf.cpp:66
void GetMotorNames(std::vector< std::string > &motor_vector)
virtual std::string GetSubstateStr() const
fcf::devmgr::motor::MotorControllerData GetMotor(std::string motor) const
void AddMotor(const std::string motor, const fcf::devmgr::motor::MotorControllerData motor_data)
void SetData(const AdcControllerData &data)
Definition adcLcsIf.cpp:69
virtual std::string GetErrorText() const
The DeviceControllerData struct.
Definition deviceLcsIf.hpp:49
The MotorControllerData struct.
Definition motorLcsIf.hpp:32