AraEvent/araStructures.h
Go to the documentation of this file.00001 00013 #ifndef ARA_STRUCTURES_H 00014 #define ARA_STRUCTURES_H 00015 #include "araDefines.h" 00016 00017 #define ARA_STRUCTURES_VERSION 1 00018 00019 //Enumerations 00020 00022 00025 typedef enum { 00026 PRI_FORCED = 0, 00027 PRI_CALIB = 1, 00028 PRI_1 = 1, 00029 PRI_2, 00030 PRI_3, 00031 PRI_4, 00032 PRI_TIMEOUT, 00033 PRI_6, 00034 PRI_7, 00035 PRI_8, 00036 PRI_PAYLOAD 00037 } PriorityCode; 00038 00040 //Structures 00042 00044 00049 typedef struct { 00050 unsigned short numBytes; 00051 unsigned char verId; 00052 // unsigned int checksum; 00053 } GenericHeader_t; 00054 00056 00060 typedef struct { 00062 00069 unsigned char trigType; 00070 unsigned short ppsNum; 00071 unsigned short deadTime1; 00072 unsigned short deadTime2; 00073 unsigned short trigPattern; // trigger pattern: bits 0-8 - facet triggers | bit 9 - deep L1 | bit 10 - shallow L1 | bit 11 - unused | bit 12 - global trigger 00074 unsigned short rovdd[3]; // [0] - LSW of Rb clock counter | [1] - MSW of Rb clock counter | [2] - DAC voltage for LAB C 00075 unsigned short rcoCount[3]; // RCO counter for LAB chips 00076 } AraTriggerMonitorStruct_t; 00077 00079 00083 typedef struct { 00085 00088 unsigned char chanId; // chan+9*LAB3 00090 00096 unsigned char chipIdFlag; // Bits 0,1 chipNum; Bit 3 hitBus wrap; 4-7 hitBusOff 00098 00102 unsigned char firstHitbus; // If wrappedHitbus=0 data runs, lastHitbus+1 00104 00108 unsigned char lastHitbus; //to firstHitbus-1 inclusive 00109 00110 } AraRawRFChannelHeader_t; 00111 00113 00116 typedef struct { 00117 AraRawRFChannelHeader_t header; 00118 unsigned short data[MAX_NUMBER_SAMPLES]; 00119 } RFChannelFull_t; 00120 00122 00125 typedef struct { 00126 AraRawRFChannelHeader_t header; 00127 short xMax; 00128 short xMin; 00129 float mean; 00130 float rms; 00131 short data[MAX_NUMBER_SAMPLES]; 00132 } RFChannelPedSubbed_t; 00133 00135 00138 typedef struct { 00139 unsigned short temp[8]; 00140 } TemperatureDataStruct_t; 00141 00143 00146 typedef struct { 00147 unsigned short discone[8]; 00148 unsigned short batwing[8]; 00149 } RFPowerDataStruct_t; 00150 00152 00155 typedef struct { 00156 unsigned short dac[6][4]; 00157 } DACDataStruct_t; 00158 00160 00163 typedef struct { 00164 unsigned short discone[8]; 00165 unsigned short batPlus[8]; 00166 unsigned short batMinus[8]; 00167 unsigned short trigL1[12]; 00168 unsigned short global; 00169 } SimpleScalerStruct_t; 00170 00171 00172 00173 00175 00178 typedef struct { 00179 unsigned char chanId; 00180 unsigned short chipEntries; 00181 float pedMean[MAX_NUMBER_SAMPLES]; 00182 float pedRMS[MAX_NUMBER_SAMPLES]; 00183 } LabChipChannelPedStruct_t; 00184 00185 00187 //Telemetry Structs (may be used for onboard storage) 00189 00191 00195 typedef struct { 00196 unsigned int unixTime; 00197 unsigned int unixTimeUs; 00198 00200 00206 int gpsSubTime; 00207 unsigned int eventNumber; 00208 unsigned short calibStatus; 00209 unsigned char priority; 00210 00211 00220 unsigned char errorFlag; 00221 //unsigned char surfSlipFlag; ///< Sync Slip between SURF 2-9 and SURF 1 00222 00223 } AraEventHeader_t; 00224 00225 00227 00230 typedef struct { 00231 GenericHeader_t gHdr; 00232 unsigned int eventNumber; 00233 RFChannelFull_t waveform; 00234 } RawWaveformPacket_t; 00235 00237 00241 typedef struct { 00242 GenericHeader_t gHdr; 00243 unsigned int eventNumber; 00244 unsigned int whichPeds; 00245 RFChannelPedSubbed_t waveform; 00246 } PedSubbedWaveformPacket_t; 00247 00249 00252 typedef struct { 00253 GenericHeader_t gHdr; 00254 unsigned int eventNumber; 00255 RFChannelFull_t waveform[CHANNELS_PER_CHIP]; 00256 } RawRFPacket_t; 00257 00259 00262 typedef struct { 00263 GenericHeader_t gHdr; 00264 unsigned int eventNumber; 00265 unsigned int whichPeds; 00266 RFChannelPedSubbed_t waveform[CHANNELS_PER_CHIP]; 00267 } PedSubbedRFPacket_t; 00268 00269 00271 00274 typedef struct { 00275 GenericHeader_t gHdr; 00276 unsigned int eventNumber; 00277 } EncodedRFPacketHeader_t; 00278 00280 00283 typedef struct { 00284 GenericHeader_t gHdr; 00285 unsigned int eventNumber; 00286 unsigned int whichPeds; 00287 } BaseWavePacketHeader_t; 00288 00290 00293 typedef struct { 00294 TemperatureDataStruct_t temp; 00295 RFPowerDataStruct_t rfPow; 00296 DACDataStruct_t dac; 00297 SimpleScalerStruct_t scaler; 00298 } AraHkDataStruct_t; 00299 00300 typedef struct { 00301 unsigned int unixTime; 00302 unsigned int unixTimeUs; 00303 unsigned int eventNumber; 00304 unsigned int errorFlag; 00305 } AraHkDataHeader_t; 00306 00308 00311 typedef struct { 00312 GenericHeader_t gHdr; 00313 unsigned int unixTimeStart; 00314 unsigned int unixTimeEnd; 00315 LabChipChannelPedStruct_t chan[NUM_DIGITIZED_CHANNELS]; 00316 } FullLabChipPedStruct_t; 00317 00318 00320 // On-board structs 00322 00324 00327 typedef struct { 00328 GenericHeader_t gHdr; 00329 AraEventHeader_t hd; 00330 // unsigned int eventNumber; /* Global event number */ 00331 RFChannelFull_t channel[NUM_DIGITIZED_CHANNELS]; 00332 AraTriggerMonitorStruct_t trig; 00333 AraHkDataStruct_t hk; 00334 } AraEventBody_t; 00335 00337 00341 typedef struct { 00342 GenericHeader_t gHdr; 00343 AraHkDataHeader_t hd; 00344 AraTriggerMonitorStruct_t trig; 00345 AraHkDataStruct_t hk; 00346 } AraHkBody_t; 00347 00348 00350 00353 typedef struct { 00354 GenericHeader_t gHdr; 00355 unsigned int eventNumber; /* Global event number */ 00356 unsigned int whichPeds; 00357 RFChannelPedSubbed_t channel[NUM_DIGITIZED_CHANNELS]; 00358 AraHkDataStruct_t hk; 00359 } PedSubbedEventBody_t; 00360 00362 00365 typedef struct { 00366 unsigned int unixTime; 00367 unsigned int subTime; 00368 } GpsSubTime_t; 00369 00371 //Prioritizer Utility Structs 00374 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00375 00376 00378 00381 typedef struct { 00382 unsigned short eventLinks[NUM_PRIORITIES]; 00383 unsigned short hkLinks[21]; 00384 } QueueStruct_t; 00385 00387 00390 typedef struct { 00391 unsigned int utime[NUM_PROCESSES]; 00392 unsigned int stime[NUM_PROCESSES]; 00393 unsigned int vsize[NUM_PROCESSES]; 00394 } ProcessInfo_t; 00395 00396 00398 00401 typedef struct { 00402 GenericHeader_t gHdr; 00403 unsigned int unixTime; 00404 unsigned int eventNumber; 00405 unsigned int runNumber; 00406 } RunStart_t; 00407 00408 00409 // these are syntactic sugar to help us keep track of bit shifts 00410 typedef int Fixed3_t; 00411 typedef int Fixed6_t; 00412 typedef int Fixed8_t; 00413 00414 00415 /* FOR THREE STRUCTS THAT FOLLOW 00416 valid samples==-1 prior to unwinding 00417 */ 00418 00420 00423 typedef struct { 00424 int data[MAX_NUMBER_SAMPLES]; 00425 int valid_samples; 00426 } LogicChannel_t; 00427 00429 00432 typedef struct { 00433 Fixed3_t data[MAX_NUMBER_SAMPLES]; 00434 Fixed3_t baseline; 00435 short valid_samples; 00436 } TransientChannel3_t; 00437 00439 00442 typedef struct { 00443 Fixed6_t data[MAX_NUMBER_SAMPLES]; 00444 short valid_samples; 00445 } TransientChannel6_t; 00446 00448 00451 typedef struct { 00452 Fixed8_t data[MAX_NUMBER_SAMPLES]; 00453 Fixed8_t baseline; 00454 short valid_samples; 00455 } TransientChannel8_t; 00456 00458 00461 typedef struct { 00462 float data[MAX_NUMBER_SAMPLES]; 00463 short valid_samples; 00464 } TransientChannelF_t; 00465 00467 00470 typedef struct { 00471 float data[MAX_NUMBER_SAMPLES]; 00472 short valid_samples; 00473 float RMSall; 00474 float RMSpre; 00475 } TransientChannelFRMS_t; 00476 00478 00481 typedef struct { 00482 TransientChannel3_t ch[NUM_DIGITIZED_CHANNELS]; 00483 } AnitaTransientBody3_t; /* final corrected transient type 00484 used to calculate power */ 00486 00489 typedef struct { 00490 TransientChannel6_t ch[NUM_DIGITIZED_CHANNELS]; 00491 } AnitaPowerBody6_t; /* power from squaring an AnitaTransientBody3 */ 00492 00494 00497 typedef struct { 00498 TransientChannel8_t ch[NUM_DIGITIZED_CHANNELS]; 00499 } AnitaTransientBody8_t; /* used for pedestal subtraction, unwrapping, 00500 averaging, and gain correction */ 00502 00505 typedef struct { 00506 TransientChannelF_t ch[NUM_DIGITIZED_CHANNELS]; 00507 } AnitaTransientBodyF_t; 00508 00510 00513 typedef struct { 00514 TransientChannel6_t S0,S1,S2,S3; 00515 } AnitaStokes6_t; 00517 #endif //DOXYGEN_SHOULD_SKIP_THIS 00518 00519 #endif /* ARA_STRUCTURES_H */
Generated on Wed Aug 8 16:18:55 2012 for ARA ROOT Test Bed Software by
