ifw-fcf  4.1.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 angle);
52 
53  protected:
54  short m_tracking_mode {};
55  double m_rotation {};
56  double m_pupil {};
57  double m_angle_on_sky {};
58  };
59 
60 
61 
76 
77  // enumerations for Drot status
78  enum {
79  STAT_LOCAL = 100,
80  STAT_ERROR = 101,
81  STAT_STATE = 102,
82  STAT_SUBSTATE = 103,
83  STAT_TRACK_MODE = 104,
84  STAT_ROTATION = 105,
85  STAT_PUPIL = 106,
86  STAT_ANGLE_ON_SKY = 107
87  };
88 
89  public:
98  DrotLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
100 
101 
105  virtual ~DrotLcsIf() = default;
106 
115  virtual void InitObject();
116 
122  void MoveAngle(double angle);
123 
128  bool IsTracking();
129 
139  void StartTrack(short mode, double angle);
140 
144  void StopTrack();
145 
157  void Listener(fcf::common::VectorVariant& params);
158 
164  virtual std::string GetRpcError(const short error_code) const;
165 
166 
167  void ReadStatus(DrotControllerData& status);
168 
169  private:
170 
171 
172 
180  void PublishPosition(const fcf::common::Variant& value,
181  int attribute);
182 
183 
184 
185  protected:
186  double m_rotation {};
187  double m_pupil {};
188  short m_track_mode {};
189  double m_angle_on_sky {};
190 
191 
192  private:
193  log4cplus::Logger m_logger;
194 
195 
196  };
197 
198 }
199 
200 #include "drotLcsIf.ipp"
201 
202 #endif //FCF_DEVMGR_DEVICE_DROT_IF_HPP
dataContext.hpp
DataContext class header file.
fcf::devmgr::drot::DrotLcsIf::m_angle_on_sky
double m_angle_on_sky
Definition: drotLcsIf.hpp:189
fcf::devmgr::drot::DrotLcsIf::InitObject
virtual void InitObject()
Initialize object.
Definition: drotLcsIf.cpp:47
fcf::devmgr::drot::DrotControllerData::m_angle_on_sky
double m_angle_on_sky
Definition: drotLcsIf.hpp:57
fcf::devmgr::drot::DrotControllerData::GetAngleOnSky
double GetAngleOnSky() const
fcf::devmgr::drot::DrotControllerData::DrotControllerData
DrotControllerData()
Definition: drotLcsIf.cpp:16
fcf::devmgr::drot::DrotLcsIf::MoveAngle
void MoveAngle(double angle)
Move drot to a position angle.
Definition: drotLcsIf.cpp:81
fcf::devmgr::drot::DrotControllerData::GetSubstateStr
virtual std::string GetSubstateStr() const
motorLcsIf.hpp
ShutterLcsIf class header file.
fcf::devmgr::drot::DrotLcsIf::DrotLcsIf
DrotLcsIf(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config, fcf::devmgr::common::DataContext &data_ctx)
drotLcsIf constructor.
Definition: drotLcsIf.cpp:37
fcf::devmgr::drot::DrotControllerData::GetPupilAngle
double GetPupilAngle() const
fcf::devmgr::drot::DrotLcsIf::GetRpcError
virtual std::string GetRpcError(const short error_code) const
Definition: drotLcsIf.cpp:204
fcf::devmgr::drot::DrotControllerData::SetAngleOnSky
void SetAngleOnSky(double angle)
fcf::devmgr::drot::DrotControllerData::~DrotControllerData
virtual ~DrotControllerData()
Definition: drotLcsIf.cpp:24
fcf::devmgr::drot
Definition: drot.cpp:23
fcf::devmgr::drot::DrotLcsIf::StartTrack
void StartTrack(short mode, double angle)
Start derotator tracking.
Definition: drotLcsIf.cpp:122
fcf::devmgr::drot::DrotLcsIf
Drot Local Control System (LCS) Interface (IF) class.
Definition: drotLcsIf.hpp:75
fcf::devmgr::drot::DrotLcsIf::StopTrack
void StopTrack()
Stop derotator tracking.
Definition: drotLcsIf.cpp:163
fcf::devmgr::drot::DrotControllerData::GetRotationAngle
double GetRotationAngle() const
fcf::devmgr::drot::DrotControllerData::GetTrackingMode
short GetTrackingMode() const
fcf::devmgr::drot::DrotLcsIf::m_track_mode
short m_track_mode
Definition: drotLcsIf.hpp:188
fcf::devmgr::drot::DrotControllerData::m_rotation
double m_rotation
Definition: drotLcsIf.hpp:55
drotConfig.hpp
DrotConfig class header file.
fcf::devmgr::drot::DrotControllerData::m_tracking_mode
short m_tracking_mode
Definition: drotLcsIf.hpp:54
fcf::devmgr::drot::DrotControllerData::SetRotationAngle
void SetRotationAngle(double alpha)
fcf::devmgr::drot::DrotControllerData::SetTrackingMode
void SetTrackingMode(short mode)
fcf::devmgr::common::DataContext
Definition: dataContext.hpp:90
fcf::devmgr::drot::DrotLcsIf::Listener
void Listener(fcf::common::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: drotLcsIf.cpp:233
fcf::devmgr::drot::DrotControllerData::GetErrorText
virtual std::string GetErrorText() const
fcf::devmgr::drot::DrotLcsIf::~DrotLcsIf
virtual ~DrotLcsIf()=default
Default destructor.
fcf::devmgr::drot::DrotControllerData::m_pupil
double m_pupil
Definition: drotLcsIf.hpp:56
fcf::devmgr::drot::DrotLcsIf::m_pupil
double m_pupil
Definition: drotLcsIf.hpp:187
fcf::devmgr::drot::DrotControllerData::GetTrackingModeStr
std::string GetTrackingModeStr() const
fcf::devmgr::drot::DrotLcsIf::m_rotation
double m_rotation
Definition: drotLcsIf.hpp:186
fcf::devmgr::drot::DrotControllerData::SetData
void SetData(const DrotControllerData &data)
Definition: drotLcsIf.cpp:27
fcf::devmgr::drot::DrotLcsIf::IsTracking
bool IsTracking()
Check if drot is tracking.
Definition: drotLcsIf.cpp:67
fcf::devmgr::drot::DrotLcsIf::ReadStatus
void ReadStatus(DrotControllerData &status)
Definition: drotLcsIf.cpp:191
fcf::devmgr::drot::DrotControllerData::SetPupilAngle
void SetPupilAngle(double delta)
fcf::devmgr::motor::MotorLcsIf
Motor Local Control System (LCS) Interface (IF) class.
Definition: motorLcsIf.hpp:100
fcf::devmgr::drot::DrotControllerData
The drotControllerData struct.
Definition: drotLcsIf.hpp:29
fcf::devmgr::motor::MotorControllerData
The MotorControllerData struct.
Definition: motorLcsIf.hpp:34