DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
TopDesignInterface.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_TOPDESIGNINTERFACE_HPP_
13
#define TIMING_INCLUDE_TIMING_TOPDESIGNINTERFACE_HPP_
14
15
// PDT Headers
16
#include "
TimingIssues.hpp
"
17
#include "
timing/TimingNode.hpp
"
18
#include "
timing/IONode.hpp
"
19
20
#include "
timing/timingfirmwareinfo/Structs.hpp
"
21
#include "
timing/timingfirmwareinfo/Nljs.hpp
"
22
23
// uHal Headers
24
#include "uhal/DerivedNode.hpp"
25
26
#include <nlohmann/json.hpp>
27
28
// C++ Headers
29
#include <chrono>
30
#include <sstream>
31
#include <string>
32
33
namespace
dunedaq
{
34
namespace
timing
{
35
39
class
TopDesignInterface
:
public
TimingNode
40
{
41
public
:
42
explicit
TopDesignInterface
(
const
uhal::Node& node)
43
:
TimingNode
(node) {}
44
virtual
~TopDesignInterface
() {}
45
49
virtual
const
IONode
*
get_io_node_plain
()
const
= 0;
50
51
52
template
<
class
IO>
53
const
IO*
get_io_node
()
const
54
{
55
return
dynamic_cast<
const
IO*
>
(
get_io_node_plain
());
56
}
57
61
virtual
void
soft_reset_io
()
const
= 0;
62
66
virtual
void
reset_io
(
const
std::string& clock_config_file)
const
= 0;
67
71
virtual
void
reset_io
(
const
ClockSource
& clock_source)
const
= 0;
72
77
virtual
void
configure
(
ClockSource
clock_source)
const
= 0;
78
82
virtual
std::string
get_hardware_info
(
bool
print_out =
false
)
const
= 0;
83
89
virtual
uint32_t
read_firmware_version
()
const
= 0;
// NOLINT(build/unsigned)
90
95
virtual
void
validate_firmware_version
()
const
= 0;
96
100
virtual
void
get_info
(
timingfirmwareinfo::TimingDeviceInfo
& mon_data)
const
= 0;
101
102
};
103
104
}
// namespace timing
105
}
// namespace dunedaq
106
107
#endif
// TIMING_INCLUDE_TIMING_TOPDESIGNINTERFACE_HPP_
IONode.hpp
TimingNode.hpp
dunedaq::timing::IONode
Base class for timing IO nodes.
Definition
IONode.hpp:44
dunedaq::timing::TimingNode::TimingNode
TimingNode(const uhal::Node &node)
Definition
TimingNode.cpp:18
dunedaq::timing::TopDesignInterface::~TopDesignInterface
virtual ~TopDesignInterface()
Definition
TopDesignInterface.hpp:44
dunedaq::timing::TopDesignInterface::soft_reset_io
virtual void soft_reset_io() const =0
Reset timing node.
dunedaq::timing::TopDesignInterface::read_firmware_version
virtual uint32_t read_firmware_version() const =0
Read firmware version.
dunedaq::timing::TopDesignInterface::reset_io
virtual void reset_io(const ClockSource &clock_source) const =0
Reset timing node.
dunedaq::timing::TopDesignInterface::get_io_node_plain
virtual const IONode * get_io_node_plain() const =0
Get io node pointer.
dunedaq::timing::TopDesignInterface::get_io_node
const IO * get_io_node() const
Definition
TopDesignInterface.hpp:53
dunedaq::timing::TopDesignInterface::reset_io
virtual void reset_io(const std::string &clock_config_file) const =0
Reset timing node.
dunedaq::timing::TopDesignInterface::validate_firmware_version
virtual void validate_firmware_version() const =0
Validate firmware version.
dunedaq::timing::TopDesignInterface::get_hardware_info
virtual std::string get_hardware_info(bool print_out=false) const =0
Print hardware information.
dunedaq::timing::TopDesignInterface::TopDesignInterface
TopDesignInterface(const uhal::Node &node)
Definition
TopDesignInterface.hpp:42
dunedaq::timing::TopDesignInterface::configure
virtual void configure(ClockSource clock_source) const =0
Prepare the timing device for data taking.
dunedaq::timing::TopDesignInterface::get_info
virtual void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const =0
Give info to collector.
TimingIssues.hpp
dunedaq::timing
< Message parameters
Definition
BoreasDesign.hpp:29
dunedaq::timing::ClockSource
ClockSource
Definition
definitions.hpp:115
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::timing::timingfirmwareinfo::TimingDeviceInfo
Definition
Structs.hpp:105
Nljs.hpp
Structs.hpp
Generated on
for DUNE-DAQ by
1.17.0