DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
sspmodules
src
anlBoard
SSPTypes.hpp
Go to the documentation of this file.
1
6
#ifndef SSPMODULES_SRC_ANLBOARD_SSPTYPES_HPP_
7
#define SSPMODULES_SRC_ANLBOARD_SSPTYPES_HPP_
8
9
#include <cstdlib>
10
11
namespace
dunedaq::sspmodules
{
12
13
static
const
constexpr
int
max_control_data
= 256;
// Maximum size of packet payload on comms channel
14
15
//==============================================================================
16
// Enumerated Constants
17
// These are defined by the SSP hardware spec
18
//==============================================================================
19
20
// Command to send to SSP
21
enum
commandConstants
22
{
23
cmdNone
= 0,
24
// Basic Commands
25
cmdRead
= 1,
26
cmdReadMask
= 2,
27
cmdWrite
= 3,
28
cmdWriteMask
= 4,
29
// Array Commands
30
cmdArrayRead
= 5,
31
cmdArrayWrite
= 6,
32
// Fifo Commands
33
cmdFifoRead
= 7,
34
cmdFifoWrite
= 8,
35
numCommands
36
};
37
38
// Holder for status returned from SSP
39
enum
statusConstants
40
{
41
statusNoError
= 0,
42
statusSendError
= 1,
43
statusReceiveError
= 2,
44
statusTimeoutError
= 3,
45
statusAddressError
= 4,
46
statusAlignError
= 5,
47
statusCommandError
= 6,
48
statusSizeError
= 7,
49
statusWriteError
= 8
// Returned if read-only address is written
50
};
51
52
//==============================================================================
53
// Types
54
//==============================================================================
55
56
57
// Structure defined by hardware, i.e. hardware output can be written straight into this struct
58
struct
EventHeader
59
{
// NOTE: Group fields are listed from MSB to LSB
60
unsigned
int
header
;
// NOLINT // 0xAAAAAAAA
61
unsigned
short
length
;
// NOLINT // Packet Length in unsigned ints (including header)
62
unsigned
short
group1
;
// NOLINT // Trigger Type, Status Flags, Header Type
63
unsigned
short
triggerID
;
// NOLINT // Trigger ID
64
unsigned
short
group2
;
// NOLINT // Module ID, Channel ID
65
unsigned
short
timestamp
[4];
// NOLINT // External Timestamp
66
// Words 0-1 = Clocks since last sync pulse
67
// Words 2-3 = Sync pulse count
68
unsigned
short
peakSumLow
;
// NOLINT // Lower 16 bits of Peak Sum
69
unsigned
short
group3
;
// NOLINT // Offset of Peak, Higher 8 bits of Peak Sum
70
unsigned
short
preriseLow
;
// NOLINT // Lower 16 bits of Prerise
71
unsigned
short
group4
;
// NOLINT // Lower 8 bits of integratedSum, Higher 8 bits of Prerise
72
unsigned
short
intSumHigh
;
// NOLINT // Upper 16 bits of integratedSum
73
unsigned
short
baseline
;
// NOLINT // Baseline
74
unsigned
short
cfdPoint
[4];
// NOLINT // CFD Timestamp Interpolation Points
75
unsigned
short
intTimestamp
[4];
// NOLINT // Internal Timestamp
76
// Word 0 = Reserved for interpolation
77
// Words 1-3 = 48 bit Timestamp
78
};
79
80
// static_assert(sizeof(struct EventHeader) == 12, "Check your assumptions on SSP EventHeader size");
81
82
// byte-level structure of command header to send to SSP
83
struct
CtrlHeader
84
{
85
unsigned
int
length
;
86
unsigned
int
address
;
87
unsigned
int
command
;
88
unsigned
int
size
;
89
unsigned
int
status
;
90
};
91
92
// Struct containing header followed by payload.
93
// Since control packets are small, just allocate enough space to accommodate
94
// longest possible message
95
struct
CtrlPacket
96
{
97
CtrlHeader
header
;
98
unsigned
int
data
[
max_control_data
];
99
};
100
101
}
// namespace dunedaq::sspmodules
102
103
#endif
// SSPMODULES_SRC_ANLBOARD_SSPTYPES_HPP_
dunedaq::sspmodules
Definition
anlExceptions.hpp:15
dunedaq::sspmodules::statusConstants
statusConstants
Definition
SSPTypes.hpp:40
dunedaq::sspmodules::statusWriteError
@ statusWriteError
Definition
SSPTypes.hpp:49
dunedaq::sspmodules::statusTimeoutError
@ statusTimeoutError
Definition
SSPTypes.hpp:44
dunedaq::sspmodules::statusSendError
@ statusSendError
Definition
SSPTypes.hpp:42
dunedaq::sspmodules::statusNoError
@ statusNoError
Definition
SSPTypes.hpp:41
dunedaq::sspmodules::statusCommandError
@ statusCommandError
Definition
SSPTypes.hpp:47
dunedaq::sspmodules::statusAlignError
@ statusAlignError
Definition
SSPTypes.hpp:46
dunedaq::sspmodules::statusSizeError
@ statusSizeError
Definition
SSPTypes.hpp:48
dunedaq::sspmodules::statusReceiveError
@ statusReceiveError
Definition
SSPTypes.hpp:43
dunedaq::sspmodules::statusAddressError
@ statusAddressError
Definition
SSPTypes.hpp:45
dunedaq::sspmodules::max_control_data
static const constexpr int max_control_data
Definition
SSPTypes.hpp:13
dunedaq::sspmodules::commandConstants
commandConstants
Definition
SSPTypes.hpp:22
dunedaq::sspmodules::numCommands
@ numCommands
Definition
SSPTypes.hpp:35
dunedaq::sspmodules::cmdFifoRead
@ cmdFifoRead
Definition
SSPTypes.hpp:33
dunedaq::sspmodules::cmdReadMask
@ cmdReadMask
Definition
SSPTypes.hpp:26
dunedaq::sspmodules::cmdRead
@ cmdRead
Definition
SSPTypes.hpp:25
dunedaq::sspmodules::cmdArrayWrite
@ cmdArrayWrite
Definition
SSPTypes.hpp:31
dunedaq::sspmodules::cmdWrite
@ cmdWrite
Definition
SSPTypes.hpp:27
dunedaq::sspmodules::cmdArrayRead
@ cmdArrayRead
Definition
SSPTypes.hpp:30
dunedaq::sspmodules::cmdNone
@ cmdNone
Definition
SSPTypes.hpp:23
dunedaq::sspmodules::cmdWriteMask
@ cmdWriteMask
Definition
SSPTypes.hpp:28
dunedaq::sspmodules::cmdFifoWrite
@ cmdFifoWrite
Definition
SSPTypes.hpp:34
dunedaq::sspmodules::CtrlHeader
Definition
SSPTypes.hpp:84
dunedaq::sspmodules::CtrlHeader::address
unsigned int address
Definition
SSPTypes.hpp:86
dunedaq::sspmodules::CtrlHeader::length
unsigned int length
Definition
SSPTypes.hpp:85
dunedaq::sspmodules::CtrlHeader::status
unsigned int status
Definition
SSPTypes.hpp:89
dunedaq::sspmodules::CtrlHeader::size
unsigned int size
Definition
SSPTypes.hpp:88
dunedaq::sspmodules::CtrlHeader::command
unsigned int command
Definition
SSPTypes.hpp:87
dunedaq::sspmodules::CtrlPacket
Definition
SSPTypes.hpp:96
dunedaq::sspmodules::CtrlPacket::header
CtrlHeader header
Definition
SSPTypes.hpp:97
dunedaq::sspmodules::CtrlPacket::data
unsigned int data[max_control_data]
Definition
SSPTypes.hpp:98
dunedaq::sspmodules::EventHeader
Definition
SSPTypes.hpp:59
dunedaq::sspmodules::EventHeader::intTimestamp
unsigned short intTimestamp[4]
Definition
SSPTypes.hpp:75
dunedaq::sspmodules::EventHeader::intSumHigh
unsigned short intSumHigh
Definition
SSPTypes.hpp:72
dunedaq::sspmodules::EventHeader::timestamp
unsigned short timestamp[4]
Definition
SSPTypes.hpp:65
dunedaq::sspmodules::EventHeader::cfdPoint
unsigned short cfdPoint[4]
Definition
SSPTypes.hpp:74
dunedaq::sspmodules::EventHeader::triggerID
unsigned short triggerID
Definition
SSPTypes.hpp:63
dunedaq::sspmodules::EventHeader::preriseLow
unsigned short preriseLow
Definition
SSPTypes.hpp:70
dunedaq::sspmodules::EventHeader::peakSumLow
unsigned short peakSumLow
Definition
SSPTypes.hpp:68
dunedaq::sspmodules::EventHeader::header
unsigned int header
Definition
SSPTypes.hpp:60
dunedaq::sspmodules::EventHeader::baseline
unsigned short baseline
Definition
SSPTypes.hpp:73
dunedaq::sspmodules::EventHeader::group4
unsigned short group4
Definition
SSPTypes.hpp:71
dunedaq::sspmodules::EventHeader::group2
unsigned short group2
Definition
SSPTypes.hpp:64
dunedaq::sspmodules::EventHeader::group1
unsigned short group1
Definition
SSPTypes.hpp:62
dunedaq::sspmodules::EventHeader::length
unsigned short length
Definition
SSPTypes.hpp:61
dunedaq::sspmodules::EventHeader::group3
unsigned short group3
Definition
SSPTypes.hpp:69
Generated on Sat Jun 28 2025 for DUNE-DAQ by
1.12.0