Go to the documentation of this file.
9 #ifndef FCF_DEVMGR_COMMON_DEVICE_HPP
10 #define FCF_DEVMGR_COMMON_DEVICE_HPP
13 #include <boost/algorithm/string/trim.hpp>
15 #include <fcf/common/dispatcher.hpp>
42 Device(
const std::string filename,
43 const std::string name,
63 virtual bool IsReady()
const override;
91 virtual void Init()
override;
98 virtual void Enable()
override;
105 virtual void Disable()
override;
112 virtual void Stop()
override;
119 virtual void Reset()
override;
125 std::string& buffer);
138 const core::dit::did::Did& dictionary,
139 std::shared_ptr<CCfits::FITS>& fits_handle);
149 virtual void Simulate(rad::AnyEvent
const& last_event)
override;
158 virtual void StopSim(rad::AnyEvent
const& last_event)
override;
167 virtual void Ignore(rad::AnyEvent
const& last_event)
override;
176 virtual void StopIgn(rad::AnyEvent
const& last_event)
override;
185 virtual void HwReset(rad::AnyEvent
const& last_event)
override;
194 virtual void HwInit(rad::AnyEvent
const& last_event)
override;
203 virtual void HwEnable(rad::AnyEvent
const& last_event)
override;
212 virtual void HwDisable(rad::AnyEvent
const& last_event)
override;
237 string name =
"[" +
m_name +
"]";
245 virtual std::shared_ptr<fcf::devmgr::common::DeviceLcsIf>
GetLcsIf()
const noexcept {
254 virtual std::shared_ptr<fcf::devmgr::common::IDeviceConfig>
GetConfig()
const noexcept {
274 void RegisterComm(std::shared_ptr<fcf::common::IComm> comm_if,
275 fcf::common::Dispatcher<>& failure,
276 fcf::common::Dispatcher<>& normal);
286 inline bool IsMsgForMe(
const std::string&
id)
const noexcept {
287 if (
m_name.compare(boost::algorithm::trim_copy(
id)) == 0) {
298 void UpdateDb(utils::bat::DbVector& vec);
317 void GetPrefix(
const std::vector<std::string> prefix_list, std::string& prefix)
const;
319 std::string
GetCfgPrefix(
const std::vector<std::string> prefix_list)
const;
320 std::string
GetStatPrefix(
const std::vector<std::string> prefix_list)
const;
356 log4cplus::Logger m_logger;
365 #endif //FCF_DEVMGR_COMMON_DEVICE_HPP
std::string m_filename
device configuration filename.
Definition: device.hpp:340
std::shared_ptr< DeviceConfig > m_config
Pointer to configuration object.
Definition: device.hpp:350
DataContext class header file.
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix) const
Get prefix for writing attributes to the DB.
Definition: device.cpp:678
virtual void Stop() override
Executes a Stop command.
Definition: device.cpp:108
std::string GetStatPrefix(const std::vector< std::string > prefix_list) const
Definition: device.cpp:701
virtual std::string GetLogName() const noexcept
Get device id for logging purposes.
Definition: device.hpp:236
DataContext & m_data_ctx
reference to the data context object.
Definition: device.hpp:342
virtual void HwEnable(rad::AnyEvent const &last_event) override
Executes a hardware enable command.
Definition: device.cpp:488
virtual ~Device()
Default destructor.
Definition: device.cpp:40
std::string const
Definition: test{{cookiecutter.device_name|capitalize()}}.cpp:162
virtual void HwDisable(rad::AnyEvent const &last_event) override
Executes a hardware disable command.
Definition: device.cpp:511
DeviceConfig class header file.
virtual void Simulate(rad::AnyEvent const &last_event) override
Executes a Simulat.
Definition: device.cpp:191
void SetIgnore(bool flag)
SetIgnore.
Definition: device.cpp:639
Device class header file.
virtual void StopSim(rad::AnyEvent const &last_event) override
Executes a StopSim.
Definition: device.cpp:248
Definition: iDevice.hpp:39
virtual std::shared_ptr< fcf::devmgr::common::DeviceLcsIf > GetLcsIf() const noexcept
Definition: device.hpp:245
virtual std::shared_ptr< fcf::devmgr::common::IDeviceConfig > GetConfig() const noexcept
Get a pointer of device configuration.
Definition: device.hpp:254
virtual void CheckHwFailure() const override
Check if device is in failure state.
Definition: device.cpp:590
virtual void StopIgn(rad::AnyEvent const &last_event) override
Executes a StopIgn.
Definition: device.cpp:392
Device(const std::string filename, const std::string name, DataContext &data_ctx)
Device abstract class constructor.
Definition: device.cpp:31
std::string m_name
device ID.
Definition: device.hpp:341
virtual void HwReset(rad::AnyEvent const &last_event) override
Executes a hardware reset command.
Definition: device.cpp:442
virtual void StartMonitoring() override
Start device monitoring via OPCUA subscriptions.
Definition: device.cpp:714
virtual void HwInit(rad::AnyEvent const &last_event) override
Executes a hardware init command.
Definition: device.cpp:465
bool CheckNameParam(const std::any &payload)
Determine whether paramater is included (device name).
Definition: device.cpp:759
virtual void StopMonitoring() override
Stop device monitoring.
Definition: device.cpp:727
deviceLcsIf class header file.
virtual void GetStatusBuffer(const std::string &stat_prefix, const DeviceControllerData *const data, std::string &buffer)
Definition: device.cpp:156
virtual void Disable() override
Executes a Disable command.
Definition: device.cpp:92
Definition: dataContext.hpp:90
Definition: actionMgr.cpp:29
virtual bool IsOperational() const override
Check if device is Operational.
Definition: device.cpp:572
virtual void Enable() override
Executes a Enable command.
Definition: device.cpp:74
std::string GetCfgPrefix(const std::vector< std::string > prefix_list) const
Definition: device.cpp:688
virtual std::string GetName() const noexcept override
Get device id.
Definition: device.hpp:228
void GetStatusHeader(const std::string &prefix, const core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle)
Obtain the status of the device.
Definition: device.cpp:793
std::shared_ptr< DeviceLcsIf > m_lcs_if
Local Control System Interface.
Definition: device.hpp:353
virtual void Reset() override
Executes a Reset command.
Definition: device.cpp:123
virtual bool IsDisabling() const override
Check if device is disablig.
Definition: device.cpp:612
virtual void Init() override
Executes a Init command.
Definition: device.cpp:45
virtual bool IsNotReady() const override
Check if device is Standby/NotReady.
Definition: device.cpp:534
fcf::common::Dispatcher m_normal
Dispatcher for managing positive events.
Definition: device.hpp:347
void GetStatusList(utils::bat::DbVector &cfg_list, const DeviceControllerData &status)
Definition: device.cpp:823
bool IsMsgForMe(const std::string &id) const noexcept
Check if received message id is addressed to me.
Definition: device.hpp:286
virtual void Ignore(rad::AnyEvent const &last_event) override
Executes a Ignore.
Definition: device.cpp:351
void UpdateDb(utils::bat::DbVector &vec)
Update device database.
Definition: device.cpp:630
virtual bool IsReady() const override
Check if device is Standby/Ready.
Definition: device.cpp:553
void RegisterComm(std::shared_ptr< fcf::common::IComm > comm_if, fcf::common::Dispatcher<> &failure, fcf::common::Dispatcher<> &normal)
Register a communication interface object.
Definition: device.cpp:783
fcf::common::Dispatcher m_failure
Dispatcher for managing failures.
Definition: device.hpp:345
virtual void WriteConfig()
Write configuration into OLDB.
Definition: device.cpp:743
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:36
void SetSimulation(bool flag)
SetSimulation.
Definition: device.cpp:658