#include <DiracReader.hh>
Collaboration diagram for DiracDifConfig:
Public Member Functions | |
bool | read (unsigned char *buf) |
Public Attributes | |
i32 | id |
ui32 | bcPeriod |
bool | powerPulsing |
bool | analogReading |
bool | digitalReading |
ui16 | acqMode |
ui16 | lowState |
ui16 | highState |
ui16 | afterState |
ui16 | beforeState |
bool | inverted |
bool | ctestEnable |
ui16 | ctestPeriod |
ui16 | ctestDelay |
ui16 | ctestWidth |
ui16 | triggerDelay |
ui32 | charge |
i32 | nbChips |
std::vector< DiracChipConfig > | chipConfigs |
Definition at line 58 of file DiracReader.hh.
bool DiracDifConfig::read | ( | unsigned char * | buf | ) |
Definition at line 125 of file DiracReader.cpp.
00125 { 00126 // read 19 bytes of DIF config 00127 unsigned int data = *buf++; // read 8 bits 00128 id = data; 00129 00130 data = *buf++; // read 8 bits 00131 powerPulsing = (data & 0x40) != 0; // bit 6 00132 analogReading = (data & 0x20) != 0; // bit 5 00133 digitalReading = (data & 0x10) != 0; // bit 4 00134 acqMode = data & 0x0F; // 4 bits (0-3) 00135 00136 data = *buf++ << 8; // read 16 bits 00137 data += *buf++; 00138 lowState = data & 0x03FF; // 10 bits (0-9) 00139 00140 data = *buf++ << 8; // read 16 bits 00141 data += *buf++; 00142 highState = data & 0x03FF; // 10 bits (0-9) 00143 data = *buf++; // read 8 bits 00144 afterState = data & 0x3F; // 6 bits (0-5) 00145 data = *buf++; // read 8 bits 00146 beforeState = data & 0x3F; // 6 bits (0-5) 00147 00148 data = *buf++ << 8; // read 16 bits 00149 data += *buf++; 00150 inverted = (data & 0x0800) != 0; // bit 11 00151 00152 ctestEnable = (data & 0x0400) != 0; // bit 10 00153 ctestPeriod = data & 0x03FF; // 10 bits (0-9) 00154 00155 data = *buf++ << 8; // read 16 bits 00156 data += *buf++; 00157 ctestDelay = data & 0x03FF; // 10 bits(0-9) 00158 00159 data = *buf++ << 8; // read 16 bits 00160 data += *buf++; 00161 ctestWidth = data & 0x03FF; // 10 bits(0-9) 00162 00163 data = *buf++ << 8; // read 16 bits 00164 data += *buf++; 00165 triggerDelay = data & 0x03FF; // 10 bits(0-9) 00166 00167 data = *buf++ << 24; // read 32 bits 00168 data += *buf++ << 16; 00169 data += *buf++ << 8; 00170 data += *buf++; 00171 charge = data; // 32 bits 00172 00173 bcPeriod = (lowState + highState) * 10; // bunch crossing period in nanoseconds 00174 FILE_LOG(logDEBUG1) << " DIF #" << id << " : mode " << acqMode << ", BC period = " << bcPeriod << endl; 00175 }; // DiracDifConfig::read
Definition at line 82 of file DiracReader.hh.
std::vector<DiracChipConfig> DiracDifConfig::chipConfigs |
Definition at line 83 of file DiracReader.hh.