ifw-fcf
5.0.0-pre2
|
#include <iodev.hpp>
Public Member Functions | |
IODev (const std::string &filename, const std::string &name, fcf::devmgr::common::DataContext &data_ctx) | |
IODev constructor. More... | |
virtual | ~IODev ()=default |
Default destructor. More... | |
void | CreateObjects (std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config=nullptr) override |
Create object instances. More... | |
virtual void | Setup (const std::any &payload) override |
Executes a setup of the motor device. More... | |
virtual bool | IsSetupActive (const std::any &payload) const override |
Check if last setup message is still active. More... | |
virtual void | Status (const std::any &payload, std::string &buffer) override |
Obtain the status of the device. More... | |
virtual void | Status (bool end_acq, const core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle) override |
Obtain the status of the device. More... | |
virtual void | UpdateStatus () override |
Update the status of the IODev device in the OLDB. More... | |
void | GetStatusList (utils::bat::DbVector &cfg_status, const IODevControllerData &status_data) |
Get a vector with device status data. More... | |
![]() | |
Device (const std::string filename, const std::string name, DataContext &data_ctx) | |
Device abstract class constructor. More... | |
virtual | ~Device () |
Default destructor. More... | |
virtual bool | IsNotReady () const override |
Check if device is Standby/NotReady. More... | |
virtual bool | IsReady () const override |
Check if device is Standby/Ready. More... | |
virtual bool | IsOperational () const override |
Check if device is Operational. More... | |
virtual void | CheckHwFailure () const override |
Check if device is in failure state. More... | |
virtual bool | IsDisabling () const override |
Check if device is disablig. More... | |
virtual void | Init () override |
Executes a Init command. More... | |
virtual void | Enable () override |
Executes a Enable command. More... | |
virtual void | Disable () override |
Executes a Disable command. More... | |
virtual void | Stop () override |
Executes a Stop command. More... | |
virtual void | Reset () override |
Executes a Reset command. More... | |
virtual void | GetStatusBuffer (const std::string &stat_prefix, const DeviceControllerData *const data, std::string &buffer) |
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. More... | |
virtual void | Simulate (rad::AnyEvent const &last_event) override |
Executes a Simulat. More... | |
virtual void | StopSim (rad::AnyEvent const &last_event) override |
Executes a StopSim. More... | |
virtual void | Ignore (rad::AnyEvent const &last_event) override |
Executes a Ignore. More... | |
virtual void | StopIgn (rad::AnyEvent const &last_event) override |
Executes a StopIgn. More... | |
virtual void | HwReset (rad::AnyEvent const &last_event) override |
Executes a hardware reset command. More... | |
virtual void | HwInit (rad::AnyEvent const &last_event) override |
Executes a hardware init command. More... | |
virtual void | HwEnable (rad::AnyEvent const &last_event) override |
Executes a hardware enable command. More... | |
virtual void | HwDisable (rad::AnyEvent const &last_event) override |
Executes a hardware disable command. More... | |
virtual void | StartMonitoring () override |
Start device monitoring via OPCUA subscriptions. More... | |
virtual void | StopMonitoring () override |
Stop device monitoring. More... | |
virtual std::string | GetName () const noexcept override |
Get device id. More... | |
virtual std::string | GetLogName () const noexcept |
Get device id for logging purposes. More... | |
virtual std::shared_ptr< fcf::devmgr::common::DeviceLcsIf > | GetLcsIf () const noexcept |
virtual std::shared_ptr< fcf::devmgr::common::IDeviceConfig > | GetConfig () const noexcept |
Get a pointer of device configuration. More... | |
void | RegisterComm (std::shared_ptr< protocol::base::IComm > comm_if, protocol::base::Dispatcher<> &failure, protocol::base::Dispatcher<> &normal) |
Register a communication interface object. More... | |
![]() | |
virtual void | CreateObjects (std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config=nullptr)=0 |
Create basic objects needed by the device class. More... | |
Protected Member Functions | |
void | GetStatusBuffer (const std::string &stat_prefix, const IODevControllerData *const data, std::string &buffer) |
Get status buffer. More... | |
void | GetStatusHeader (const std::string &prefix, const IODevControllerData *const data, bool end_acq, const core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle) |
Get device status for the data acquisition. More... | |
![]() | |
bool | IsMsgForMe (const std::string &id) const noexcept |
Check if received message id is addressed to me. More... | |
void | UpdateDb (utils::bat::DbVector &vec) |
Update device database. More... | |
void | SetIgnore (bool flag) |
SetIgnore. More... | |
void | SetSimulation (bool flag) |
SetSimulation. More... | |
void | GetPrefix (const std::vector< std::string > prefix_list, std::string &prefix) const |
Get prefix for writing attributes to the DB. More... | |
std::string | GetCfgPrefix (const std::vector< std::string > prefix_list) const |
std::string | GetStatPrefix (const std::vector< std::string > prefix_list) const |
bool | CheckNameParam (const std::any &payload) |
Determine whether paramater is included (device name). More... | |
void | GetStatusList (utils::bat::DbVector &cfg_list, const DeviceControllerData &status) |
virtual void | WriteConfig () |
Write configuration into OLDB. More... | |
Protected Attributes | |
IODevControllerData | m_controller_status |
< object containing the status of the controller More... | |
protocol::base::VectorVariant | m_sensor_list |
![]() | |
std::string | m_filename |
device configuration filename. More... | |
std::string | m_name |
device ID. More... | |
DataContext & | m_data_ctx |
reference to the data context object. More... | |
protocol::base::Dispatcher | m_failure |
Dispatcher for managing failures. More... | |
protocol::base::Dispatcher | m_normal |
Dispatcher for managing positive events. More... | |
std::shared_ptr< DeviceConfig > | m_config |
Pointer to configuration object. More... | |
std::shared_ptr< DeviceLcsIf > | m_lcs_if |
Local Control System Interface. More... | |
The IODev class.
This class handles the behaviour of a generic IODev device.
The IODev class have two auxiliary objects. One for managing the device configuration and the other one for managing the connection to the device controller running in the Local Control System (LCS). These two objects are created by a dedicated method. These objects inherits basic behaviours from their parent classes.
fcf::devmgr::iodev::IODev::IODev | ( | const std::string & | filename, |
const std::string & | name, | ||
fcf::devmgr::common::DataContext & | data_ctx | ||
) |
|
virtualdefault |
Default destructor.
|
override |
Create object instances.
config | Shared pointer to a device config object |
This method creates the instances of the device configuration and LCS interface objects that are needed by the device. If can override the type of the configuration by passing a parameter otherwise it will use the default IODevConfig.
|
protected |
Get status buffer.
stat_prefix | status prefix to be used |
data | data structure |
buffer | output buffer |
This method will fill up the buffer string with the motor status information. This information will be delivered to the user when receiving the DevStatus command.
|
protected |
Get device status for the data acquisition.
data | data structure |
end_acq | flag to indicate end of acquisition. |
dictionary | reference dictionary |
fits_handle | pointer to FITS object |
void fcf::devmgr::iodev::IODev::GetStatusList | ( | utils::bat::DbVector & | cfg_status, |
const IODevControllerData & | status_data | ||
) |
Get a vector with device status data.
cfg_status | vector with the status data |
status_data | device controller data structure |
This method obtains a vector with the list of status information to be written into the DB.
|
overridevirtual |
Check if last setup message is still active.
[in] | payload | setup message associated with the action |
In case an error with the hardware while waiting for the setup to finish, the method will catch the exception and rethrow a new one with more context information.
an | exception if an error ocurrs. |
Implements fcf::devmgr::common::IDevice.
|
overridevirtual |
Executes a setup of the motor device.
[in] | payload | contains the payload of the setup message. |
an | exception if an error ocurrs. |
Implements fcf::devmgr::common::IDevice.
|
overridevirtual |
Obtain the status of the device.
end_acq | Flag to indicate is the end of the acquisition |
dictionary | Reference to the dictionary object |
fits_handle | Pointer to the CCFITS object |
This method will obtain the data from each device and add the corresponding meta-data to the CCfits object. If the end_acq is not true it will just register the start of the acquisition.
Implements fcf::devmgr::common::IDevice.
|
overridevirtual |
Obtain the status of the device.
payload | Status message object |
buffer | Buffer where the status will be written |
Implements fcf::devmgr::common::IDevice.
|
overridevirtual |
Update the status of the IODev device in the OLDB.
This method reads the status from the controller and updates the database accordingly.
Implements fcf::devmgr::common::IDevice.
|
protected |
< object containing the status of the controller
|
protected |