ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
deviceLcsIf.hpp
Go to the documentation of this file.
1 
8 #ifndef DEVMGR_DEVICE_LCS_IF_H
9 #define DEVMGR_DEVICE_LCS_IF_H
10 
11 // Third party headers
12 #include <yaml-cpp/yaml.h>
13 
14 // Local headers
15 #include <fcf/common/iComm.hpp>
16 #include <fcf/common/dispatcher.hpp>
17 #include <devmgr/common/deviceConfig.hpp>
18 
19 
20 namespace devmgr {
21  namespace common {
22 
30  struct DeviceControllerData {
31  public:
33  virtual ~DeviceControllerData();
34  inline short GetState() const;
35  inline void SetState(short state);
36  inline short GetSubstate() const;
37  inline void SetSubstate(short subtate);
38 
39  inline bool GetLocalFlag() const;
40  inline void SetLocalFlag(bool local_flag);
41  inline int GetErrorCode() const;
42  inline void SetErrorCode(int error_code);
43 
44  void SetData(const DeviceControllerData& data);
45 
46  protected:
47  short m_state;
48  short m_substate;
49  bool m_local;
50  int m_error_code;
51  };
52 
69  class DeviceLcsIf {
70  public:
78  explicit DeviceLcsIf(std::shared_ptr<IDeviceConfig> config);
79 
92  virtual void RegisterComm(std::shared_ptr<fcf::common::IComm> commIf,
93  fcf::common::Dispatcher<>& failure,
94  fcf::common::Dispatcher<>& normal);
95 
104  virtual void Connect();
105 
113  virtual void Disconnect();
114 
122  virtual void ReadConfig() = 0;
123 
124 
129  virtual bool IsNotReady() ;
130 
135  virtual bool IsReady() = 0 ;
136 
145  virtual bool IsDisabling() ;
146 
151  virtual bool IsOperational() = 0;
152 
163  virtual bool IsHwFailure() = 0;
164 
177  //virtual bool IsHwFailure(short substate) = 0;
178 
184  virtual void Init();
185 
192  virtual void Enable() ;
193 
200  virtual void Disable() ;
201 
210  virtual void Stop();
211 
218  virtual void Reset();
219 
226  virtual void StartMonitoring() = 0;
227 
234  virtual void StopMonitoring() = 0;
235 
242  virtual void Listener(fcf::common::VectorVariant& params) = 0;
243 
249  virtual std::string GetRpcError(const short error_code) const = 0 ;
250 
257  virtual std::string GetHwError(int& error_code, const bool update = false) = 0;
258 
259 
274  std::string GetMapValue(std::string category, std::string key);
275 
276  fcf::common::Dispatcher<fcf::common::VectorVariant&>& GetDispatcher();
277 
282  bool IsConfigLoaded() const;
283 
288  bool IsConnected() const;
289 
290  protected:
291 
296  void LoadConfig();
297 
298  protected:
299 
309  void GetStates(short& state, short& substate);
310 
311 
315  YAML::Node m_config_node;
316 
320  std::shared_ptr<fcf::common::IComm> m_comm;
321 
325  std::shared_ptr<IDeviceConfig> m_config;
326 
330  fcf::common::Dispatcher<fcf::common::VectorVariant&> m_dispatcher;
331 
335  fcf::common::Dispatcher<> m_failure;
336 
340  fcf::common::Dispatcher<> m_normal;
341 
345  short m_state;
346 
350  short m_substate;
351 
355  bool m_config_loaded;
356 
360  bool m_connected;
361 
362  };
363  }
364 }
365 
366 #include "deviceLcsIf.inline"
367 
368 #endif //DEVMGR_DEVICE_LAMP_IF_H
short m_state
Definition: deviceLcsIf.hpp:47
void LoadConfig()
Load the YAML configuration.
Definition: deviceLcsIf.cpp:71
virtual bool IsOperational()=0
Check if controller is in Operational.
short m_substate
Definition: deviceLcsIf.hpp:48
void GetStates(short &state, short &substate)
Get states (state and substate) of the controller.
Definition: deviceLcsIf.cpp:380
virtual void Stop()
Executes the Stop RPC.
Definition: deviceLcsIf.cpp:307
virtual void Disconnect()
Disconnect from the controller of simulator.
Definition: deviceLcsIf.cpp:119
bool IsConfigLoaded() const
Check if configuration was loaded.
Definition: deviceLcsIf.cpp:436
fcf::common::Dispatcher m_failure
Dispatcher for managing failures in the communication.
Definition: deviceLcsIf.hpp:335
virtual void Connect()
Connect to the controller or simulator.
Definition: deviceLcsIf.cpp:91
virtual void Reset()
Executes the Reset RPC.
Definition: deviceLcsIf.cpp:268
virtual bool IsHwFailure()=0
Check if controller is in Hardware Failure.
short m_substate
Actual controller substate.
Definition: deviceLcsIf.hpp:350
fcf::common::Dispatcher< fcf::common::VectorVariant & > m_dispatcher
Dispatcher for managing subscription events.
Definition: deviceLcsIf.hpp:330
std::shared_ptr< IDeviceConfig > m_config
Shared pointer to the device config object.
Definition: deviceLcsIf.hpp:325
virtual void Init()
Check if controller is in Hardware Failure.
Definition: deviceLcsIf.cpp:136
virtual void ReadConfig()=0
Read the configuration.
virtual ~DeviceControllerData()
Definition: deviceLcsIf.cpp:33
int m_error_code
Definition: deviceLcsIf.hpp:50
optional int32 substate
Definition: topics.proto:77
void SetData(const DeviceControllerData &data)
Definition: deviceLcsIf.cpp:36
fcf::common::Dispatcher m_normal
Dispatcher for managing recovery of communication failures.
Definition: deviceLcsIf.hpp:340
bool m_local
Definition: deviceLcsIf.hpp:49
virtual std::string GetHwError(int &error_code, const bool update=false)=0
Get error message.
virtual void Listener(fcf::common::VectorVariant &params)=0
Callback for listening controller events.
virtual void Enable()
Executes the Enable RPC.
Definition: deviceLcsIf.cpp:191
virtual std::string GetRpcError(const short error_code) const =0
Get associated message from the RPC error code.
bool m_connected
Flag indicating whether the LCS is connected.
Definition: deviceLcsIf.hpp:360
virtual bool IsDisabling()
Check if controller is in Disabling state.
Definition: deviceLcsIf.cpp:363
std::shared_ptr< fcf::common::IComm > m_comm
Shared pointer to the communication object.
Definition: deviceLcsIf.hpp:320
fcf::common::Dispatcher< fcf::common::VectorVariant & > & GetDispatcher()
Definition: deviceLcsIf.cpp:440
DeviceLcsIf(std::shared_ptr< IDeviceConfig > config)
DeviceLcsIf construm_data_ctx.GetConfig().GetServerId() + &quot;.&quot;.
Definition: deviceLcsIf.cpp:42
virtual bool IsReady()=0
Check if controller is in Standby/Ready state.
DeviceControllerData()
Definition: deviceLcsIf.cpp:27
YAML::Node m_config_node
YAML node for the device mapping file.
Definition: deviceLcsIf.hpp:315
short m_state
Actual controller state.
Definition: deviceLcsIf.hpp:345
virtual void RegisterComm(std::shared_ptr< fcf::common::IComm > commIf, fcf::common::Dispatcher<> &failure, fcf::common::Dispatcher<> &normal)
Register a communication interface.
Definition: deviceLcsIf.cpp:59
bool m_config_loaded
Flag indicating whether the configuration was succesfully loaded.
Definition: deviceLcsIf.hpp:355
virtual bool IsNotReady()
Check if controller is in Standby/NotReady state.
Definition: deviceLcsIf.cpp:344
optional int32 error_code
Definition: topics.proto:14
virtual void StartMonitoring()=0
Start monitoring of controller attributes.
virtual void StopMonitoring()=0
Stop monitoring of controller attributes.
virtual void Disable()
Executes the Disable RPC.
Definition: deviceLcsIf.cpp:230
bool IsConnected() const
Check is the communication was established.
Definition: deviceLcsIf.cpp:444
void SetLocalFlag(bool local_flag)
std::string GetMapValue(std::string category, std::string key)
Get mapping valLampConfigue.
Definition: deviceLcsIf.cpp:422