ifw-fcf  5.0.0-pre2
lampLcsIf.hpp
Go to the documentation of this file.
1 
10 #ifndef FCF_DEVMGR_DEVICE_LAMP_IF_HPP
11 #define FCF_DEVMGR_DEVICE_LAMP_IF_HPP
12 
13 // System headers
14 #include <unordered_map>
15 
16 // Third party headers
17 #include <yaml-cpp/yaml.h>
18 
19 
23 
24 #include <Fcfif.hpp>
25 #include <rad/mal/publisher.hpp>
26 
27 namespace fcf::devmgr::lamp {
28 
37  public:
39  virtual ~LampControllerData();
40 
41  inline double GetIntensity() const;
42  inline unsigned int GetTimeLeft() const;
43  inline int GetAnalogFeedback() const;
44  inline bool GetOnAnalog() const;
45  inline bool GetOnDigital() const;
46  inline void SetIntensity(double intensity);
47  inline void SetTimeLeft(unsigned int time_left);
48  inline void SetAnalogFeedback(int feedback);
49  inline void SetOnAnalog(bool on_analog);
50  inline void SetOnDigital(bool on_digital);
51 
52  inline std::string GetErrorText() const;
53  inline virtual std::string GetSubstateStr() const;
54 
55  void SetData(const LampControllerData& data);
56 
57  protected:
58  double m_intensity;
59  unsigned int m_time_left;
63  };
64 
79  {
80 
81  // enumerations for the lamp status
82  enum {
83  STAT_LOCAL = 1,
84  STAT_ERROR = 2,
85  STAT_HW_STATUS = 3,
86  STAT_STATE = 4,
87  STAT_SUBSTATE = 5,
88  STAT_INTENSITY = 6,
89  STAT_STATUS = 7,
90  STAT_TIME_LEFT = 8,
91  STAT_ANALOG_FEEDBACK = 9,
92  STAT_ON_ANALOG = 10,
93  STAT_ON_DIGITAL = 11,
94  };
95 
96  public:
105  LampLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
107 
108 
112  virtual ~LampLcsIf() {};
113 
114 
123  virtual void InitObject();
124 
129  virtual bool IsNotReady() const noexcept;
130 
137  void SwitchOn(double intensity, unsigned int time);
138 
139 
144  bool IsTurningOn() const noexcept;
145 
150  bool IsTurningOff() const noexcept;
151 
160  virtual void ReadStatus(LampControllerData& status);
161 
173  virtual void Listener(protocol::base::VectorVariant& params);
174 
180  virtual std::string GetRpcError(const short error_code) const;
181 
182 
183  protected:
184 
188  double m_intensity {};
189  int m_time_left{0};
191  bool m_on_analog{false};
192  bool m_on_digital{false};
193 
194 
195  private:
196  log4cplus::Logger m_logger;
197 
198  };
199 
200 }
201 
202 #include "lampLcsIf.ipp"
203 
204 #endif //FCF_DEVMGR_DEVICE_LAMP_IF_HPP
actuatorLcsIf class header file.
actuator Local Control System (LCS) Interface (IF) class
Definition: actuatorLcsIf.hpp:62
void SwitchOn()
Executes the SwitchOn RPC.
Definition: actuatorLcsIf.cpp:57
Definition: dataContext.hpp:90
Lamp Local Control System (LCS) Interface (IF) class.
Definition: lampLcsIf.hpp:79
virtual void Listener(protocol::base::VectorVariant &params)
Callback to manageUpdateStatus(); changes on the monitored items.
Definition: lampLcsIf.cpp:165
bool m_on_analog
Definition: lampLcsIf.hpp:191
virtual ~LampLcsIf()
Default destructor.
Definition: lampLcsIf.hpp:112
virtual std::string GetRpcError(const short error_code) const
Definition: lampLcsIf.cpp:249
bool m_on_digital
Definition: lampLcsIf.hpp:192
int m_analog_feedback
Definition: lampLcsIf.hpp:190
virtual void InitObject()
Initialize object.
Definition: lampLcsIf.cpp:38
virtual void ReadStatus(LampControllerData &status)
Read status from the controller.
Definition: lampLcsIf.cpp:154
double m_intensity
Actual intensity.
Definition: lampLcsIf.hpp:188
int m_time_left
Definition: lampLcsIf.hpp:189
bool IsTurningOn() const noexcept
Check if controller is switching the lamp on.
Definition: lampLcsIf.cpp:121
virtual bool IsNotReady() const noexcept
Check if controller is in Standby/NotReady state.
Definition: lampLcsIf.cpp:64
bool IsTurningOff() const noexcept
Check if controller is switching the lamp off.
Definition: lampLcsIf.cpp:137
LampLcsIf(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config, fcf::devmgr::common::DataContext &data_ctx)
LampLcsIf constructor.
Definition: lampLcsIf.cpp:28
DataContext class header file.
LampConfig class header file.
Definition: lamp.hpp:21
The actuatorControllerData struct.
Definition: actuatorLcsIf.hpp:33
The LampControllerData struct.
Definition: lampLcsIf.hpp:36
bool m_on_digital
Definition: lampLcsIf.hpp:62
int m_analog_feedback
Definition: lampLcsIf.hpp:60
void SetOnDigital(bool on_digital)
unsigned int m_time_left
Definition: lampLcsIf.hpp:59
void SetIntensity(double intensity)
bool m_on_analog
Definition: lampLcsIf.hpp:61
double m_intensity
Definition: lampLcsIf.hpp:58
virtual std::string GetSubstateStr() const
LampControllerData()
Definition: lampLcsIf.cpp:15
virtual ~LampControllerData()
Definition: lampLcsIf.cpp:20
void SetData(const LampControllerData &data)
Definition: lampLcsIf.cpp:23
void SetTimeLeft(unsigned int time_left)
std::string const
Definition: test{{cookiecutter.device_name|capitalize()}}.cpp:161