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 2 00025 #define ARA_SOFT_SUB_VERISON 7 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 00118 typedef struct { 00119 AtriGenericHeader_t gHdr; 00120 uint64_t unixTime; 00121 uint32_t unixTimeUs; 00122 uint32_t firmwareVersion; 00123 uint16_t wilkinsonCounter[DDA_PER_ATRI]; 00124 uint16_t wilkinsonDelay[DDA_PER_ATRI]; 00125 uint32_t ppsCounter; 00126 uint32_t clockCounter; 00127 uint16_t l1Scaler[TDA_PER_ATRI][ANTS_PER_TDA]; 00128 uint16_t l1ScalerSurface[ANTS_PER_TDA]; 00129 uint16_t l2Scaler[TDA_PER_ATRI][L2_PER_TDA]; 00130 uint16_t l3Scaler; 00131 uint16_t l3ScalerSurface; 00132 uint16_t l2ScalerAllTda12; 00133 uint16_t l2ScalerAllTda34; 00134 uint16_t vdlyDac[DDA_PER_ATRI]; 00135 uint16_t vadjDac[DDA_PER_ATRI]; 00136 uint16_t thresholdDac[TDA_PER_ATRI][ANTS_PER_TDA]; 00137 uint16_t surfaceThresholdDac[ANTS_PER_TDA]; 00138 uint8_t deadTime[DDA_PER_ATRI]; 00139 uint8_t avgOccupancy[DDA_PER_ATRI]; 00140 uint8_t maxOccupancy[DDA_PER_ATRI]; 00141 uint8_t reserved[DDA_PER_ATRI]; 00142 } AraEventHk_t; 00143 00144 00146 00149 typedef struct { 00150 AtriGenericHeader_t gHdr; 00151 uint64_t unixTime; 00152 uint32_t unixTimeUs; 00153 uint8_t atriVoltage; 00154 uint8_t atriCurrent; 00155 uint16_t ddaTemp[DDA_PER_ATRI]; 00156 uint16_t tdaTemp[TDA_PER_ATRI]; 00157 uint32_t ddaVoltageCurrent[DDA_PER_ATRI]; 00158 uint32_t tdaVoltageCurrent[DDA_PER_ATRI]; 00159 } AraSensorHk_t; 00160 00161 00163 00166 typedef struct { 00167 AtriGenericHeader_t gHdr; 00168 uint64_t unixTime; 00169 uint32_t unixTimeUs; 00170 uint32_t eventNumber; 00171 uint32_t eventId[DDA_PER_ATRI]; 00172 uint16_t blockId[DDA_PER_ATRI]; 00173 uint16_t samples[DDA_PER_ATRI][512]; 00174 } AraSimpleStationEvent_t; 00175 00176 00177 00178 #define EXTRA_SOFTWARE_HEADER_BYTES 32 00179 00181 00184 typedef struct { 00185 AtriGenericHeader_t gHdr; 00186 uint64_t unixTime; 00187 uint32_t unixTimeUs; 00188 uint32_t eventNumber; 00189 uint32_t numBytes; 00190 uint32_t timeStamp; 00191 uint32_t ppsNumber; 00192 uint32_t eventId; 00193 uint16_t versionNumber; 00194 uint16_t numReadoutBlocks; 00195 uint16_t triggerPattern[MAX_TRIG_BLOCKS]; 00196 uint16_t triggerInfo[MAX_TRIG_BLOCKS]; 00197 uint8_t triggerBlock[MAX_TRIG_BLOCKS]; 00198 } AraStationEventHeader_t; 00199 00200 00201 00203 00206 typedef struct { 00207 uint16_t irsBlockNumber; 00208 uint16_t channelMask; 00209 // uint8_t channelMask; ///<Bit mask for the 8 available channels 0x8f by default 00210 // uint8_t atriDdaNumber; 00211 } AraStationEventBlockHeader_t; 00212 00213 00215 00218 typedef struct { 00219 uint16_t samples[SAMPLES_PER_BLOCK]; 00220 } AraStationEventBlockChannel_t; 00221 00222 00223 00224 #endif //ATRI_STRUCTURES_H
Generated on Tue Sep 11 19:51:09 2012 for ARA ROOT v3.3 Software by
