DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dfmessages
include
dfmessages
TimeSync.hpp
Go to the documentation of this file.
1
8
9
#ifndef DFMESSAGES_INCLUDE_DFMESSAGES_TIMESYNC_HPP_
10
#define DFMESSAGES_INCLUDE_DFMESSAGES_TIMESYNC_HPP_
11
12
#include "
dfmessages/Types.hpp
"
13
14
#include "
serialization/Serialization.hpp
"
15
16
#include <cstddef>
17
#include <limits>
18
19
namespace
dunedaq
{
20
namespace
dfmessages
{
24
struct
TimeSync
25
{
27
timestamp_t
daq_time
{
TypeDefaults::s_invalid_timestamp
};
29
system_time_t
system_time
{
TypeDefaults::s_invalid_system_time
};
31
uint64_t
sequence_number
{ 0 };
// NOLINT(build/unsigned)
33
run_number_t
run_number
{ 0 };
35
uint32_t
source_id
{ 0 };
// NOLINT(build/unsigned)
36
37
TimeSync
() =
default
;
38
44
explicit
TimeSync
(
timestamp_t
daq_time
,
system_time_t
sys_time =
gettimeofday_us
())
45
:
daq_time
(
daq_time
)
46
,
system_time
(sys_time)
47
{}
48
55
static
system_time_t
gettimeofday_us
()
56
{
57
struct
timeval tv;
58
gettimeofday(&tv,
nullptr
);
59
return
static_cast<
system_time_t
>
(tv.tv_sec) * 1000000 + tv.tv_usec;
60
}
61
62
DUNE_DAQ_SERIALIZE
(
TimeSync
,
daq_time
,
system_time
,
run_number
,
sequence_number
,
source_id
);
63
};
64
static_assert
(
sizeof
(
TimeSync
) == 32,
"TimeSync size unexpected!"
);
65
static_assert
(offsetof(
TimeSync
, daq_time) == 0,
"TimeSync daq_time field not at expected offset!"
);
66
static_assert
(offsetof(
TimeSync
, system_time) == 8,
"TimeSync system_time field not at expected offset!"
);
67
static_assert
(offsetof(
TimeSync
, sequence_number) == 16,
"TimeSync sequence_number field not at expected offset!"
);
68
static_assert
(offsetof(
TimeSync
, run_number) == 24,
"TimeSync run_number field not at expected offset!"
);
69
static_assert
(offsetof(
TimeSync
, source_id) == 28,
"TimeSync source_id field not at expected offset!"
);
70
}
// namespace dfmessages
71
DUNE_DAQ_SERIALIZABLE
(
dfmessages::TimeSync
,
"TimeSync"
);
72
}
// namespace dunedaq
73
74
#endif
// DFMESSAGES_INCLUDE_DFMESSAGES_TIMESYNC_HPP_
Serialization.hpp
DUNE_DAQ_SERIALIZABLE
#define DUNE_DAQ_SERIALIZABLE(Type, typestring)
Macro to define a type as serializable, so it can be sent over the network.
Definition
Serialization.hpp:47
dunedaq::dfmessages::TypeDefaults::s_invalid_system_time
static constexpr system_time_t s_invalid_system_time
An invalid system time.
Definition
Types.hpp:78
Types.hpp
dunedaq::dfmessages
Dataflow Messages.
Definition
DataRequest.hpp:21
dunedaq::dfmessages::run_number_t
daqdataformats::run_number_t run_number_t
Copy daqdataformats::run_number_t.
Definition
Types.hpp:34
dunedaq::dfmessages::timestamp_t
daqdataformats::timestamp_t timestamp_t
Copy daqdataformats::timestamp_t.
Definition
Types.hpp:42
dunedaq::dfmessages::system_time_t
uint64_t system_time_t
System times are represented using a 64-bit unsigned integer This number is defined as the number of ...
Definition
Types.hpp:68
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::daqdataformats::TypeDefaults::s_invalid_timestamp
static constexpr timestamp_t s_invalid_timestamp
Definition
Types.hpp:52
dunedaq::dfmessages::TimeSync
A synthetic message used to ensure that all elements of a DAQ system are synchronized.
Definition
TimeSync.hpp:25
dunedaq::dfmessages::TimeSync::daq_time
timestamp_t daq_time
The current DAQ time.
Definition
TimeSync.hpp:27
dunedaq::dfmessages::TimeSync::run_number
run_number_t run_number
Run number at time of creation.
Definition
TimeSync.hpp:33
dunedaq::dfmessages::TimeSync::TimeSync
TimeSync(timestamp_t daq_time, system_time_t sys_time=gettimeofday_us())
Construct a TimeSync message.
Definition
TimeSync.hpp:44
dunedaq::dfmessages::TimeSync::TimeSync
TimeSync()=default
dunedaq::dfmessages::TimeSync::sequence_number
uint64_t sequence_number
Sequence Number of this message, for debugging.
Definition
TimeSync.hpp:31
dunedaq::dfmessages::TimeSync::gettimeofday_us
static system_time_t gettimeofday_us()
Get the current system time.
Definition
TimeSync.hpp:55
dunedaq::dfmessages::TimeSync::DUNE_DAQ_SERIALIZE
DUNE_DAQ_SERIALIZE(TimeSync, daq_time, system_time, run_number, sequence_number, source_id)
dunedaq::dfmessages::TimeSync::source_id
uint32_t source_id
SourceID::id of the creating DAQModule, for debugging.
Definition
TimeSync.hpp:35
dunedaq::dfmessages::TimeSync::system_time
system_time_t system_time
The current system time.
Definition
TimeSync.hpp:29
Generated on
for DUNE-DAQ by
1.17.0