8 #ifndef FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
9 #define FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
12 #include <yaml-cpp/yaml.h>
15 #include <fcf/common/iComm.hpp>
16 #include <fcf/common/dispatcher.hpp>
18 #include <rad/mal/publisher.hpp>
79 explicit DeviceLcsIf(std::shared_ptr<IDeviceConfig> config,
103 virtual void RegisterComm(std::shared_ptr<fcf::common::IComm> comm_if,
104 fcf::common::Dispatcher<>& failure,
105 fcf::common::Dispatcher<>& normal);
136 virtual void ReadConfig(
const std::vector<std::string>& stat_map_vector,
137 const std::vector<std::string>& rpc_map_vector);
219 virtual void Reset();
248 virtual void Listener(fcf::common::VectorVariant& params) = 0;
255 virtual std::string
GetRpcError(
const short error_code)
const = 0;
266 virtual std::string
GetHwError(
int& error_code,
const bool update =
false);
283 std::string
GetMapValue(std::string category, std::string key);
285 fcf::common::Dispatcher<fcf::common::VectorVariant&>&
GetDispatcher();
316 const std::string& proc,
317 fcf::common::VectorVariant& attr_list);
329 void GetStates(
int &state,
int &substate);
335 void StoreUaNames(
const std::vector <std::pair<std::string, unsigned int>>& ualist);
347 const fcf::common::Variant& value,
357 std::shared_ptr<fcf::common::IComm>
m_comm;
426 #include "deviceLcsIf.ipp"
428 #endif // FCF_DEVMGR_COMMON_DEVICE_LCS_IF_H
short m_substate
Actual controller substate.
Definition: deviceLcsIf.hpp:387
void SetErrorCode(int error_code)
std::string m_lcs_prefix
Store the prefix for storing keys in the database.
Definition: deviceLcsIf.hpp:402
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 Stop()
Executes the Stop RPC.
Definition: deviceLcsIf.cpp:420
Definition: deviceLcsIf.hpp:84
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:416
virtual void Init()
Executes the Init RPC.
Definition: deviceLcsIf.cpp:254
devmgr::common::DataContext & m_data_ctx
Definition: deviceLcsIf.hpp:399
Definition: deviceLcsIf.hpp:83
DeviceControllerData()
Definition: deviceLcsIf.cpp:32
void StoreUaNames(const std::vector< std::pair< std::string, unsigned int >> &ualist)
StoreUaNames.
Definition: deviceLcsIf.cpp:689
fcf::common::Dispatcher m_failure
Dispatcher for managing failures in the communication.
Definition: deviceLcsIf.hpp:372
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:31
virtual bool IsDisabling()
Check if controller is in Disabling state.
Definition: deviceLcsIf.cpp:517
virtual std::string GetHwError(int &error_code, const bool update=false)
Get error message.
Definition: deviceLcsIf.cpp:641
virtual bool IsHwFailure()
Check if controller is in Hardware Failure.
Definition: deviceLcsIf.cpp:523
void SetData(const DeviceControllerData &data)
Definition: deviceLcsIf.cpp:41
int m_state
Definition: deviceLcsIf.hpp:48
YAML::Node m_config_node
YAML node for the device mapping file.
Definition: deviceLcsIf.hpp:352
virtual std::string GetRpcError(const short error_code) const =0
Get associated message from the RPC error code.
virtual void StopMonitoring()
Stop monitoring of controller attributes.
Definition: deviceLcsIf.cpp:631
int m_substate
Definition: deviceLcsIf.hpp:49
void SetLocalFlag(bool local_flag)
virtual std::shared_ptr< IDeviceConfig > GetDeviceConfig()
Get a pointer of device configuration.
Definition: deviceLcsIf.cpp:610
void StoreAttribute(const std::string key, const fcf::common::Variant &value, int attribute)
Store the updated into the DB.
Definition: deviceLcsIf.cpp:709
std::unordered_map< std::string, short > m_ua_status_map
Definition: deviceLcsIf.hpp:412
fcf::common::Dispatcher< fcf::common::VectorVariant & > m_dispatcher
Dispatcher for managing subscription events.
Definition: deviceLcsIf.hpp:367
virtual bool IsNotReady()
Check if controller is in Standby/NotReady state.
Definition: deviceLcsIf.cpp:457
fcf::common::Dispatcher< fcf::common::VectorVariant & > & GetDispatcher()
Definition: deviceLcsIf.cpp:601
fcf::common::Dispatcher m_normal
Dispatcher for managing recovery of communication failures.
Definition: deviceLcsIf.hpp:377
Definition: deviceLcsIf.hpp:87
std::string GetStateStr() const
elt::mal::Mal::Properties m_mal_properties
Definition: deviceLcsIf.hpp:404
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 void Reset()
Executes the Reset RPC.
Definition: deviceLcsIf.cpp:382
bool IsConfigLoaded() const
Check if configuration was loaded.
Definition: deviceLcsIf.cpp:597
virtual void Enable()
Executes the Enable RPC.
Definition: deviceLcsIf.cpp:307
bool GetLocalFlag() const
virtual void Connect()
Connect to the controller or simulator.
Definition: deviceLcsIf.cpp:210
short m_state
Actual controller state.
Definition: deviceLcsIf.hpp:382
virtual ~DeviceControllerData()
Definition: deviceLcsIf.cpp:38
virtual void StartMonitoring()
Start monitoring of controller attributes.
Definition: deviceLcsIf.cpp:615
void GetStates(int &state, int &substate)
Get states (state and substate) of the controller.
Definition: deviceLcsIf.cpp:537
std::string GetMapValue(std::string category, std::string key)
Get mapping valLampConfigue.
Definition: deviceLcsIf.cpp:675
int ReadErrorCode()
Definition: deviceLcsIf.cpp:139
std::shared_ptr< fcf::common::IComm > m_comm
Shared pointer to the communication object.
Definition: deviceLcsIf.hpp:357
Definition: dataContext.hpp:81
Definition: deviceLcsIf.hpp:86
void SetSubstate(int subtate)
virtual void Disable()
Executes the Disable RPC.
Definition: deviceLcsIf.cpp:344
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.
Definition: deviceLcsIf.hpp:85
DeviceLcsIf(std::shared_ptr< IDeviceConfig > config, DataContext &data_ctx)
DeviceLcsIf constructor.
Definition: deviceLcsIf.cpp:47
void ExecuteRpc(const std::string &obj, const std::string &proc, fcf::common::VectorVariant &attr_list)
Definition: deviceLcsIf.cpp:114
bool m_local
Definition: deviceLcsIf.hpp:50
int m_error_code
Definition: deviceLcsIf.hpp:51
std::unordered_map< short, std::string > m_hw_errors
Definition: deviceLcsIf.hpp:418
void LoadConfig()
Load the YAML configuration.
Definition: deviceLcsIf.cpp:95
bool m_connected
Flag indicating whether the LCS is connected.
Definition: deviceLcsIf.hpp:397
virtual bool IsOperational()
Check if controller is in Operational.
Definition: deviceLcsIf.cpp:502
bool m_config_loaded
Flag indicating whether the configuration was successfully loaded.
Definition: deviceLcsIf.hpp:392
std::string m_pub_endpoint
Definition: deviceLcsIf.hpp:405
std::shared_ptr< IDeviceConfig > m_config
Shared pointer to the device config object.
Definition: deviceLcsIf.hpp:362
DeviceConfig class header file.
Definition: deviceLcsIf.hpp:72
virtual void Disconnect()
Disconnect from the controller of simulator.
Definition: deviceLcsIf.cpp:237