ARA ROOT Test BEd Software

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 doxygen 1.4.7