8#ifndef FCF_DEVMGR_DEVICE_IODEV_LCSIF_HPP
9#define FCF_DEVMGR_DEVICE_IODEV_LCSIF_HPP
11#include <unordered_map>
13#include <yaml-cpp/yaml.h>
20#include <rad/mal/publisher.hpp>
43 void SetRawValue(
const ifw::core::protocol::base::Variant& value);
48 ifw::core::protocol::base::Variant m_value;
49 std::string m_named_value;
81 std::unordered_map<std::string, IODevData> m_values;
120 IODevLcsIf(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config,
148 void GetStates(
int& state,
int& substate)
override;
166 void Stop()
override;
188 void WriteOutputs(
const ifw::core::protocol::base::VectorVariant& channel_list);
189 void SetOutputs(
const ifw::core::protocol::base::VectorVariant& channel_list);
235 void Listener(ifw::core::protocol::base::VectorVariant& params);
242 virtual std::string
GetRpcError(
const short error_code)
const;
253 void PublishState(
const ifw::core::protocol::base::Variant& value);
262 void PublishSubstate(
const ifw::core::protocol::base::Variant& value);
264 void PublishError(
const ifw::core::protocol::base::Variant& value);
266 void PublishChannel(
const std::string channel,
267 const ifw::core::protocol::base::Variant& value);
272 std::unordered_map<std::string, std::string> m_channels_map;
273 std::unordered_map<std::string, IODevData> m_channel_values;
274 log4cplus::Logger m_logger;
279#include "iodevLcsIf.ipp"
Definition dataContext.hpp:86
Definition deviceLcsIf.hpp:84
Sensor Local Control System (LCS) Interface (IF) class.
Definition iodevLcsIf.hpp:99
void WriteOutputs(const ifw::core::protocol::base::VectorVariant &channel_list)
Definition iodevLcsIf.cpp:239
void StopMonitoring()
Stop monitoring of controller attributes.
Definition iodevLcsIf.cpp:317
virtual bool IsReady() const
Check if controller is in Standby/Ready state.
Definition iodevLcsIf.cpp:173
void Stop() override
Executes the Stop RPC.
Definition iodevLcsIf.cpp:167
void Listener(ifw::core::protocol::base::VectorVariant ¶ms)
Callback to manage changes on the monitored items.
Definition iodevLcsIf.cpp:350
void GetStates(int &state, int &substate) override
Get states (state and substate) of the controller.
Definition iodevLcsIf.cpp:134
bool IsHwFailure() const
Check if Sensor is in hardware error.
Definition iodevLcsIf.cpp:224
IODevLcsIf(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config, ifw::fcf::devmgr::common::DataContext &data_ctx)
IODevLcsIf constructor.
Definition iodevLcsIf.cpp:39
virtual void InitObject()
Initialize object.
Definition iodevLcsIf.cpp:49
virtual bool IsNotReady() const
Check if controller is in Standby/NotReady state.
Definition iodevLcsIf.cpp:192
@ STAT_SUBSTATE
Definition iodevLcsIf.hpp:106
@ STAT_STATE
Definition iodevLcsIf.hpp:105
@ STAT_ERROR
Definition iodevLcsIf.hpp:104
@ STAT_CHANNEL
Definition iodevLcsIf.hpp:107
@ STAT_LOCAL
Definition iodevLcsIf.hpp:103
void StartMonitoring()
Start monitoring of controller attributes.
Definition iodevLcsIf.cpp:295
virtual void ReadStatus(IODevControllerData &status)
Read status from the controller.
Definition iodevLcsIf.cpp:339
virtual bool IsOperational() const
Check if controller is in Operational.
Definition iodevLcsIf.cpp:204
virtual ~IODevLcsIf()
Default destructor.
Definition iodevLcsIf.hpp:126
void Enable() override
Executes the Enable RPC.
Definition iodevLcsIf.cpp:157
virtual std::string GetRpcError(const short error_code) const
Definition iodevLcsIf.cpp:392
void SetOutputs(const ifw::core::protocol::base::VectorVariant &channel_list)
Definition iodevLcsIf.cpp:271
IODev class header file.
Definition iodev.hpp:17
The DeviceControllerData struct.
Definition deviceLcsIf.hpp:42
The IODevControllerData struct.
Definition iodevLcsIf.hpp:61
void SetData(const IODevControllerData &data)
Definition iodevLcsIf.cpp:34
void ClearChannelValues()
virtual std::string GetSubstateStr() const
void SetChannelValue(const std::string &channel, const IODevData &value)
void GetChannelValue(const std::string &channel, IODevData &data) const
IODevControllerData()
Definition iodevLcsIf.cpp:27
virtual ~IODevControllerData()
Definition iodevLcsIf.cpp:31
std::string GetErrorText() const
The ChannelData struct.
Definition iodevLcsIf.hpp:29
void SetNamedValue(const std::string &value)
void GetValue(bool &value) const
void SetValue(const double &value)
void GetValue(int &value) const
void GetValue(double &value) const
void SetRawValue(const ifw::core::protocol::base::Variant &value)
void SetValue(const bool &value)
ifw::core::protocol::base::Variant GetRawValue() const
std::string GetNamedValue() const
IODevData()
Definition iodevLcsIf.cpp:16
void SetValue(const int &value)
virtual ~IODevData()
Definition iodevLcsIf.cpp:19
friend std::ostream & operator<<(std::ostream &dest, const IODevData &obj)
Definition iodevLcsIf.cpp:22