ifw-fcf  5.0.0-pre2
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 
20 namespace 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);
128 
134  void TrackOffset(double offset);
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:123
DrotLcsIf(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config, fcf::devmgr::common::DataContext &data_ctx)
drotLcsIf constructor.
Definition: drotLcsIf.cpp:39
double m_angle_on_sky
Definition: drotLcsIf.hpp:199
double m_pupil
Definition: drotLcsIf.hpp:197
virtual void InitObject()
Initialize object.
Definition: drotLcsIf.cpp:49
void Listener(protocol::base::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: drotLcsIf.cpp:272
double m_rotation
Definition: drotLcsIf.hpp:196
void ReadStatus(DrotControllerData &status)
Definition: drotLcsIf.cpp:228
void TrackOffset(double offset)
Offset position during tracking.
Definition: drotLcsIf.cpp:163
virtual std::string GetRpcError(const short error_code) const
Definition: drotLcsIf.cpp:242
void MoveAngle(double angle)
Move drot to a position angle.
Definition: drotLcsIf.cpp:84
void StopTrack()
Stop derotator tracking.
Definition: drotLcsIf.cpp:200
short m_track_mode
Definition: drotLcsIf.hpp:198
bool IsTracking()
Check if drot is tracking.
Definition: drotLcsIf.cpp:70
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:25
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:28
double m_rotation
Definition: drotLcsIf.hpp:58
virtual std::string GetErrorText() const
DrotControllerData()
Definition: drotLcsIf.cpp:16
The MotorControllerData struct.
Definition: motorLcsIf.hpp:34