AraEvent/araAtriStructures.h
00001 00009 /* 00010 * 00011 * Current CVS Tag: 00012 * $Header: $ 00013 */ 00014 00015 #ifndef ATRI_STRUCTURES_H 00016 #define ATRI_STRUCTURES_H 00017 00018 #if !defined(__CINT__) || defined(__MAKECINT__) 00019 #include <stdint.h> 00020 #endif 00021 00022 #include "araSoft.h" 00023 00024 #define ARA_SOFT_VERISON 3 00025 #define ARA_SOFT_SUB_VERISON 0 00026 00027 00028 00030 00033 enum { 00034 ARA_EVENT_TYPE=0x1, 00035 ARA_HEADER_TYPE=0x2, 00036 ARA_EVENT_HK_TYPE=0x3, 00037 ARA_SENSOR_HK_TYPE=0x4, 00038 ARA_SBC_HK_TYPE=0x5, 00039 ARA_ICRR_EVENT_TYPE=0x06 00040 } ; 00041 typedef uint8_t AraDataStructureType_t; 00042 00044 00047 enum { 00048 ARA_TESTBED=0, 00049 ARA_STATION1=1, 00050 ARA_STATION1B=100, 00051 ARA_STATION2=2, 00052 ARA_STATION3=3, 00053 ARA_STATION4=4, 00054 ARA_STATION5=5, 00055 ARA_STATION6=6, 00056 ARA_STATION7=7, 00057 ARA_STATION8=8, 00058 ARA_STATION9=9, 00059 00060 ARA_STATION10=10, 00061 ARA_STATION11=11, 00062 ARA_STATION12=12, 00063 ARA_STATION13=13, 00064 ARA_STATION14=14, 00065 ARA_STATION15=15, 00066 ARA_STATION16=16, 00067 ARA_STATION17=17, 00068 ARA_STATION18=18, 00069 ARA_STATION19=19, 00070 00071 ARA_STATION20=20, 00072 ARA_STATION21=21, 00073 ARA_STATION22=22, 00074 ARA_STATION23=23, 00075 ARA_STATION24=24, 00076 ARA_STATION25=25, 00077 ARA_STATION26=26, 00078 ARA_STATION27=27, 00079 ARA_STATION28=28, 00080 ARA_STATION29=29, 00081 00082 ARA_STATION30=30, 00083 ARA_STATION31=31, 00084 ARA_STATION32=32, 00085 ARA_STATION33=33, 00086 ARA_STATION34=34, 00087 ARA_STATION35=35, 00088 ARA_STATION36=36, 00089 ARA_STATION37=37 00090 00091 } ; 00092 typedef uint8_t AraStationId_t; 00093 00094 #define THIS_STATION ARA_STATION2 00095 //SBC_DEFINE -- Each SBC should be running AraSoft with the correct stationId set as THIS_STATION 00096 00097 00099 00102 typedef struct { 00103 AraDataStructureType_t typeId; 00104 AraStationId_t stationId; 00105 uint8_t verId; 00106 uint8_t subVerId; 00107 uint32_t numBytes; 00108 uint16_t checksum; 00109 uint16_t reserved; 00110 uint32_t alsoReserved; 00111 } AtriGenericHeader_t; 00112 00113 00115 00120 typedef struct { 00121 AtriGenericHeader_t gHdr; 00122 uint64_t unixTime; 00123 uint32_t unixTimeUs; 00124 uint32_t firmwareVersion; 00125 uint16_t wilkinsonCounter[DDA_PER_ATRI]; 00126 uint16_t wilkinsonDelay[DDA_PER_ATRI]; 00127 uint32_t ppsCounter; 00128 uint32_t clockCounter; 00129 uint16_t l1Scaler[TDA_PER_ATRI][ANTS_PER_TDA]; 00130 uint16_t l1ScalerSurface[ANTS_PER_TDA]; 00131 uint16_t l2Scaler[TDA_PER_ATRI][L2_PER_TDA]; 00132 uint16_t l3Scaler; 00133 uint16_t l3ScalerSurface; 00134 uint16_t l2ScalerAllTda12; 00135 uint16_t l2ScalerAllTda34; 00136 uint16_t vdlyDac[DDA_PER_ATRI]; 00137 uint16_t vadjDac[DDA_PER_ATRI]; 00138 uint16_t thresholdDac[TDA_PER_ATRI][ANTS_PER_TDA]; 00139 uint16_t surfaceThresholdDac[ANTS_PER_TDA]; 00140 uint8_t deadTime[DDA_PER_ATRI]; 00141 uint8_t avgOccupancy[DDA_PER_ATRI]; 00142 uint8_t maxOccupancy[DDA_PER_ATRI]; 00143 uint8_t reserved[DDA_PER_ATRI]; 00144 } AraEventHk2_7_t; 00145 00146 00147 00149 00153 typedef struct { 00154 AtriGenericHeader_t gHdr; 00155 uint64_t unixTime; 00156 uint32_t unixTimeUs; 00157 uint32_t firmwareVersion; 00158 uint16_t wilkinsonCounter[DDA_PER_ATRI]; 00159 uint16_t wilkinsonDelay[DDA_PER_ATRI]; 00160 uint32_t ppsCounter; 00161 uint32_t clockCounter; 00162 uint16_t l1Scaler[NUM_L1_SCALERS]; 00163 uint16_t l1ScalerSurface[ANTS_PER_TDA]; 00164 uint16_t l2Scaler[NUM_L2_SCALERS]; 00165 uint16_t l3Scaler[NUM_L3_SCALERS]; 00166 uint16_t l4Scaler[NUM_L4_SCALERS]; 00167 uint16_t t1Scaler[NUM_T1_SCALERS]; 00168 uint16_t vdlyDac[DDA_PER_ATRI]; 00169 uint16_t vadjDac[DDA_PER_ATRI]; 00170 uint16_t thresholdDac[NUM_L1_SCALERS]; 00171 uint16_t surfaceThresholdDac[ANTS_PER_TDA]; 00172 uint8_t evReadoutError; 00173 uint16_t evReadoutCountAvg; 00174 uint16_t evReadoutCountMin; 00175 uint16_t blockBuffCountAvg; 00176 uint16_t blockBuffCountMax; 00177 uint16_t digDeadTime; 00178 uint16_t buffDeadTime; 00179 uint16_t totalDeadTime; 00180 } AraEventHk_t; 00181 00182 00184 00187 typedef struct { 00188 AtriGenericHeader_t gHdr; 00189 uint64_t unixTime; 00190 uint32_t unixTimeUs; 00191 uint8_t atriVoltage; 00192 uint8_t atriCurrent; 00193 uint16_t ddaTemp[DDA_PER_ATRI]; 00194 uint16_t tdaTemp[TDA_PER_ATRI]; 00195 uint32_t ddaVoltageCurrent[DDA_PER_ATRI]; 00196 uint32_t tdaVoltageCurrent[DDA_PER_ATRI]; 00197 } AraSensorHk_t; 00198 00199 00201 00204 typedef struct { 00205 AtriGenericHeader_t gHdr; 00206 uint64_t unixTime; 00207 uint32_t unixTimeUs; 00208 uint32_t eventNumber; 00209 uint32_t eventId[DDA_PER_ATRI]; 00210 uint16_t blockId[DDA_PER_ATRI]; 00211 uint16_t samples[DDA_PER_ATRI][512]; 00212 } AraSimpleStationEvent_t; 00213 00214 00215 00216 #define EXTRA_SOFTWARE_HEADER_BYTES 32 00217 00219 00222 typedef struct { 00223 AtriGenericHeader_t gHdr; 00224 uint64_t unixTime; 00225 uint32_t unixTimeUs; 00226 uint32_t eventNumber; 00227 uint32_t numBytes; 00228 uint32_t timeStamp; 00229 uint32_t ppsNumber; 00230 uint32_t eventId; 00231 uint16_t versionNumber; 00232 uint16_t numReadoutBlocks; 00233 uint32_t triggerInfo[MAX_TRIG_BLOCKS]; 00234 uint8_t triggerBlock[MAX_TRIG_BLOCKS]; 00235 } AraStationEventHeader_t; 00236 00237 00238 00240 00243 typedef struct { 00244 uint16_t irsBlockNumber; 00245 uint16_t channelMask; 00246 // uint8_t channelMask; ///<Bit mask for the 8 available channels 0x8f by default 00247 // uint8_t atriDdaNumber; 00248 } AraStationEventBlockHeader_t; 00249 00250 00252 00255 typedef struct { 00256 uint16_t samples[SAMPLES_PER_BLOCK]; 00257 } AraStationEventBlockChannel_t; 00258 00259 00260 00261 #endif //ATRI_STRUCTURES_H
Generated on Mon Jun 3 16:10:04 2013 for ARA ROOT v3.9 Software by
