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>
27 std::is_same_v<T, bool> ||
28 std::is_same_v<T, int> ||
29 std::is_same_v<T, unsigned int> ||
30 std::is_same_v<T, short> ||
31 std::is_same_v<T, double> ||
32 std::is_same_v<T, float> ||
33 std::is_same_v<T, uint8_t>;
58 ifw::fnd::defs::Value m_value;
59 std::string m_named_value;
91 std::unordered_map<std::string, IODevData> m_values;
131 IODevLcsIf(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config,
159 void GetStates(
int& state,
int& substate)
override;
177 void Stop()
override;
199 void WriteOutputs(
const std::vector<ifw::fnd::defs::WriteItem>& channel_list);
200 void SetOutputs(
const std::vector<ifw::fnd::defs::WriteItem>& channel_list);
246 void Listener(
const ifw::fnd::defs::Notification& note);
253 virtual std::string
GetRpcError(
const short error_code)
const;
264 void PublishState(
const ifw::fnd::defs::Value& value);
273 void PublishSubstate(
const ifw::fnd::defs::Value& value);
275 void PublishError(
const ifw::fnd::defs::Value& value);
277 void PublishChannel(
const std::string channel,
278 const ifw::fnd::defs::Value& value);
283 std::unordered_map<std::string, std::string> m_channels_map;
284 std::unordered_map<std::string, IODevData> m_channel_values;
285 log4cplus::Logger m_logger;
290#include "iodevLcsIf.ipp"
Definition dataContext.hpp:86
Definition deviceLcsIf.hpp:91
virtual void ReadStatus(DeviceControllerData &status)
ReadStatus.
Definition deviceLcsIf.cpp:651
void StopMonitoring()
Stop monitoring of controller attributes.
Definition iodevLcsIf.cpp:336
virtual bool IsReady() const
Check if controller is in Standby/Ready state.
Definition iodevLcsIf.cpp:190
void Stop() override
Executes the Stop RPC.
Definition iodevLcsIf.cpp:184
void GetStates(int &state, int &substate) override
Get states (state and substate) of the controller.
Definition iodevLcsIf.cpp:151
bool IsHwFailure() const
Check if Sensor is in hardware error.
Definition iodevLcsIf.cpp:241
IODevLcsIf(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config, ifw::fcf::devmgr::common::DataContext &data_ctx)
IODevLcsIf constructor.
Definition iodevLcsIf.cpp:56
virtual void InitObject()
Initialize object.
Definition iodevLcsIf.cpp:66
virtual bool IsNotReady() const
Check if controller is in Standby/NotReady state.
Definition iodevLcsIf.cpp:209
void StartMonitoring()
Start monitoring of controller attributes.
Definition iodevLcsIf.cpp:308
virtual void ReadStatus(IODevControllerData &status)
Read status from the controller.
Definition iodevLcsIf.cpp:356
void Listener(const ifw::fnd::defs::Notification ¬e)
Callback to manage changes on the monitored items.
Definition iodevLcsIf.cpp:367
virtual bool IsOperational() const
Check if controller is in Operational.
Definition iodevLcsIf.cpp:221
virtual ~IODevLcsIf()
Default destructor.
Definition iodevLcsIf.hpp:137
void Enable() override
Executes the Enable RPC.
Definition iodevLcsIf.cpp:174
void WriteOutputs(const std::vector< ifw::fnd::defs::WriteItem > &channel_list)
Definition iodevLcsIf.cpp:256
virtual std::string GetRpcError(const short error_code) const
Definition iodevLcsIf.cpp:406
void SetOutputs(const std::vector< ifw::fnd::defs::WriteItem > &channel_list)
Definition iodevLcsIf.cpp:287
@ STAT_SUBSTATE
Definition iodevLcsIf.hpp:116
@ STAT_STATE
Definition iodevLcsIf.hpp:115
@ STAT_ERROR
Definition iodevLcsIf.hpp:114
@ STAT_CHANNEL
Definition iodevLcsIf.hpp:117
@ STAT_LOCAL
Definition iodevLcsIf.hpp:113
IODev class header file.
Definition iodev.hpp:17
constexpr bool is_supported_scalar_v
Definition iodevLcsIf.hpp:26
The DeviceControllerData struct.
Definition deviceLcsIf.hpp:49
The IODevControllerData struct.
Definition iodevLcsIf.hpp:71
void SetData(const IODevControllerData &data)
Definition iodevLcsIf.cpp:51
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:44
virtual ~IODevControllerData()
Definition iodevLcsIf.cpp:48
std::string GetErrorText() const
The ChannelData struct.
Definition iodevLcsIf.hpp:40
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::fnd::defs::Value &value)
void SetValue(const bool &value)
std::string GetNamedValue() const
IODevData()
Definition iodevLcsIf.cpp:18
void SetValue(const int &value)
ifw::fnd::defs::Value GetRawValue() const
virtual ~IODevData()
Definition iodevLcsIf.cpp:21
friend std::ostream & operator<<(std::ostream &dest, const IODevData &obj)
Definition iodevLcsIf.cpp:24