Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
FramePreamble.hh
Go to the documentation of this file.
1#ifndef __ANTARESDAQ__FRAMEPREAMBLE__
2#define __ANTARESDAQ__FRAMEPREAMBLE__
3
4/**
5 * @file FramePreamble.hh
6 * @author Joris van Rantwijk
7 * @date Feb 2002
8 *
9 * Class definition for Antares DAQ Data-Frame Preamble.
10 */
11
12#include <ostream>
13#include <iomanip>
14
15#include <TROOT.h>
16#include <TObject.h>
17
19
20/**
21 * This object holds the information from the 'preamble' of a data frame.
22 */
24public:
25
26 /** Total length of the frame in 4-byte words. */
27 unsigned int frameSize;
28
29 /** Data type code (DAQ_xxx) */
30 unsigned short dataType;
31
32 /** Unique code representing the shore station for this frame */
33 unsigned short frameTarget;
34
35 /** Frame 'time stamp' in units of 50ns (MSW) */
36 unsigned int frameTime1;
37 /** Frame 'time stamp' in units of 50ns (LSW) */
38 unsigned int frameTime2;
39 /** \return 64 bit frame time */
44
45 /** Number of frames since start of the run */
46 unsigned int frameIndex;
47
48 /** Status of frame Xon/Xoff */
49 unsigned short status;
50
51 /** Number of items actually sent in this frame */
52 unsigned short nbItems;
53
54 /** ID of originating LCM */
55 unsigned short LCM_ID;
56
57 /** ID of originating ARS */
58 unsigned short ARS_ID;
59
60 /** Run-number as given by the RunControl */
61 unsigned int runNumber;
62
63 /**
64 * get LCM idendifier
65 * \return LCM identifier
66 */
67 const unsigned short lcm_id() const { return LCM_ID; }
68
69 /**
70 * get ARS idendifier
71 * \return ARS identifier
72 */
73 const unsigned short ars_id() const { return ARS_ID; }
74
75 /**
76 * get data type
77 * \return data type
78 */
79 const unsigned short data_type() const { return dataType; }
80
81 /**
82 * get number of items
83 * \return number of items
84 */
85 const unsigned short numberOfItems() const { return nbItems; }
86
87 /**
88 * Return a pointer to the frame data buffer.
89 * The returned value points to the start of the frame preamble.
90 * \return pointer to data
91 */
92 virtual const unsigned char* getdata() const { return NULL; }
93
94 /**
95 * Return the length of the frame data buffer.
96 * The returned value is in <b>bytes</b> (not words), and includes
97 * the frame preamble.
98 * \return length of data
99 */
100 virtual const unsigned int getdatalen() const { return Length(); }
101
102 /** Construct an empty preamble object. */
104
105 /**
106 * destructor
107 */
108 virtual ~DaqFramePreamble() {};
109
110 /** Return length of an encoded frame preamble in bytes. */
111 static const unsigned int Length() { return 32; }
112
113 /**
114 * Print ASCII.
115 *
116 * \param out output stream
117 * \param object frame preamble
118 * \return output stream
119 */
120 friend std::ostream& operator<<(std::ostream& out, const DaqFramePreamble& object)
121 {
122 using namespace std;
123
124 out << "frameSize " << object.frameSize << endl;
125 out << "dataType " << object.dataType << endl;
126 out << "frameTarget " << object.frameTarget << endl;
127 out << "frameTime1 " << object.frameTime1 << endl;
128 out << "frameTime2 " << object.frameTime2 << endl;
129 out << "frameIndex " << object.frameIndex << endl;
130 out << "status " << object.status << endl;
131 out << "nbItems " << object.nbItems << endl;
132 out << "LCM_ID " << object.LCM_ID << endl;
133 out << "ARS_ID " << object.ARS_ID << endl;
134 out << "runNumber " << object.runNumber << endl;
135
136 return out;
137 }
138
140};
141
142
143/**
144 * equal operator for DAQ frame preamble
145 *
146 * \param first DAQ frame preamble
147 * \param second DAQ frame preamble
148 * \return true if first equals second; else false
149 */
150static inline const bool operator==(const DaqFramePreamble& first, const DaqFramePreamble& second)
151{
152 return (first.dataType == second.dataType &&
153 first.frameIndex == second.frameIndex &&
154 first.LCM_ID == second.LCM_ID &&
155 first.ARS_ID == second.ARS_ID &&
156 first.runNumber == second.runNumber);
157}
158
159/**
160 * not-equal operator for DAQ frame preamble
161 *
162 * \param first DAQ frame preamble
163 * \param second DAQ frame preamble
164 * \return true if first not equals second; else false
165 */
166static inline const bool operator!=(const DaqFramePreamble& first, const DaqFramePreamble& second)
167{
168 return (first.dataType != second.dataType ||
169 first.frameIndex != second.frameIndex ||
170 first.LCM_ID != second.LCM_ID ||
171 first.ARS_ID != second.ARS_ID ||
172 first.runNumber != second.runNumber);
173}
174
175#endif
176
177/* End */
static const bool operator==(const DaqFramePreamble &first, const DaqFramePreamble &second)
equal operator for DAQ frame preamble
static const bool operator!=(const DaqFramePreamble &first, const DaqFramePreamble &second)
not-equal operator for DAQ frame preamble
This object holds the information from the 'preamble' of a data frame.
ClassDef(DaqFramePreamble, 2)
unsigned int frameTime2
Frame 'time stamp' in units of 50ns (LSW)
const unsigned short lcm_id() const
get LCM idendifier
friend std::ostream & operator<<(std::ostream &out, const DaqFramePreamble &object)
Print ASCII.
DaqFramePreamble()
Construct an empty preamble object.
unsigned short LCM_ID
ID of originating LCM.
unsigned int frameIndex
Number of frames since start of the run.
unsigned short dataType
Data type code (DAQ_xxx)
virtual const unsigned char * getdata() const
Return a pointer to the frame data buffer.
const unsigned short ars_id() const
get ARS idendifier
virtual const unsigned int getdatalen() const
Return the length of the frame data buffer.
unsigned int runNumber
Run-number as given by the RunControl.
unsigned short status
Status of frame Xon/Xoff.
unsigned short frameTarget
Unique code representing the shore station for this frame.
static const unsigned int Length()
Return length of an encoded frame preamble in bytes.
virtual ~DaqFramePreamble()
destructor
ulonglong frameTime()
const unsigned short numberOfItems() const
get number of items
unsigned short ARS_ID
ID of originating ARS.
unsigned short nbItems
Number of items actually sent in this frame.
const unsigned short data_type() const
get data type
unsigned int frameSize
Total length of the frame in 4-byte words.
unsigned int frameTime1
Frame 'time stamp' in units of 50ns (MSW)