10 #define RAWHEADER_V1_H
14 #include <rawdata/switch_basf2_standalone.h>
160 MAGIC_WORD = 0x7F7F0000,
161 MAGIC_MASK = 0xFFFF0000,
163 FORMAT_VERSION__MASK = 0x0000FF00,
164 FORMAT_VERSION_SHIFT = 8
168 EXP_MASK = 0xFFC00000,
170 RUNNO_MASK = 0x003FFF00,
172 SUBRUNNO_MASK = 0x000000FF
176 RAWHEADER_NWORDS = 12
180 HDR_NWORDS_MASK = 0x000000FF
186 POS_VERSION_HDRNWORDS = 1,
189 POS_TTCTIME_TRGTYPE = 4,
192 POS_TRUNC_MASK_DATATYPE = 7,
193 POS_OFFSET_1ST_FINESSE = 8,
194 POS_OFFSET_2ND_FINESSE = 9,
195 POS_OFFSET_3RD_FINESSE = 10,
196 POS_OFFSET_4TH_FINESSE = 11,
212 TTCTIME_MASK = 0x7FFFFFF0,
230 B2FATAL(
"m_buffer is NULL. Exiting...");
238 B2FATAL(
"m_buffer is NULL. Data is corrupted or header info has not yet filled. Exiting...");
263 m_buffer[ POS_NODE_ID ] = (int)node_id;
269 m_buffer[ POS_TRUNC_MASK_DATATYPE ] =
270 (data_type & 0x7FFFFFFF) | (
m_buffer[ POS_TRUNC_MASK_DATATYPE ] & 0x80000000);
276 m_buffer[ POS_TRUNC_MASK_DATATYPE ] = (trunc_mask << 31) | (
m_buffer[ POS_TRUNC_MASK_DATATYPE ] & 0x7FFFFFFF);
289 m_buffer[ POS_OFFSET_1ST_FINESSE ] = offset_1st_FINESSE;
295 m_buffer[ POS_OFFSET_2ND_FINESSE ] = offset_2nd_FINESSE;
301 m_buffer[ POS_OFFSET_3RD_FINESSE ] = offset_3rd_FINESSE;
307 m_buffer[ POS_OFFSET_4TH_FINESSE ] = offset_4th_FINESSE;
321 m_buffer[ POS_TTCTIME_TRGTYPE ] = word1;
330 memcpy(&(
m_buffer[ POS_EXP_RUN_NO ]), (
char*)exprun_buf,
sizeof(
int) * 1);
350 return RAWHEADER_NWORDS;
356 return (((
unsigned int)(
m_buffer[ POS_EXP_RUN_NO ]) & EXP_MASK)
363 return (((
unsigned int)(
m_buffer[ POS_EXP_RUN_NO ]) & RUNNO_MASK)
370 return (
m_buffer[ POS_EXP_RUN_NO ] & SUBRUNNO_MASK);
376 return ((
unsigned int)(
m_buffer[ POS_EXP_RUN_NO ]));
389 return (
unsigned int)
m_buffer[ POS_NODE_ID ];
395 return (
m_buffer[ POS_TRUNC_MASK_DATATYPE ] & 0x7FFFFFFF);
401 return (
m_buffer[ POS_TRUNC_MASK_DATATYPE ] >> 23) & 0x1;
407 return (
unsigned int)(
m_buffer[ POS_TRUNC_MASK_DATATYPE ]);
413 m_buffer[ POS_TRUNC_MASK_DATATYPE ] |= (int)error_bit_flag;
420 return m_buffer[ POS_OFFSET_1ST_FINESSE ];
426 return m_buffer[ POS_OFFSET_2ND_FINESSE ];
432 return m_buffer[ POS_OFFSET_3RD_FINESSE ];
438 return m_buffer[ POS_OFFSET_4TH_FINESSE ];
450 return (
unsigned int)(
m_buffer[ POS_TTCTIME_TRGTYPE ]);
468 return (
unsigned int)(
m_buffer[ POS_TTUTIME ]);
474 tv->tv_usec = (int)(((
double)
GetTTCtime()) / 127.216);