DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
cibmodules
src
cib_data_fmt.h
Go to the documentation of this file.
1
/*
2
* cib_data_fmt.h
3
*
4
* Created on: Jun 5, 2024
5
* Author: Nuno Barros
6
*/
7
8
#ifndef COMMON_CIB_DATA_FMT_H_
9
#define COMMON_CIB_DATA_FMT_H_
10
extern
"C"
11
{
12
#include <inttypes.h>
13
}
14
#include <cstdint>
15
#include <cstddef>
16
#include <string>
17
18
#ifdef CIB_DUNEDAQ
19
namespace
dunedaq
{
20
#endif
21
22
namespace
cib
23
{
24
typedef
struct
mapped_mem_t
25
{
26
uintptr_t
p_addr
;
27
uintptr_t
v_addr
;
28
} mapped_mem_t;
29
30
typedef
struct
cib_mem_t
31
{
32
// mapped_mem_t config;
33
mapped_mem_t
gpio_pdts
;
34
mapped_mem_t
gpio_align
;
35
mapped_mem_t
gpio_laser
;
36
mapped_mem_t
gpio_misc
;
37
mapped_mem_t
gpio_mon_0
;
38
mapped_mem_t
gpio_mon_1
;
39
mapped_mem_t
gpio_motor_1
;
40
mapped_mem_t
gpio_motor_2
;
41
mapped_mem_t
gpio_motor_3
;
42
} cib_mem_t;
43
44
typedef
struct
motor_t
45
{
46
uint16_t
index
;
47
int32_t
pos_i
;
48
uint32_t
dir
;
49
} motor_t;
50
51
namespace
limits
52
{
53
54
typedef
struct
motor_limits_t
55
{
56
int32_t
m1_min
;
57
int32_t
m1_max
;
58
int32_t
m2_min
;
59
int32_t
m2_max
;
60
int32_t
m3_min
;
61
int32_t
m3_max
;
62
} motor_limits_t;
63
64
}
65
66
namespace
daq
67
{
68
69
typedef
struct
iols_trigger_t
70
{
71
// lsb
72
uint32_t
pos_m3
: 17;
73
uint32_t
pos_m2_lsb
: 15;
74
uint32_t
pos_m2_msb
: 7;
75
uint32_t
pos_m1
: 22;
76
uint32_t
padding
: 3;
77
uint64_t
timestamp
;
78
// msb
79
static
const
uint32_t
mask_m3
= 0x1FFFF;
80
static
const
uint32_t
bitmask_m3
= 0x1FFFF;
81
static
const
uint32_t
mask_m2_lsb
= 0xFFFE0000;
82
static
const
uint32_t
bitmask_m2_lsb
= 0xEFFF;
83
84
static
const
uint32_t
mask_m2_msb
= 0x7F;
85
static
const
uint32_t
bitmask_m2_msb
= 0x3F8000;
86
static
const
uint32_t
bitmask_m2
= 0x3FFFFF;
87
static
const
uint32_t
mask_m1
= 0x1FFFFF80;
88
static
const
uint32_t
bitmask_m1
= 0x3FFFFF;
89
90
static
size_t
const
size_bytes
= 16;
91
92
} iols_trigger_t;
93
97
98
typedef
struct
tcp_header_t
99
{
100
typedef
uint16_t
pkt_size_t
;
101
typedef
uint8_t
seq_size_t
;
102
typedef
uint8_t
ver_size_t
;
103
uint16_t
packet_size
: 16;
// Size of the data content in bytes
104
uint8_t
sequence_id
: 8;
// packet order...rotates every 256
105
uint8_t
format_version
: 8;
106
static
size_t
const
size_bytes
=
sizeof
(uint32_t);
107
static
size_t
const
n_bits_size
= 16;
108
static
size_t
const
n_bits_sequence_id
= 8;
109
static
size_t
const
n_bits_version
= 8;
110
uint16_t
get_version
() {
return
((
format_version
>> 4 ) & 0xF);}
111
void
set_version
(uint16_t v) {
format_version
= ((v & 0xF) << 4) | (~v & 0xF);}
112
} tcp_header_t;
113
114
typedef
union
tcp_header
115
{
116
tcp_header_t
word
;
117
uint32_t
value
;
118
} tcp_header;
119
120
121
// -- this should be the base structure to data taking and shipment
122
typedef
struct
iols_tcp_packet_t
123
{
124
iols_trigger_t
word
;
125
tcp_header_t
header
;
126
} iols_tcp_packet_t;
127
128
typedef
struct
iols_feedback_msg_t
129
{
130
std::string
sev
;
131
std::string
msg
;
132
} iols_feedback_msg_t;
133
134
135
}
// namespace daq
136
137
}
138
#ifdef CIB_DUNEDAQ
139
}
140
#endif
141
142
143
#endif
/* COMMON_CIB_DATA_FMT_H_ */
cib::limits
Definition
cib_data_fmt.h:52
cib
Definition
cib_data_fmt.h:23
daq
Including ers headers.
Definition
config_api_graph.hpp:24
dunedaq
Including Qt Headers.
Definition
module.cpp:16
cib::cib_mem_t
Definition
cib_data_fmt.h:31
cib::cib_mem_t::gpio_motor_3
mapped_mem_t gpio_motor_3
Definition
cib_data_fmt.h:41
cib::cib_mem_t::gpio_pdts
mapped_mem_t gpio_pdts
Definition
cib_data_fmt.h:33
cib::cib_mem_t::gpio_laser
mapped_mem_t gpio_laser
Definition
cib_data_fmt.h:35
cib::cib_mem_t::gpio_motor_1
mapped_mem_t gpio_motor_1
Definition
cib_data_fmt.h:39
cib::cib_mem_t::gpio_mon_0
mapped_mem_t gpio_mon_0
Definition
cib_data_fmt.h:37
cib::cib_mem_t::gpio_motor_2
mapped_mem_t gpio_motor_2
Definition
cib_data_fmt.h:40
cib::cib_mem_t::gpio_misc
mapped_mem_t gpio_misc
Definition
cib_data_fmt.h:36
cib::cib_mem_t::gpio_align
mapped_mem_t gpio_align
Definition
cib_data_fmt.h:34
cib::cib_mem_t::gpio_mon_1
mapped_mem_t gpio_mon_1
Definition
cib_data_fmt.h:38
cib::daq::iols_feedback_msg_t
Definition
cib_data_fmt.h:129
cib::daq::iols_feedback_msg_t::sev
std::string sev
Definition
cib_data_fmt.h:130
cib::daq::iols_feedback_msg_t::msg
std::string msg
Definition
cib_data_fmt.h:131
cib::daq::iols_tcp_packet_t
Definition
cib_data_fmt.h:123
cib::daq::iols_tcp_packet_t::word
iols_trigger_t word
Definition
cib_data_fmt.h:124
cib::daq::iols_tcp_packet_t::header
tcp_header_t header
Definition
cib_data_fmt.h:125
cib::daq::iols_trigger_t
Definition
cib_data_fmt.h:70
cib::daq::iols_trigger_t::pos_m1
uint32_t pos_m1
Definition
cib_data_fmt.h:75
cib::daq::iols_trigger_t::bitmask_m2_lsb
static const uint32_t bitmask_m2_lsb
Definition
cib_data_fmt.h:82
cib::daq::iols_trigger_t::bitmask_m3
static const uint32_t bitmask_m3
Definition
cib_data_fmt.h:80
cib::daq::iols_trigger_t::mask_m1
static const uint32_t mask_m1
Definition
cib_data_fmt.h:87
cib::daq::iols_trigger_t::mask_m3
static const uint32_t mask_m3
Definition
cib_data_fmt.h:79
cib::daq::iols_trigger_t::pos_m3
uint32_t pos_m3
Definition
cib_data_fmt.h:72
cib::daq::iols_trigger_t::bitmask_m2_msb
static const uint32_t bitmask_m2_msb
Definition
cib_data_fmt.h:85
cib::daq::iols_trigger_t::pos_m2_lsb
uint32_t pos_m2_lsb
Definition
cib_data_fmt.h:73
cib::daq::iols_trigger_t::bitmask_m2
static const uint32_t bitmask_m2
Definition
cib_data_fmt.h:86
cib::daq::iols_trigger_t::mask_m2_lsb
static const uint32_t mask_m2_lsb
Definition
cib_data_fmt.h:81
cib::daq::iols_trigger_t::mask_m2_msb
static const uint32_t mask_m2_msb
Definition
cib_data_fmt.h:84
cib::daq::iols_trigger_t::timestamp
uint64_t timestamp
Definition
cib_data_fmt.h:77
cib::daq::iols_trigger_t::size_bytes
static size_t const size_bytes
Definition
cib_data_fmt.h:90
cib::daq::iols_trigger_t::padding
uint32_t padding
Definition
cib_data_fmt.h:76
cib::daq::iols_trigger_t::bitmask_m1
static const uint32_t bitmask_m1
Definition
cib_data_fmt.h:88
cib::daq::iols_trigger_t::pos_m2_msb
uint32_t pos_m2_msb
Definition
cib_data_fmt.h:74
cib::daq::tcp_header_t
Definition
cib_data_fmt.h:99
cib::daq::tcp_header_t::get_version
uint16_t get_version()
Definition
cib_data_fmt.h:110
cib::daq::tcp_header_t::ver_size_t
uint8_t ver_size_t
Definition
cib_data_fmt.h:102
cib::daq::tcp_header_t::packet_size
uint16_t packet_size
Definition
cib_data_fmt.h:103
cib::daq::tcp_header_t::n_bits_sequence_id
static size_t const n_bits_sequence_id
Definition
cib_data_fmt.h:108
cib::daq::tcp_header_t::format_version
uint8_t format_version
Definition
cib_data_fmt.h:105
cib::daq::tcp_header_t::n_bits_size
static size_t const n_bits_size
Definition
cib_data_fmt.h:107
cib::daq::tcp_header_t::size_bytes
static size_t const size_bytes
Definition
cib_data_fmt.h:106
cib::daq::tcp_header_t::sequence_id
uint8_t sequence_id
Definition
cib_data_fmt.h:104
cib::daq::tcp_header_t::set_version
void set_version(uint16_t v)
Definition
cib_data_fmt.h:111
cib::daq::tcp_header_t::pkt_size_t
uint16_t pkt_size_t
Definition
cib_data_fmt.h:100
cib::daq::tcp_header_t::n_bits_version
static size_t const n_bits_version
Definition
cib_data_fmt.h:109
cib::daq::tcp_header_t::seq_size_t
uint8_t seq_size_t
Definition
cib_data_fmt.h:101
cib::limits::motor_limits_t
Definition
cib_data_fmt.h:55
cib::limits::motor_limits_t::m3_max
int32_t m3_max
Definition
cib_data_fmt.h:61
cib::limits::motor_limits_t::m1_max
int32_t m1_max
Definition
cib_data_fmt.h:57
cib::limits::motor_limits_t::m3_min
int32_t m3_min
Definition
cib_data_fmt.h:60
cib::limits::motor_limits_t::m2_min
int32_t m2_min
Definition
cib_data_fmt.h:58
cib::limits::motor_limits_t::m1_min
int32_t m1_min
Definition
cib_data_fmt.h:56
cib::limits::motor_limits_t::m2_max
int32_t m2_max
Definition
cib_data_fmt.h:59
cib::mapped_mem_t
Definition
cib_data_fmt.h:25
cib::mapped_mem_t::p_addr
uintptr_t p_addr
Definition
cib_data_fmt.h:26
cib::mapped_mem_t::v_addr
uintptr_t v_addr
Definition
cib_data_fmt.h:27
cib::motor_t
Definition
cib_data_fmt.h:45
cib::motor_t::pos_i
int32_t pos_i
Definition
cib_data_fmt.h:47
cib::motor_t::index
uint16_t index
Definition
cib_data_fmt.h:46
cib::motor_t::dir
uint32_t dir
Definition
cib_data_fmt.h:48
cib::daq::tcp_header
Definition
cib_data_fmt.h:115
cib::daq::tcp_header::word
tcp_header_t word
Definition
cib_data_fmt.h:116
cib::daq::tcp_header::value
uint32_t value
Definition
cib_data_fmt.h:117
Generated on
for DUNE-DAQ by
1.17.0