ifw-fcf 6.0.0
Loading...
Searching...
No Matches
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
27namespace 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:
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 {};
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:58
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:168
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:243
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:157
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:124
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:140
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