ifw-fcf  4.0.0
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 GetAlpha() const;
45  inline void SetAlpha(double alpha);
46 
47  inline double GetDelta() const;
48  inline void SetDelta(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_alpha {};
56  double m_delta {};
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_ALPHA = 105,
85  STAT_DELTA = 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() {};
106 
112  void MoveAngle(double angle);
113 
118  bool IsTracking();
119 
129  void StartTrack(short mode, double angle);
130 
134  void StopTrack();
135 
147  void Listener(fcf::common::VectorVariant& params);
148 
154  virtual std::string GetRpcError(const short error_code) const;
155 
156 
157  void ReadStatus(DrotControllerData& status);
158 
159  private:
160 
161 
162 
170  void PublishPosition(const fcf::common::Variant& value,
171  int attribute);
172 
173 
174 
175  protected:
176  double m_alpha {};
177  double m_delta {};
178  short m_track_mode {};
179  double m_angle_on_sky {};
180 
181 
182  private:
183  log4cplus::Logger m_logger;
184 
185 
186  };
187 
188 }
189 
190 #include "drotLcsIf.ipp"
191 
192 #endif //FCF_DEVMGR_DEVICE_DROT_IF_HPP
dataContext.hpp
DataContext class header file.
fcf::devmgr::drot::DrotControllerData::SetDelta
void SetDelta(double delta)
fcf::devmgr::drot::DrotLcsIf::m_angle_on_sky
double m_angle_on_sky
Definition: drotLcsIf.hpp:179
fcf::devmgr::drot::DrotControllerData::SetAlpha
void SetAlpha(double alpha)
fcf::devmgr::drot::DrotControllerData::GetAlpha
double GetAlpha() const
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:75
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::DrotLcsIf::GetRpcError
virtual std::string GetRpcError(const short error_code) const
Definition: drotLcsIf.cpp:198
fcf::devmgr::drot::DrotControllerData::SetAngleOnSky
void SetAngleOnSky(double angle)
fcf::devmgr::drot::DrotControllerData::GetDelta
double GetDelta() const
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:116
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:157
fcf::devmgr::drot::DrotControllerData::GetTrackingMode
short GetTrackingMode() const
fcf::devmgr::drot::DrotLcsIf::m_track_mode
short m_track_mode
Definition: drotLcsIf.hpp:178
fcf::devmgr::drot::DrotControllerData::m_alpha
double m_alpha
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::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:227
fcf::devmgr::drot::DrotControllerData::m_delta
double m_delta
Definition: drotLcsIf.hpp:56
fcf::devmgr::drot::DrotControllerData::GetErrorText
virtual std::string GetErrorText() const
fcf::devmgr::drot::DrotLcsIf::~DrotLcsIf
virtual ~DrotLcsIf()
Default destructor.
Definition: drotLcsIf.hpp:105
fcf::devmgr::drot::DrotLcsIf::m_delta
double m_delta
Definition: drotLcsIf.hpp:177
fcf::devmgr::drot::DrotControllerData::GetTrackingModeStr
std::string GetTrackingModeStr() const
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:61
fcf::devmgr::drot::DrotLcsIf::ReadStatus
void ReadStatus(DrotControllerData &status)
Definition: drotLcsIf.cpp:185
fcf::devmgr::motor::MotorLcsIf
Motor Local Control System (LCS) Interface (IF) class.
Definition: motorLcsIf.hpp:116
fcf::devmgr::drot::DrotControllerData
The drotControllerData struct.
Definition: drotLcsIf.hpp:29
fcf::devmgr::motor::MotorControllerData
The MotorControllerData struct.
Definition: motorLcsIf.hpp:34
fcf::devmgr::drot::DrotLcsIf::m_alpha
double m_alpha
Definition: drotLcsIf.hpp:176