McStas Readout Master 0.3.3
Loading...
Searching...
No Matches
Structs.h
Go to the documentation of this file.
1// Copyright (C) 2022 European Spallation Source, ERIC. See LICENSE file
2//===----------------------------------------------------------------------===//
7//===----------------------------------------------------------------------===//
8#pragma once
9
10#ifdef __cplusplus
11#include <cinttypes>
12#else
13#include <inttypes.h>
14#endif
15
16#ifdef __GNUC__
17#define PACK( __Declaration__ ) __Declaration__ __attribute__((__packed__))
18#endif
19
20#ifdef _MSC_VER
21#define PACK( __Declaration__ ) __pragma( pack(push, 1) ) __Declaration__ __pragma( pack(pop))
22#endif
23
24
28PACK(struct PacketHeaderV0 {
29 uint8_t Padding0;
30 uint8_t Version;
31 uint32_t CookieAndType;
32 uint16_t TotalLength;
33 uint8_t OutputQueue;
34 uint8_t TimeSource;
35 uint32_t PulseHigh;
36 uint32_t PulseLow;
37 uint32_t PrevPulseHigh;
38 uint32_t PrevPulseLow;
39 uint32_t SeqNum;
40 });
41
44PACK(struct CaenData {
45 uint8_t Ring;
46 uint8_t FEN;
47 uint16_t Length;
48 uint32_t TimeHigh;
49 uint32_t TimeLow;
50 uint8_t OMFlag;
51 uint8_t Tube;
52 uint16_t SeqNum;
53 uint16_t AmplA;
54 uint16_t AmplB;
55 uint16_t AmplC;
56 uint16_t AmplD;
57 });
58
60PACK(struct TTLMonitorData {
61 uint8_t Ring;
62 uint8_t FEN;
63 uint16_t Length;
64 uint32_t TimeHigh;
65 uint32_t TimeLow;
66 uint8_t Pos;
67 uint8_t Channel;
68 uint16_t ADC;
69 });
70
73PACK(struct CDTData {
74 uint8_t Ring;
75 uint8_t FEN;
76 uint16_t Length;
77 uint32_t TimeHigh;
78 uint32_t TimeLow;
79 uint8_t OM;
80 uint8_t Unused;
81 uint8_t Cathode;
82 uint8_t Anode;
83 });
84
87PACK(struct VMM3Data {
88 uint8_t Ring;
89 uint8_t FEN;
90 uint16_t Length;
91 uint32_t TimeHigh;
92 uint32_t TimeLow;
93 uint16_t BC;
94 uint16_t OTADC;
95 uint8_t GEO;
96 uint8_t TDC;
97 uint8_t VMM;
98 uint8_t Channel;
99 });
100
103PACK(struct BM0Data {
104 uint8_t Ring;
105 uint8_t FEN;
106 uint16_t Length;
107 uint32_t TimeHigh;
108 uint32_t TimeLow;
109 uint8_t Type;
110 uint8_t Channel;
111 uint16_t Debug16;
112 uint32_t Debug32;
113});
114
117PACK(struct BM2Data {
118 uint8_t Ring;
119 uint8_t FEN;
120 uint16_t Length;
121 uint32_t TimeHigh;
122 uint32_t TimeLow;
123 uint8_t Type;
124 uint8_t Channel;
125 uint16_t Debug16;
126 uint16_t X;
127 uint16_t Y;
128});
129
132PACK(struct BMIData {
133 uint8_t Ring;
134 uint8_t FEN;
135 uint16_t Length;
136 uint32_t TimeHigh;
137 uint32_t TimeLow;
138 uint8_t Type;
139 uint8_t Channel;
140 uint16_t Debug16;
141 uint32_t Pack; // 'left' '24 bits: ADC, 'right' 8 bits MCA sum
142});
PACK(struct PacketHeaderV0 { uint8_t Padding0;uint8_t Version;uint32_t CookieAndType;uint16_t TotalLength;uint8_t OutputQueue;uint8_t TimeSource;uint32_t PulseHigh;uint32_t PulseLow;uint32_t PrevPulseHigh;uint32_t PrevPulseLow;uint32_t SeqNum;})
Header common to all ESS readout data. Reviewed ICD (version 2) packet header version 0; ownCloud: ht...