ifw-fcf 6.0.0
Loading...
Searching...
No Matches
drotLcsIf.hpp
Go to the documentation of this file.
1
10#ifndef FCF_DEVMGR_DEVICE_DROT_IF_HPP
11#define FCF_DEVMGR_DEVICE_DROT_IF_HPP
12
13#include <unordered_map>
14
15#include <yaml-cpp/yaml.h>
19
20namespace fcf::devmgr::drot {
21
30 public:
32 virtual ~DrotControllerData();
33
34
35 void SetData(const DrotControllerData& data);
36
37 inline virtual std::string GetErrorText() const;
38 inline virtual std::string GetSubstateStr() const;
39
40 inline short GetTrackingMode() const;
41 inline std::string GetTrackingModeStr() const;
42 inline void SetTrackingMode(short mode);
43
44 inline double GetRotationAngle() const;
45 inline void SetRotationAngle(double alpha);
46
47 inline double GetPupilAngle() const;
48 inline void SetPupilAngle(double delta);
49
50 inline double GetAngleOnSky() const;
51 inline void SetAngleOnSky(double offset);
52
53 inline double GetTrackOffset() const;
54 inline void SetTrackOffset(double offset);
55
56 protected:
57 short m_tracking_mode {0};
58 double m_rotation {0.0};
59 double m_pupil {0.0};
60 double m_angle_on_sky {0.0};
61 double m_track_offset {0.0};
62 };
63
64
65
80
81 // enumerations for Drot status
82 enum {
83 STAT_LOCAL = 100,
84 STAT_ERROR = 101,
85 STAT_STATE = 102,
86 STAT_SUBSTATE = 103,
87 STAT_TRACK_MODE = 104,
88 STAT_ROTATION = 105,
89 STAT_PUPIL = 106,
90 STAT_ANGLE_ON_SKY = 107,
91 STAT_TRACK_OFFSET = 110
92 };
93
94 public:
103 DrotLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
105
106
110 virtual ~DrotLcsIf() = default;
111
120 virtual void InitObject();
121
127 void MoveAngle(double angle, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
128
134 void TrackOffset(double offset, ::fcfif::MotorPosUnit unit);
135
140 bool IsTracking();
141
151 void StartTrack(short mode, double angle);
152
156 void StopTrack();
157
169 void Listener(protocol::base::VectorVariant& params);
170
176 virtual std::string GetRpcError(const short error_code) const;
177
178
179 void ReadStatus(DrotControllerData& status);
180
181 private:
182
183
184
192 void PublishPosition(const protocol::base::Variant& value,
193 int attribute);
194
195 protected:
196 double m_rotation {0.0};
197 double m_pupil {0.0};
198 short m_track_mode {0};
199 double m_angle_on_sky {0.0};
200 double m_track_offset {0.0};
201
202
203 private:
204 log4cplus::Logger m_logger;
205
206
207 };
208
209}
210
211#include "drotLcsIf.ipp"
212
213#endif //FCF_DEVMGR_DEVICE_DROT_IF_HPP
Definition: dataContext.hpp:90
Drot Local Control System (LCS) Interface (IF) class.
Definition: drotLcsIf.hpp:79
void StartTrack(short mode, double angle)
Start derotator tracking.
Definition: drotLcsIf.cpp:139
double m_angle_on_sky
Definition: drotLcsIf.hpp:199
double m_pupil
Definition: drotLcsIf.hpp:197
virtual void InitObject()
Initialize object.
Definition: drotLcsIf.cpp:50
void MoveAngle(double angle, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Move drot to a position angle.
Definition: drotLcsIf.cpp:85
void Listener(protocol::base::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: drotLcsIf.cpp:300
double m_rotation
Definition: drotLcsIf.hpp:196
void ReadStatus(DrotControllerData &status)
Definition: drotLcsIf.cpp:256
virtual std::string GetRpcError(const short error_code) const
Definition: drotLcsIf.cpp:270
void StopTrack()
Stop derotator tracking.
Definition: drotLcsIf.cpp:228
short m_track_mode
Definition: drotLcsIf.hpp:198
void TrackOffset(double offset, ::fcfif::MotorPosUnit unit)
Offset position during tracking.
Definition: drotLcsIf.cpp:179
bool IsTracking()
Check if drot is tracking.
Definition: drotLcsIf.cpp:71
double m_track_offset
Definition: drotLcsIf.hpp:200
virtual ~DrotLcsIf()=default
Default destructor.
Motor Local Control System (LCS) Interface (IF) class.
Definition: motorLcsIf.hpp:100
DataContext class header file.
DrotConfig class header file.
ShutterLcsIf class header file.
Definition: drot.cpp:23
The drotControllerData struct.
Definition: drotLcsIf.hpp:29
short m_tracking_mode
Definition: drotLcsIf.hpp:57
virtual ~DrotControllerData()
Definition: drotLcsIf.cpp:26
double m_pupil
Definition: drotLcsIf.hpp:59
double m_track_offset
Definition: drotLcsIf.hpp:61
virtual std::string GetSubstateStr() const
std::string GetTrackingModeStr() const
double m_angle_on_sky
Definition: drotLcsIf.hpp:60
void SetData(const DrotControllerData &data)
Definition: drotLcsIf.cpp:29
double m_rotation
Definition: drotLcsIf.hpp:58
virtual std::string GetErrorText() const
DrotControllerData()
Definition: drotLcsIf.cpp:17
The MotorControllerData struct.
Definition: motorLcsIf.hpp:34