DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
FLCmdGeneratorNode.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_FLCMDGENERATORNODE_HPP_
13
#define TIMING_INCLUDE_TIMING_FLCMDGENERATORNODE_HPP_
14
15
// PDT Headers
16
#include "
timing/definitions.hpp
"
17
#include "
timing/TimestampGeneratorNode.hpp
"
18
#include "
timing/TimingNode.hpp
"
19
20
// uHal Headers
21
#include "uhal/DerivedNode.hpp"
22
#include <nlohmann/json.hpp>
23
24
#include <string>
25
26
namespace
dunedaq
{
27
namespace
timing
{
28
32
class
FLCmdGeneratorNode
:
public
TimingNode
33
{
34
UHAL_DERIVEDNODE(
FLCmdGeneratorNode
)
35
public
:
36
explicit
FLCmdGeneratorNode
(
const
uhal::Node& node);
37
virtual
~FLCmdGeneratorNode
();
38
42
std::string
get_status
(
bool
print_out =
false
)
const override
;
43
47
virtual
void
send_fl_cmd
(uint32_t command,
// NOLINT(build/unsigned)
48
uint32_t channel)
const
;
// NOLINT(build/unsigned)
52
void
enable_periodic_fl_cmd
(uint32_t channel,
// NOLINT(build/unsigned)
53
double
rate,
// NOLINT(build/unsigned)
54
bool
poisson,
55
uint32_t clock_frequency_hz)
const
;
// NOLINT(build/unsigned)
56
60
void
enable_periodic_fl_cmd
(uint32_t command,
// NOLINT(build/unsigned)
61
uint32_t channel,
// NOLINT(build/unsigned)
62
double
rate,
// NOLINT(build/unsigned)
63
bool
poisson,
64
uint32_t clock_frequency_hz)
const
;
// NOLINT(build/unsigned)
65
69
void
enable_periodic_fl_cmd
(uint32_t channel,
// NOLINT(build/unsigned)
70
uint32_t divisor,
// NOLINT(build/unsigned)
71
uint32_t prescale,
// NOLINT(build/unsigned)
72
bool
poisson)
const
;
73
77
void
enable_periodic_fl_cmd
(uint32_t command,
// NOLINT(build/unsigned)
78
uint32_t channel,
// NOLINT(build/unsigned)
79
uint32_t divisor,
// NOLINT(build/unsigned)
80
uint32_t prescale,
// NOLINT(build/unsigned)
81
bool
poisson)
const
;
82
86
void
disable_fake_trigger
(uint32_t channel)
const
;
// NOLINT(build/unsigned)
87
91
std::string
get_cmd_counters_table
(
bool
print_out =
false
)
const
;
92
93
static
void
parse_periodic_fl_cmd_rate
(
double
requested_rate, uint32_t clock_frequency_hz,
double
& actual_rate, uint32_t& divisor, uint32_t& prescale);
94
private
:
95
void
validate_command
(uint32_t command)
const
;
96
void
validate_channel
(uint32_t channel)
const
;
97
};
98
99
}
// namespace timing
100
}
// namespace dunedaq
101
102
#endif
// TIMING_INCLUDE_TIMING_FLCMDGENERATORNODE_HPP_
TimestampGeneratorNode.hpp
TimingNode.hpp
dunedaq::timing::FLCmdGeneratorNode::disable_fake_trigger
void disable_fake_trigger(uint32_t channel) const
Clear fake trigger configuration.
Definition
FLCmdGeneratorNode.cpp:170
dunedaq::timing::FLCmdGeneratorNode::~FLCmdGeneratorNode
virtual ~FLCmdGeneratorNode()
Definition
FLCmdGeneratorNode.cpp:29
dunedaq::timing::FLCmdGeneratorNode::FLCmdGeneratorNode
FLCmdGeneratorNode(const uhal::Node &node)
Definition
FLCmdGeneratorNode.cpp:23
dunedaq::timing::FLCmdGeneratorNode::send_fl_cmd
virtual void send_fl_cmd(uint32_t command, uint32_t channel) const
Send a fixed length command.
Definition
FLCmdGeneratorNode.cpp:69
dunedaq::timing::FLCmdGeneratorNode::get_cmd_counters_table
std::string get_cmd_counters_table(bool print_out=false) const
Get command counters status string.
Definition
FLCmdGeneratorNode.cpp:183
dunedaq::timing::FLCmdGeneratorNode::validate_channel
void validate_channel(uint32_t channel) const
Definition
FLCmdGeneratorNode.cpp:58
dunedaq::timing::FLCmdGeneratorNode::parse_periodic_fl_cmd_rate
static void parse_periodic_fl_cmd_rate(double requested_rate, uint32_t clock_frequency_hz, double &actual_rate, uint32_t &divisor, uint32_t &prescale)
Definition
FLCmdGeneratorNode.cpp:231
dunedaq::timing::FLCmdGeneratorNode::enable_periodic_fl_cmd
void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
Configure fake trigger.
Definition
FLCmdGeneratorNode.cpp:90
dunedaq::timing::FLCmdGeneratorNode::validate_command
void validate_command(uint32_t command) const
Definition
FLCmdGeneratorNode.cpp:47
dunedaq::timing::FLCmdGeneratorNode::get_status
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition
FLCmdGeneratorNode.cpp:34
dunedaq::timing::TimingNode::TimingNode
TimingNode(const uhal::Node &node)
Definition
TimingNode.cpp:18
definitions.hpp
dunedaq::timing
< Message parameters
Definition
BoreasDesign.hpp:29
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0