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=0x0, 00049 ARA_STATION1=0x1, 00050 ARA_STATION1A=-1, 00051 ARA_STATION2=0x2, 00052 ARA_STATION3=0x3, 00053 ARA_STATION4=0x4, 00054 ARA_STATION5=0x5, 00055 ARA_STATION6=0x6, 00056 ARA_STATION7=0x7, 00057 ARA_STATION8=0x8, 00058 ARA_STATION9=0x9, 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 deadTime[DDA_PER_ATRI]; 00173 uint8_t avgOccupancy[DDA_PER_ATRI]; 00174 uint8_t maxOccupancy[DDA_PER_ATRI]; 00175 uint8_t reserved[DDA_PER_ATRI]; 00176 } AraEventHk_t; 00177 00178 00180 00183 typedef struct { 00184 AtriGenericHeader_t gHdr; 00185 uint64_t unixTime; 00186 uint32_t unixTimeUs; 00187 uint8_t atriVoltage; 00188 uint8_t atriCurrent; 00189 uint16_t ddaTemp[DDA_PER_ATRI]; 00190 uint16_t tdaTemp[TDA_PER_ATRI]; 00191 uint32_t ddaVoltageCurrent[DDA_PER_ATRI]; 00192 uint32_t tdaVoltageCurrent[DDA_PER_ATRI]; 00193 } AraSensorHk_t; 00194 00195 00197 00200 typedef struct { 00201 AtriGenericHeader_t gHdr; 00202 uint64_t unixTime; 00203 uint32_t unixTimeUs; 00204 uint32_t eventNumber; 00205 uint32_t eventId[DDA_PER_ATRI]; 00206 uint16_t blockId[DDA_PER_ATRI]; 00207 uint16_t samples[DDA_PER_ATRI][512]; 00208 } AraSimpleStationEvent_t; 00209 00210 00211 00212 #define EXTRA_SOFTWARE_HEADER_BYTES 32 00213 00215 00218 typedef struct { 00219 AtriGenericHeader_t gHdr; 00220 uint64_t unixTime; 00221 uint32_t unixTimeUs; 00222 uint32_t eventNumber; 00223 uint32_t numBytes; 00224 uint32_t timeStamp; 00225 uint32_t ppsNumber; 00226 uint32_t eventId; 00227 uint16_t versionNumber; 00228 uint16_t numReadoutBlocks; 00229 uint32_t triggerInfo[MAX_TRIG_BLOCKS]; 00230 uint8_t triggerBlock[MAX_TRIG_BLOCKS]; 00231 } AraStationEventHeader_t; 00232 00233 00234 00236 00239 typedef struct { 00240 uint16_t irsBlockNumber; 00241 uint16_t channelMask; 00242 // uint8_t channelMask; ///<Bit mask for the 8 available channels 0x8f by default 00243 // uint8_t atriDdaNumber; 00244 } AraStationEventBlockHeader_t; 00245 00246 00248 00251 typedef struct { 00252 uint16_t samples[SAMPLES_PER_BLOCK]; 00253 } AraStationEventBlockChannel_t; 00254 00255 00256 00257 #endif //ATRI_STRUCTURES_H
Generated on Mon Mar 18 16:04:45 2013 for ARA ROOT v3.6 Software by
