ifw-fcf  4.0.0
sensorLcsIf.hpp
Go to the documentation of this file.
1 
10 #ifndef FCF_DEVMGR_DEVICE_SENSOR_LCSIF_HPP
11 #define FCF_DEVMGR_DEVICE_SENSOR_LCSIF_HPP
12 
13 // System headers
14 #include <unordered_map>
15 
16 // Third party headers
17 #include <yaml-cpp/yaml.h>
18 
22 
23 #include <Fcfif.hpp>
24 #include <rad/mal/publisher.hpp>
25 
26 
27 namespace fcf::devmgr::sensor {
28 
33  struct ChannelData {
34  ChannelData();
35  virtual ~ChannelData();
36 
37 
38  void GetValue(bool& value) const;
39  void GetValue(double& value) const;
40  void GetValue(int& value) const;
41  fcf::common::Variant GetRawValue() const;
42 
43  void SetValue(const fcf::common::Variant value);
44  friend std::ostream& operator<<(std::ostream& dest, const ChannelData& obj);
45 
46  protected:
47 
48  fcf::common::Variant m_value;
49  };
50 
61  public:
63  virtual ~SensorControllerData();
64 
65  inline std::string GetErrorText() const;
66  inline virtual std::string GetSubstateStr() const;
67 
68  inline void ClearChannelValues();
69  inline void SetChannelValue(const std::string& channel,
70  fcf::common::Variant value);
71  inline void GetChannelValue(const std::string& channel,
72  ChannelData& data) const;
73 
74 
75  void SetData(const SensorControllerData& data);
76 
77 
78  protected:
79  std::unordered_map<std::string, ChannelData> m_values;
80  };
81 
82 
98  // enumerations for the Sensor status
99 
100  enum {
101  STAT_LOCAL = 1,
102  STAT_ERROR = 2,
103  STAT_STATE = 3,
104  STAT_SUBSTATE = 4,
105  STAT_CHANNEL = 10,
106 
107  };
108 
109  public:
118  SensorLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
120 
124  virtual ~SensorLcsIf() {};
125 
130  virtual bool IsReady() const;
131 
132  virtual bool IsNotReady() const;
133 
138  virtual bool IsOperational() const;
139 
144  bool IsHwFailure() const;
145 
155  virtual void ReadStatus(SensorControllerData& status);
156 
166  void StartMonitoring();
167 
175  void StopMonitoring();
176 
188  void Listener(fcf::common::VectorVariant& params);
189 
195  virtual std::string GetRpcError(const short error_code) const;
196 
197 
198  private:
199 
207  void PublishState(const fcf::common::Variant& value);
208 
216  void PublishSubstate(const fcf::common::Variant& value);
217 
218  void PublishError(const fcf::common::Variant& value);
219 
220  void PublishChannel(const std::string channel,
221  const fcf::common::Variant& value);
222 
223 
224  protected:
225 
228  std::unordered_map<std::string, std::string> m_channels_map;
229  std::unordered_map<std::string, ChannelData> m_channel_values;
230 
231 
232  private:
233  log4cplus::Logger m_logger;
234 
235 
236 
237  };
238 }
239 
240 #include "sensorLcsIf.ipp"
241 
242 #endif //FCF_DEVMGR_DEVICE_SENSOR_LCSIF_HPP
fcf::devmgr::sensor::SensorLcsIf::IsOperational
virtual bool IsOperational() const
Check if controller is in Operational.
Definition: sensorLcsIf.cpp:126
dataContext.hpp
DataContext class header file.
fcf::devmgr::sensor::ChannelData::GetValue
void GetValue(int &value) const
fcf::devmgr::sensor::ChannelData::GetValue
void GetValue(bool &value) const
fcf::devmgr::sensor::SensorControllerData::m_values
std::unordered_map< std::string, ChannelData > m_values
Definition: sensorLcsIf.hpp:79
fcf::devmgr::sensor::SensorLcsIf::~SensorLcsIf
virtual ~SensorLcsIf()
Default destructor.
Definition: sensorLcsIf.hpp:124
fcf::devmgr::sensor::SensorControllerData
The sensorControllerData struct.
Definition: sensorLcsIf.hpp:60
fcf::devmgr::sensor::SensorControllerData::SetData
void SetData(const SensorControllerData &data)
Definition: sensorLcsIf.cpp:36
fcf::devmgr::sensor::ChannelData::operator<<
friend std::ostream & operator<<(std::ostream &dest, const ChannelData &obj)
Definition: sensorLcsIf.cpp:24
fcf::devmgr::sensor::SensorControllerData::ClearChannelValues
void ClearChannelValues()
fcf::devmgr::sensor::SensorLcsIf
Sensor Local Control System (LCS) Interface (IF) class.
Definition: sensorLcsIf.hpp:97
fcf::devmgr::sensor::SensorControllerData::GetErrorText
std::string GetErrorText() const
fcf::devmgr::sensor::ChannelData::ChannelData
ChannelData()
Definition: sensorLcsIf.cpp:18
fcf::devmgr::sensor::SensorControllerData::~SensorControllerData
virtual ~SensorControllerData()
Definition: sensorLcsIf.cpp:33
deviceLcsIf.hpp
deviceLcsIf class header file.
fcf::devmgr::sensor::SensorLcsIf::IsHwFailure
bool IsHwFailure() const
Check if Sensor is in hardware error.
Definition: sensorLcsIf.cpp:147
fcf::devmgr::sensor::SensorLcsIf::Listener
void Listener(fcf::common::VectorVariant &params)
Callback to manage changes on the monitored items.
Definition: sensorLcsIf.cpp:215
fcf::devmgr::sensor::ChannelData::GetRawValue
fcf::common::Variant GetRawValue() const
fcf::devmgr::sensor::SensorLcsIf::m_channels_map
std::unordered_map< std::string, std::string > m_channels_map
Definition: sensorLcsIf.hpp:228
fcf::devmgr::sensor::SensorControllerData::GetChannelValue
void GetChannelValue(const std::string &channel, ChannelData &data) const
fcf::devmgr::sensor
Definition: sensor.hpp:21
fcf::devmgr::common::DataContext
Definition: dataContext.hpp:90
fcf::devmgr::sensor::ChannelData::SetValue
void SetValue(const fcf::common::Variant value)
fcf::devmgr::sensor::SensorControllerData::GetSubstateStr
virtual std::string GetSubstateStr() const
fcf::devmgr::common::DeviceLcsIf
Definition: deviceLcsIf.hpp:77
fcf::devmgr::sensor::SensorControllerData::SetChannelValue
void SetChannelValue(const std::string &channel, fcf::common::Variant value)
fcf::devmgr::sensor::ChannelData::GetValue
void GetValue(double &value) const
fcf::devmgr::sensor::SensorLcsIf::GetRpcError
virtual std::string GetRpcError(const short error_code) const
Definition: sensorLcsIf.cpp:277
fcf::devmgr::sensor::ChannelData
The ChannelData struct.
Definition: sensorLcsIf.hpp:33
fcf::devmgr::sensor::SensorLcsIf::m_channel_values
std::unordered_map< std::string, ChannelData > m_channel_values
Definition: sensorLcsIf.hpp:229
sensorConfig.hpp
SensorConfig class header file.
fcf::devmgr::sensor::SensorLcsIf::StartMonitoring
void StartMonitoring()
Start monitoring of controller attributes.
Definition: sensorLcsIf.cpp:174
fcf::devmgr::sensor::SensorControllerData::SensorControllerData
SensorControllerData()
Definition: sensorLcsIf.cpp:29
fcf::devmgr::sensor::SensorLcsIf::IsReady
virtual bool IsReady() const
Check if controller is in Standby/Ready state.
Definition: sensorLcsIf.cpp:106
fcf::devmgr::sensor::ChannelData::~ChannelData
virtual ~ChannelData()
Definition: sensorLcsIf.cpp:21
fcf::devmgr::common::DeviceControllerData
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:36
fcf::devmgr::sensor::SensorLcsIf::StopMonitoring
void StopMonitoring()
Stop monitoring of controller attributes.
Definition: sensorLcsIf.cpp:194
fcf::devmgr::sensor::SensorLcsIf::ReadStatus
virtual void ReadStatus(SensorControllerData &status)
Read status from the controller.
Definition: sensorLcsIf.cpp:162
fcf::devmgr::sensor::SensorLcsIf::IsNotReady
virtual bool IsNotReady() const
Check if controller is in Standby/NotReady state.
Definition: sensorLcsIf.cpp:93
fcf::devmgr::sensor::ChannelData::m_value
fcf::common::Variant m_value
Definition: sensorLcsIf.hpp:48
fcf::devmgr::sensor::SensorLcsIf::SensorLcsIf
SensorLcsIf(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config, fcf::devmgr::common::DataContext &data_ctx)
sensorLcsIf constructor.
Definition: sensorLcsIf.cpp:41