DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
fdreadoutlibs
include
fdreadoutlibs
DAPHNEEthTypeAdapter.hpp
Go to the documentation of this file.
1
#ifndef FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNEETHTYPEADAPTER_
2
#define FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNEETHTYPEADAPTER_
3
4
#include "
daqdataformats/FragmentHeader.hpp
"
5
#include "
daqdataformats/SourceID.hpp
"
6
#include "
fddetdataformats/DAPHNEEthFrame.hpp
"
7
8
#include <cstdint>
// uint_t types
9
#include <memory>
// unique_ptr
10
#include <vector>
11
#include <cstring>
// memcpy
12
#include <tuple>
// tie
13
14
namespace
dunedaq
{
15
namespace
fdreadoutlibs
{
16
namespace
types
{
17
18
23
const
constexpr
std::size_t
kDAPHNEEthSize
= 1864;
24
25
struct
DAPHNEEthTypeAdapter
26
{
27
using
FrameType
=
dunedaq::fddetdataformats::DAPHNEEthFrame
;
28
char
data
[
kDAPHNEEthSize
];
29
30
bool
operator<
(
const
DAPHNEEthTypeAdapter
& other)
const
31
{
32
auto
thisptr =
reinterpret_cast<
const
dunedaq::fddetdataformats::DAPHNEEthFrame
*
>
(&
data
);
// NOLINT
33
auto
otherptr =
reinterpret_cast<
const
dunedaq::fddetdataformats::DAPHNEEthFrame
*
>
(&other.
data
);
// NOLINT
34
35
return
std::forward_as_tuple(thisptr->get_timestamp(), thisptr->get_channel()) < std::forward_as_tuple(otherptr->get_timestamp(), otherptr->get_channel());
36
}
37
38
uint64_t
get_timestamp
() const
// NOLINT(build/unsigned)
39
{
40
return
reinterpret_cast<
const
FrameType
*
>
(&
data
)->
get_timestamp
();
// NOLINT
41
}
42
43
void
set_timestamp
(uint64_t ts)
// NOLINT(build/unsigned)
44
{
45
auto
frame =
reinterpret_cast<
FrameType
*
>
(&
data
);
// NOLINT
46
frame->set_timestamp(ts);
47
}
48
49
void
fake_timestamps
(uint64_t first_timestamp, uint64_t
/*offset*/
= 2048 )
// NOLINT(build/unsigned)
50
{
51
auto
wef =
reinterpret_cast<
FrameType
*
>
(((uint8_t*)(&
data
)));
// NOLINT
52
wef->set_timestamp(first_timestamp);
53
}
54
55
void
fake_geoid
(uint16_t crate_id, uint16_t slot_id, uint16_t stream_id) {
56
for
(
unsigned
int
i = 0; i <
get_num_frames
(); ++i) {
57
auto
df =
reinterpret_cast<
FrameType
*
>
((
reinterpret_cast<
uint8_t*
>
(&
data
)) + i *
get_frame_size
());
58
df->daq_header.crate_id = crate_id;
59
df->daq_header.slot_id = slot_id;
60
df->daq_header.stream_id = stream_id;
61
}
62
}
63
64
void
fake_frame_errors
(std::vector<uint16_t>*
/*fake_errors*/
)
// NOLINT
65
{
66
// Set error bits in header
67
}
68
69
void
fake_adc_pattern
(
int
/*channel*/
) {
70
}
71
72
FrameType
*
begin
()
73
{
74
return
reinterpret_cast<
FrameType
*
>
(&
data
[0]);
// NOLINT
75
}
76
77
FrameType
*
end
()
78
{
79
return
reinterpret_cast<
FrameType
*
>
(
data
+
kDAPHNEEthSize
);
// NOLINT
80
}
81
82
size_t
get_payload_size
() {
return
kDAPHNEEthSize
; }
83
84
size_t
get_num_frames
() {
return
1; }
85
86
size_t
get_frame_size
() {
return
kDAPHNEEthSize
; }
87
88
static
const
constexpr
daqdataformats::SourceID::Subsystem
subsystem
=
daqdataformats::SourceID::Subsystem::kDetectorReadout
;
89
static
const
constexpr
daqdataformats::FragmentType
fragment_type
=
daqdataformats::FragmentType::kDAPHNEEth
;
90
static
const
constexpr
uint64_t
expected_tick_difference
= 1;
// NOLINT(build/unsigned)
91
};
92
93
static_assert
(
sizeof
(
dunedaq::fddetdataformats::DAPHNEEthFrame
) ==
kDAPHNEEthSize
,
94
"Check your assumptions on DAPHNEEthEthTypeAdapter"
);
95
96
97
}
// namespace types
98
}
// namespace fdreadoutlibs
99
}
// namespace dunedaq
100
101
#endif
/* FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNEETHTYPEADAPTER_ */
DAPHNEEthFrame.hpp
FragmentHeader.hpp
SourceID.hpp
dunedaq::daqdataformats::FragmentType
FragmentType
All defined Fragment types.
Definition
FragmentHeader.hpp:114
dunedaq::daqdataformats::FragmentType::kDAPHNEEth
@ kDAPHNEEth
Definition
FragmentHeader.hpp:143
dunedaq::fdreadoutlibs::types
Definition
CRTBernTypeAdapter.hpp:16
dunedaq::fdreadoutlibs::types::kDAPHNEEthSize
const constexpr std::size_t kDAPHNEEthSize
For DAPHNEEth the numbers are different. Header + (64 channels * 64 time slices) = 233[Bytes].
Definition
DAPHNEEthTypeAdapter.hpp:23
dunedaq::fdreadoutlibs
Definition
CRTBernFrameProcessor.hpp:16
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::daqdataformats::SourceID::Subsystem
Subsystem
The Subsystem enum describes the kind of source we're dealing with.
Definition
SourceID.hpp:40
dunedaq::daqdataformats::SourceID::Subsystem::kDetectorReadout
@ kDetectorReadout
Definition
SourceID.hpp:42
dunedaq::fddetdataformats::DAPHNEEthFrame
Struct for accessing raw DAPHNE eth frames.
Definition
DAPHNEEthFrame.hpp:42
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter
Definition
DAPHNEEthTypeAdapter.hpp:26
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::get_frame_size
size_t get_frame_size()
Definition
DAPHNEEthTypeAdapter.hpp:86
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::operator<
bool operator<(const DAPHNEEthTypeAdapter &other) const
Definition
DAPHNEEthTypeAdapter.hpp:30
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::get_timestamp
uint64_t get_timestamp() const
Definition
DAPHNEEthTypeAdapter.hpp:38
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::fake_adc_pattern
void fake_adc_pattern(int)
Definition
DAPHNEEthTypeAdapter.hpp:69
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::fragment_type
static const constexpr daqdataformats::FragmentType fragment_type
Definition
DAPHNEEthTypeAdapter.hpp:89
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::fake_timestamps
void fake_timestamps(uint64_t first_timestamp, uint64_t=2048)
Definition
DAPHNEEthTypeAdapter.hpp:49
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::end
FrameType * end()
Definition
DAPHNEEthTypeAdapter.hpp:77
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::fake_geoid
void fake_geoid(uint16_t crate_id, uint16_t slot_id, uint16_t stream_id)
Definition
DAPHNEEthTypeAdapter.hpp:55
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::set_timestamp
void set_timestamp(uint64_t ts)
Definition
DAPHNEEthTypeAdapter.hpp:43
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::expected_tick_difference
static const constexpr uint64_t expected_tick_difference
Definition
DAPHNEEthTypeAdapter.hpp:90
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::subsystem
static const constexpr daqdataformats::SourceID::Subsystem subsystem
Definition
DAPHNEEthTypeAdapter.hpp:88
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::begin
FrameType * begin()
Definition
DAPHNEEthTypeAdapter.hpp:72
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::FrameType
dunedaq::fddetdataformats::DAPHNEEthFrame FrameType
Definition
DAPHNEEthTypeAdapter.hpp:27
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::get_payload_size
size_t get_payload_size()
Definition
DAPHNEEthTypeAdapter.hpp:82
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::get_num_frames
size_t get_num_frames()
Definition
DAPHNEEthTypeAdapter.hpp:84
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::data
char data[kDAPHNEEthSize]
Definition
DAPHNEEthTypeAdapter.hpp:28
dunedaq::fdreadoutlibs::types::DAPHNEEthTypeAdapter::fake_frame_errors
void fake_frame_errors(std::vector< uint16_t > *)
Definition
DAPHNEEthTypeAdapter.hpp:64
Generated on
for DUNE-DAQ by
1.17.0