ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
device.hpp
Go to the documentation of this file.
1
7
8#ifndef FCF_DEVMGR_COMMON_DEVICE_HPP
9#define FCF_DEVMGR_COMMON_DEVICE_HPP
10
11#include <functional>
12
13#include <boost/algorithm/string/trim.hpp>
14
19
20
21namespace ifw::fcf {
22namespace devmgr {
23 namespace common {
24
25 class DeviceConfig;
26 class DeviceLcsIf;
33 class Device : public IDevice {
34
35 public:
42 Device(const std::string filename,
43 const std::string name,
44 DataContext& data_ctx);
45
49 virtual ~Device();
50
51
57 virtual bool IsNotReady() const override;
63 virtual bool IsReady() const override;
64
70 virtual bool IsOperational() const override;
71
77 virtual void CheckHwFailure() const override;
78
84 virtual bool IsDisabling() const override;
85
91 virtual void Init() override;
92
98 virtual void Enable() override;
99
105 virtual void Disable() override;
106
112 virtual void Stop() override;
113
119 virtual void Reset() override;
120
121
122
123 void GetStatusBuffer(const std::string& stat_prefix,
124 const DeviceControllerData* const data,
125 std::string& buffer);
126
137 void GetStatusHeader(const std::string& prefix,
138 const ifw::core::dit::did::Did& dictionary,
139 std::shared_ptr<CCfits::FITS>& fits_handle);
140
141
149 virtual void Simulate(rad::AnyEvent const& last_event) override;
150
158 virtual void StopSim(rad::AnyEvent const& last_event) override;
159
167 virtual void Ignore(rad::AnyEvent const& last_event) override;
168
176 virtual void StopIgn(rad::AnyEvent const& last_event) override;
177
185 virtual void HwReset(rad::AnyEvent const& last_event) override;
186
194 virtual void HwInit(rad::AnyEvent const& last_event) override;
195
203 virtual void HwEnable(rad::AnyEvent const& last_event) override;
204
212 virtual void HwDisable(rad::AnyEvent const& last_event) override;
213
217 virtual void StartMonitoring() override;
218
222 virtual void StopMonitoring() override;
223
228 inline virtual std::string GetName() const noexcept override {
229 return m_name;
230 };
231
236 inline virtual std::string GetLogName() const noexcept {
237 string name = "[" + m_name + "]";
238 return name;
239 };
240
245 virtual std::shared_ptr<ifw::fcf::devmgr::common::DeviceLcsIf> GetLcsIf() const noexcept {
246 return m_lcs_if;
247 };
248
254 virtual std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> GetConfig() const noexcept {
255 return m_config;
256 };
257
258
274 void RegisterComm(std::shared_ptr<ifw::fnd::defs::ICommAdapter> comm_if,
275 std::function<void()> on_failure,
276 std::function<void()> on_normal);
277
278 protected:
279
286 inline bool IsMsgForMe(const std::string& id) const noexcept {
287 if (m_name.compare(boost::algorithm::trim_copy(id)) == 0) {
288 return true;
289 }
290 return false;
291 };
292
293 std::string GetFileName() const noexcept {
294 return m_filename;
295 };
296
298 return m_data_ctx;
299 };
300
306 void UpdateDb(ifw::core::utils::bat::DbVector& vec);
307
312 void SetIgnore(bool flag);
313
318 void SetSimulation(bool flag);
319
325 void GetPrefix(const std::vector<std::string> prefix_list, std::string& prefix) const;
326
327 std::string GetCfgPrefix(const std::vector<std::string> prefix_list) const;
328 std::string GetStatPrefix(const std::vector<std::string> prefix_list) const;
329
337 bool CheckNameParam(const std::any& payload);
338
339 void GetStatusList(ifw::core::utils::bat::DbVector& cfg_list,
340 const DeviceControllerData& status);
341
345 virtual void WriteConfig();
346
347 protected:
348 // NOLINTBEGIN(misc-non-private-member-variables-in-classes)
349 std::string m_filename;
350 std::string m_name;
352
355 std::function<void()> m_on_failure;
358 std::function<void()> m_on_normal;
359
361 std::shared_ptr<DeviceConfig> m_config;
362
364 std::shared_ptr<DeviceLcsIf> m_lcs_if;
365 // NOLINTEND(misc-non-private-member-variables-in-classes)
366 private:
367 log4cplus::Logger m_logger;
368
369 };
370
371 }
372 }
373}
374
375
376#endif //FCF_DEVMGR_COMMON_DEVICE_HPP
Definition dataContext.hpp:86
Device Configuration class.
Definition deviceConfig.hpp:124
Definition deviceLcsIf.hpp:91
virtual bool IsOperational() const override
Check if device is Operational.
Definition device.cpp:571
virtual void Stop() override
Executes a Stop command.
Definition device.cpp:107
std::function< void()> m_on_normal
Definition device.hpp:358
virtual void Enable() override
Executes a Enable command.
Definition device.cpp:73
virtual void HwDisable(rad::AnyEvent const &last_event) override
Executes a hardware disable command.
Definition device.cpp:510
virtual void HwInit(rad::AnyEvent const &last_event) override
Executes a hardware init command.
Definition device.cpp:464
virtual void HwEnable(rad::AnyEvent const &last_event) override
Executes a hardware enable command.
Definition device.cpp:487
std::string GetFileName() const noexcept
Definition device.hpp:293
virtual bool IsDisabling() const override
Check if device is disablig.
Definition device.cpp:619
virtual void Ignore(rad::AnyEvent const &last_event) override
Executes a Ignore.
Definition device.cpp:350
virtual void WriteConfig()
Write configuration into OLDB.
Definition device.cpp:750
virtual void StopIgn(rad::AnyEvent const &last_event) override
Executes a StopIgn.
Definition device.cpp:391
bool CheckNameParam(const std::any &payload)
Determine whether paramater is included (device name).
Definition device.cpp:775
void GetStatusBuffer(const std::string &stat_prefix, const DeviceControllerData *const data, std::string &buffer)
Definition device.cpp:155
DataContext & GetDataCtx() const noexcept
Definition device.hpp:297
virtual bool IsNotReady() const override
Check if device is Standby/NotReady.
Definition device.cpp:533
std::shared_ptr< DeviceConfig > m_config
Pointer to configuration object.
Definition device.hpp:361
std::string m_filename
device configuration filename.
Definition device.hpp:349
virtual void HwReset(rad::AnyEvent const &last_event) override
Executes a hardware reset command.
Definition device.cpp:441
void SetIgnore(bool flag)
SetIgnore.
Definition device.cpp:646
virtual void Init() override
Executes a Init command.
Definition device.cpp:39
void RegisterComm(std::shared_ptr< ifw::fnd::defs::ICommAdapter > comm_if, std::function< void()> on_failure, std::function< void()> on_normal)
Register a communication interface object.
Definition device.cpp:799
virtual std::shared_ptr< ifw::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:589
virtual bool IsReady() const override
Check if device is Standby/Ready.
Definition device.cpp:552
void SetSimulation(bool flag)
SetSimulation.
Definition device.cpp:665
std::function< void()> m_on_failure
Definition device.hpp:355
std::string m_name
device ID.
Definition device.hpp:350
virtual std::string GetLogName() const noexcept
Get device id for logging purposes.
Definition device.hpp:236
std::string GetCfgPrefix(const std::vector< std::string > prefix_list) const
Definition device.cpp:695
virtual void StopMonitoring() override
Stop device monitoring.
Definition device.cpp:734
virtual std::shared_ptr< ifw::fcf::devmgr::common::DeviceLcsIf > GetLcsIf() const noexcept
Definition device.hpp:245
virtual void Disable() override
Executes a Disable command.
Definition device.cpp:91
virtual void StartMonitoring() override
Start device monitoring via OPCUA subscriptions.
Definition device.cpp:721
std::shared_ptr< DeviceLcsIf > m_lcs_if
Local Control System Interface.
Definition device.hpp:364
void GetStatusHeader(const std::string &prefix, const ifw::core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle)
Obtain the status of the device.
Definition device.cpp:811
void UpdateDb(ifw::core::utils::bat::DbVector &vec)
Update device database.
Definition device.cpp:637
Device(const std::string filename, const std::string name, DataContext &data_ctx)
Device abstract class constructor.
Definition device.cpp:27
virtual std::string GetName() const noexcept override
Get device id.
Definition device.hpp:228
virtual ~Device()
Default destructor.
Definition device.cpp:35
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix) const
Get prefix for writing attributes to the DB.
Definition device.cpp:685
virtual void Reset() override
Executes a Reset command.
Definition device.cpp:122
virtual void Simulate(rad::AnyEvent const &last_event) override
Executes a Simulat.
Definition device.cpp:190
DataContext & m_data_ctx
reference to the data context object.
Definition device.hpp:351
virtual void StopSim(rad::AnyEvent const &last_event) override
Executes a StopSim.
Definition device.cpp:247
void GetStatusList(ifw::core::utils::bat::DbVector &cfg_list, const DeviceControllerData &status)
Definition device.cpp:833
std::string GetStatPrefix(const std::vector< std::string > prefix_list) const
Definition device.cpp:708
bool IsMsgForMe(const std::string &id) const noexcept
Check if received message id is addressed to me.
Definition device.hpp:286
Definition iDevice.hpp:41
ActionMgr class source file.
Definition actionMgr.cpp:28
actuatorLcsIf class header file.
Definition actionMgr.cpp:28
ActionsEnable class source file.
Definition actionMgr.cpp:28
The DeviceControllerData struct.
Definition deviceLcsIf.hpp:49
std::string const
Definition test{{cookiecutter.device_name|capitalize()}}.cpp:159