ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
drotLcsIf.hpp
Go to the documentation of this file.
1
7
8#ifndef FCF_DEVMGR_DEVICE_DROT_IF_HPP
9#define FCF_DEVMGR_DEVICE_DROT_IF_HPP
10
11#include <unordered_map>
12
13#include <yaml-cpp/yaml.h>
17
18
19namespace ifw::fcf::devmgr::drot {
20
29 public:
31 virtual ~DrotControllerData();
32
33 void SetData(const DrotControllerData& 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 GetRotationAngle() const;
43 inline void SetRotationAngle(double alpha);
44
45 inline double GetPupilAngle() const;
46 inline void SetPupilAngle(double delta);
47
48 inline double GetAngleOnSky() const;
49 inline void SetAngleOnSky(double offset);
50
51 inline double GetTrackOffset() const;
52 inline void SetTrackOffset(double offset);
53
54 private:
55 short m_tracking_mode {0};
56 double m_rotation {0.0};
57 double m_pupil {0.0};
58 double m_angle_on_sky {0.0};
59 double m_track_offset {0.0};
60 };
61
62
63
78
79 // enumerations for Drot status
80 enum {
81 STAT_LOCAL = 100,
82 STAT_ERROR = 101,
83 STAT_STATE = 102,
84 STAT_SUBSTATE = 103,
85 STAT_TRACK_MODE = 104,
86 STAT_ROTATION = 105,
87 STAT_PUPIL = 106,
88 STAT_ANGLE_ON_SKY = 107,
89 STAT_TRACK_OFFSET = 110
90 };
91
92 public:
102 DrotLcsIf(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config,
104
105
109 virtual ~DrotLcsIf() = default;
110
119 virtual void InitObject();
120
126 void MoveAngle(double angle, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
127
133 void TrackOffset(double offset, ::fcfif::MotorPosUnit unit);
134
139 bool IsTracking();
140
150 void StartTrack(short mode, double angle);
151
155 void StopTrack();
156
168 void Listener(const ifw::fnd::defs::Notification& note);
169
175 virtual std::string GetRpcError(const short error_code) const;
176
177
178 virtual void ReadStatus(DrotControllerData& status);
179
180 private:
181
182
183
191 void PublishPosition(const ifw::fnd::defs::Value& value,
192 int attribute);
193
194 private:
195 double m_rotation {0.0};
196 double m_pupil {0.0};
197 short m_track_mode {0};
198 double m_angle_on_sky {0.0};
199 double m_track_offset {0.0};
200
201
202 private:
203 log4cplus::Logger m_logger;
204
205
206 };
207
208}
209
210#include "drotLcsIf.ipp"
211
212#endif //FCF_DEVMGR_DEVICE_DROT_IF_HPP
m_logger(log4cplus::Logger::getInstance(LOGGER_NAME))
Definition {{cookiecutter.device_name}}.cpp:29
Definition dataContext.hpp:86
void MoveAngle(double angle, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Move drot to a position angle.
Definition drotLcsIf.cpp:84
virtual void ReadStatus(DrotControllerData &status)
Definition drotLcsIf.cpp:210
void Listener(const ifw::fnd::defs::Notification &note)
Callback to manage changes on the monitored items.
Definition drotLcsIf.cpp:254
bool IsTracking()
Check if drot is tracking.
Definition drotLcsIf.cpp:70
void StopTrack()
Stop derotator tracking.
Definition drotLcsIf.cpp:185
virtual ~DrotLcsIf()=default
Default destructor.
DrotLcsIf(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config, ifw::fcf::devmgr::common::DataContext &data_ctx)
drotLcsIf constructor.
Definition drotLcsIf.cpp:39
void StartTrack(short mode, double angle)
Start derotator tracking.
Definition drotLcsIf.cpp:124
void TrackOffset(double offset, ::fcfif::MotorPosUnit unit)
Offset position during tracking.
Definition drotLcsIf.cpp:148
virtual std::string GetRpcError(const short error_code) const
Definition drotLcsIf.cpp:224
virtual void InitObject()
Initialize object.
Definition drotLcsIf.cpp:49
Motor Local Control System (LCS) Interface (IF) class.
Definition motorLcsIf.hpp:98
virtual void ReadStatus(MotorControllerData &status)
Read status from the controller.
Definition motorLcsIf.cpp:83
Drot class source file.
Definition drot.cpp:19
The drotControllerData struct.
Definition drotLcsIf.hpp:28
virtual std::string GetSubstateStr() const
DrotControllerData()
Definition drotLcsIf.cpp:16
virtual std::string GetErrorText() const
void SetData(const DrotControllerData &data)
Definition drotLcsIf.cpp:28
virtual ~DrotControllerData()
Definition drotLcsIf.cpp:25
The MotorControllerData struct.
Definition motorLcsIf.hpp:32