DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::timinglibs::TimingHardwareInterface Class Reference

TimingHardwareInterface sets up IPBus UHAL interface. More...

#include <TimingHardwareInterface.hpp>

Inheritance diagram for dunedaq::timinglibs::TimingHardwareInterface:
[legend]

Public Member Functions

 TimingHardwareInterface ()
 TimingHardwareInterface Constructor.
 
 TimingHardwareInterface (const TimingHardwareInterface &)=delete
 TimingHardwareInterface is not copy-constructible.
 
TimingHardwareInterfaceoperator= (const TimingHardwareInterface &)=delete
 TimingHardwareInterface is not copy-assignable.
 
 TimingHardwareInterface (TimingHardwareInterface &&)=delete
 TimingHardwareInterface is not move-constructible.
 
TimingHardwareInterfaceoperator= (TimingHardwareInterface &&)=delete
 TimingHardwareInterface is not move-assignable.
 

Protected Member Functions

template<class TIMING_DEV >
TIMING_DEV cast_timing_device (const uhal::Node *device_node, std::string timing_device_name)
 
void configure_uhal (const dunedaq::timinglibs::dal::TimingHardwareInterfaceConf *mdal)
 
void configure_uhal (const std::string &uhal_log_level, const std::string &connections_file)
 
void scrap_uhal ()
 

Protected Attributes

std::string m_connections_file
 
std::string m_uhal_log_level
 
std::unique_ptr< uhal::ConnectionManager > m_connection_manager
 

Detailed Description

TimingHardwareInterface sets up IPBus UHAL interface.

Definition at line 32 of file TimingHardwareInterface.hpp.

Constructor & Destructor Documentation

◆ TimingHardwareInterface() [1/3]

dunedaq::timinglibs::TimingHardwareInterface::TimingHardwareInterface ( )
explicit

TimingHardwareInterface Constructor.

Parameters
nameInstance name for this TimingHardwareInterface instance

Definition at line 41 of file TimingHardwareInterface.cpp.

◆ TimingHardwareInterface() [2/3]

dunedaq::timinglibs::TimingHardwareInterface::TimingHardwareInterface ( const TimingHardwareInterface & )
delete

TimingHardwareInterface is not copy-constructible.

◆ TimingHardwareInterface() [3/3]

dunedaq::timinglibs::TimingHardwareInterface::TimingHardwareInterface ( TimingHardwareInterface && )
delete

TimingHardwareInterface is not move-constructible.

Member Function Documentation

◆ cast_timing_device()

template<class TIMING_DEV >
TIMING_DEV dunedaq::timinglibs::TimingHardwareInterface::cast_timing_device ( const uhal::Node * device_node,
std::string timing_device_name )
protected

Definition at line 6 of file TimingHardwareInterface.hxx.

7{
8 auto timing_device = dynamic_cast<TIMING_DEV>(device_node);
9 if (!timing_device)
10 {
11 throw UHALDeviceClassIssue(ERS_HERE, timing_device_name, typeid(TIMING_DEV).name(), typeid(*device_node).name());
12 }
13 return timing_device;
14}
#define ERS_HERE

◆ configure_uhal() [1/2]

void dunedaq::timinglibs::TimingHardwareInterface::configure_uhal ( const dunedaq::timinglibs::dal::TimingHardwareInterfaceConf * mdal)
protected

Definition at line 79 of file TimingHardwareInterface.cpp.

80{
82}
void configure_uhal(const dunedaq::timinglibs::dal::TimingHardwareInterfaceConf *mdal)
const std::string & get_connections_file() const
Get "connections_file" attribute value. device connections file.
const std::string & get_uhal_log_level() const
Get "uhal_log_level" attribute value. Log level for uhal.

◆ configure_uhal() [2/2]

void dunedaq::timinglibs::TimingHardwareInterface::configure_uhal ( const std::string & uhal_log_level,
const std::string & connections_file )
protected

Definition at line 48 of file TimingHardwareInterface.cpp.

49{
50 m_uhal_log_level = uhal_log_level;
51
52 if (!m_uhal_log_level.compare("debug")) {
53 uhal::setLogLevelTo(uhal::Debug());
54 } else if (!m_uhal_log_level.compare("info")) {
55 uhal::setLogLevelTo(uhal::Info());
56 } else if (!m_uhal_log_level.compare("notice")) {
57 uhal::setLogLevelTo(uhal::Notice());
58 } else if (!m_uhal_log_level.compare("warning")) {
59 uhal::setLogLevelTo(uhal::Warning());
60 } else if (!m_uhal_log_level.compare("error")) {
61 uhal::setLogLevelTo(uhal::Error());
62 } else if (!m_uhal_log_level.compare("fatal")) {
63 uhal::setLogLevelTo(uhal::Fatal());
64 } else {
65 throw InvalidUHALLogLevel(ERS_HERE, m_uhal_log_level);
66 }
67
68 m_connections_file = connections_file;
69 try {
70 m_connection_manager = std::make_unique<uhal::ConnectionManager>("file://" + m_connections_file);
71 } catch (const uhal::exception::FileNotFound& excpt) {
72 std::stringstream message;
73 message << m_connections_file << " not found. Has TIMING_SHARE been set?";
74 throw UHALConnectionsFileIssue(ERS_HERE, message.str(), excpt);
75 }
76}
Unknown serialization Cannot deserialize message

◆ operator=() [1/2]

TimingHardwareInterface & dunedaq::timinglibs::TimingHardwareInterface::operator= ( const TimingHardwareInterface & )
delete

TimingHardwareInterface is not copy-assignable.

◆ operator=() [2/2]

TimingHardwareInterface & dunedaq::timinglibs::TimingHardwareInterface::operator= ( TimingHardwareInterface && )
delete

TimingHardwareInterface is not move-assignable.

◆ scrap_uhal()

void dunedaq::timinglibs::TimingHardwareInterface::scrap_uhal ( )
protected

Definition at line 85 of file TimingHardwareInterface.cpp.

86{
87 m_connection_manager.reset(nullptr);
89}

Member Data Documentation

◆ m_connection_manager

std::unique_ptr<uhal::ConnectionManager> dunedaq::timinglibs::TimingHardwareInterface::m_connection_manager
protected

Definition at line 55 of file TimingHardwareInterface.hpp.

◆ m_connections_file

std::string dunedaq::timinglibs::TimingHardwareInterface::m_connections_file
protected

Definition at line 53 of file TimingHardwareInterface.hpp.

◆ m_uhal_log_level

std::string dunedaq::timinglibs::TimingHardwareInterface::m_uhal_log_level
protected

Definition at line 54 of file TimingHardwareInterface.hpp.


The documentation for this class was generated from the following files: