Go to the documentation of this file.
8 #ifndef FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
9 #define FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
12 #include <yaml-cpp/yaml.h>
14 #include <mal/Cii.hpp>
15 #include <mal/utility/LoadMal.hpp>
18 #include <fcf/common/iComm.hpp>
19 #include <fcf/common/dispatcher.hpp>
82 explicit DeviceLcsIf(std::shared_ptr<IDeviceConfig> config,
106 virtual void RegisterComm(std::shared_ptr<fcf::common::IComm> comm_if,
107 fcf::common::Dispatcher<>& failure,
108 fcf::common::Dispatcher<>& normal);
139 virtual void ReadConfig(
const std::vector<std::string>& stat_map_vector,
140 const std::vector<std::string>& rpc_map_vector);
222 virtual void Reset();
251 virtual void Listener(fcf::common::VectorVariant& params) = 0;
258 virtual std::string
GetRpcError(
const short error_code)
const = 0;
269 virtual std::string
GetHwError(
int& error_code,
const bool update =
false);
286 std::string
GetMapValue(std::string category, std::string key);
288 fcf::common::Dispatcher<fcf::common::VectorVariant&>&
GetDispatcher();
319 const std::string& proc,
320 fcf::common::VectorVariant& attr_list);
332 void GetStates(
int &state,
int &substate);
338 void StoreUaNames(
const std::vector <std::pair<std::string, unsigned int>>& ualist);
350 const fcf::common::Variant& value,
360 std::shared_ptr<fcf::common::IComm>
m_comm;
439 #include "deviceLcsIf.ipp"
441 #endif // FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
DeviceControllerData()
Definition: deviceLcsIf.cpp:32
@ STAT_HW_STATUS
Definition: deviceLcsIf.hpp:88
void GetStates(int &state, int &substate)
Get states (state and substate) of the controller.
Definition: deviceLcsIf.cpp:537
virtual std::string GetHwError(int &error_code, const bool update=false)
Get error message.
Definition: deviceLcsIf.cpp:641
void ExecuteRpc(const std::string &obj, const std::string &proc, fcf::common::VectorVariant &attr_list)
Definition: deviceLcsIf.cpp:114
std::unordered_map< std::string, short > m_ua_status_map
Definition: deviceLcsIf.hpp:425
void LoadConfig()
Load the YAML configuration.
Definition: deviceLcsIf.cpp:95
fcf::common::Dispatcher< fcf::common::VectorVariant & > m_dispatcher
Dispatcher for managing subscription events.
Definition: deviceLcsIf.hpp:370
fcf::devmgr::common::DataContext & m_data_ctx
Definition: deviceLcsIf.hpp:412
bool m_connected
Flag indicating whether the LCS is connected.
Definition: deviceLcsIf.hpp:410
bool m_config_loaded
Flag indicating whether the configuration was successfully loaded.
Definition: deviceLcsIf.hpp:405
virtual void ReadConfig(const std::vector< std::string > &stat_map_vector, const std::vector< std::string > &rpc_map_vector)
Read the configuration.
Definition: deviceLcsIf.cpp:156
virtual std::shared_ptr< IDeviceConfig > GetDeviceConfig()
Get a pointer of device configuration.
Definition: deviceLcsIf.cpp:610
virtual void Enable()
Executes the Enable RPC.
Definition: deviceLcsIf.cpp:307
virtual bool IsNotReady()
Check if controller is in Standby/NotReady state.
Definition: deviceLcsIf.cpp:457
std::string m_pub_endpoint
Definition: deviceLcsIf.hpp:418
@ STAT_ERROR
Definition: deviceLcsIf.hpp:87
int m_substate
Definition: deviceLcsIf.hpp:52
int m_substate
Actual controller substate.
Definition: deviceLcsIf.hpp:390
virtual bool IsReady()
Check if controller is in Standby/Ready state.
Definition: deviceLcsIf.cpp:483
std::vector< std::string > m_ua_monitor_vector
Definition: deviceLcsIf.hpp:429
virtual void Init()
Executes the Init RPC.
Definition: deviceLcsIf.cpp:254
fcf::common::Dispatcher m_normal
Dispatcher for managing recovery of communication failures.
Definition: deviceLcsIf.hpp:380
DeviceConfig class header file.
virtual void RegisterComm(std::shared_ptr< fcf::common::IComm > comm_if, fcf::common::Dispatcher<> &failure, fcf::common::Dispatcher<> &normal)
Register a communication interface.
Definition: deviceLcsIf.cpp:83
virtual void Reset()
Executes the Reset RPC.
Definition: deviceLcsIf.cpp:382
fcf::common::Dispatcher< fcf::common::VectorVariant & > & GetDispatcher()
Definition: deviceLcsIf.cpp:601
virtual void Stop()
Executes the Stop RPC.
Definition: deviceLcsIf.cpp:420
virtual void Connect()
Connect to the controller or simulator.
Definition: deviceLcsIf.cpp:210
@ STAT_LOCAL
Definition: deviceLcsIf.hpp:86
std::string GetMapValue(std::string category, std::string key)
Get mapping valLampConfigue.
Definition: deviceLcsIf.cpp:675
int ReadErrorCode()
Definition: deviceLcsIf.cpp:139
virtual bool IsHwFailure()
Check if controller is in Hardware Failure.
Definition: deviceLcsIf.cpp:523
void StoreUaNames(const std::vector< std::pair< std::string, unsigned int >> &ualist)
StoreUaNames.
Definition: deviceLcsIf.cpp:689
void SetLocalFlag(bool local_flag)
std::shared_ptr< fcf::common::IComm > m_comm
Shared pointer to the communication object.
Definition: deviceLcsIf.hpp:360
@ STAT_STATE
Definition: deviceLcsIf.hpp:89
bool IsConnected() const
Check is the communication was established.
Definition: deviceLcsIf.cpp:605
virtual void Listener(fcf::common::VectorVariant ¶ms)=0
Callback for listening controller events.
bool GetLocalFlag() const
virtual ~DeviceControllerData()
Definition: deviceLcsIf.cpp:38
Definition: dataContext.hpp:92
Definition: actionMgr.cpp:29
std::unordered_map< short, std::string > m_hw_errors
Definition: deviceLcsIf.hpp:431
std::shared_ptr< IDeviceConfig > m_config
Shared pointer to the device config object.
Definition: deviceLcsIf.hpp:365
void SetErrorCode(int error_code)
Definition: deviceLcsIf.hpp:75
void SetSubstate(int subtate)
virtual bool IsOperational()
Check if controller is in Operational.
Definition: deviceLcsIf.cpp:502
std::string m_lcs_prefix
Store the prefix for storing keys in the database.
Definition: deviceLcsIf.hpp:415
virtual void StopMonitoring()
Stop monitoring of controller attributes.
Definition: deviceLcsIf.cpp:631
bool IsConfigLoaded() const
Check if configuration was loaded.
Definition: deviceLcsIf.cpp:597
@ STAT_SUBSTATE
Definition: deviceLcsIf.hpp:90
void StoreAttribute(const std::string key, const fcf::common::Variant &value, int attribute)
Store the updated into the DB.
Definition: deviceLcsIf.cpp:709
void SetData(const DeviceControllerData &data)
Definition: deviceLcsIf.cpp:41
int m_state
Definition: deviceLcsIf.hpp:51
virtual void Disconnect()
Disconnect from the controller of simulator.
Definition: deviceLcsIf.cpp:237
elt::mal::Mal::Properties m_mal_properties
Definition: deviceLcsIf.hpp:417
int m_state
Actual controller state.
Definition: deviceLcsIf.hpp:385
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:34
virtual bool IsDisabling()
Check if controller is in Disabling state.
Definition: deviceLcsIf.cpp:517
bool m_local
Actual local flag.
Definition: deviceLcsIf.hpp:395
virtual void StartMonitoring()
Start monitoring of controller attributes.
Definition: deviceLcsIf.cpp:615
YAML::Node m_config_node
YAML node for the device mapping file.
Definition: deviceLcsIf.hpp:355
virtual std::string GetRpcError(const short error_code) const =0
Get associated message from the RPC error code.
bool m_local
Definition: deviceLcsIf.hpp:53
int m_error_code
Definition: deviceLcsIf.hpp:54
DeviceLcsIf(std::shared_ptr< IDeviceConfig > config, DataContext &data_ctx)
DeviceLcsIf constructor.
Definition: deviceLcsIf.cpp:47
std::string GetStateStr() const
bool m_error_code
Actual error code.
Definition: deviceLcsIf.hpp:400
virtual void Disable()
Executes the Disable RPC.
Definition: deviceLcsIf.cpp:344
fcf::common::Dispatcher m_failure
Dispatcher for managing failures in the communication.
Definition: deviceLcsIf.hpp:375