Changeset 10212 for fact/FADctrl/FADBoard.cc
- Timestamp:
- 03/02/11 13:35:50 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fact/FADctrl/FADBoard.cc
r10187 r10212 20 20 Continue = true; 21 21 CommOK = false; 22 ACalib Time = -1;22 ACalib.Time = -1; 23 23 Status.Update.tv_sec = -1; 24 24 Port = ServerPort; … … 166 166 case init: 167 167 // Invalidate current calibration 168 ACalib Time = -1;168 ACalib.Time = -1; 169 169 170 170 // Save initial board status, set all ROIs to 1024 and set DAC values … … 203 203 for (unsigned int j=0; j<NChannels; j++) { 204 204 for (unsigned int k=0; k<NBins; k++) { 205 Baseline[i][j][k] = Sum[i][j][k] / m->NumEventsRequested;205 ACalib.Baseline[i][j][k] = Sum[i][j][k] / m->NumEventsRequested; 206 206 } 207 207 } … … 237 237 for (unsigned int j=0; j<NChannels; j++) { 238 238 for (unsigned int k=0; k<NBins; k++) { 239 Gain[i][j][k] = (Sum[i][j][k] / m->NumEventsRequested) -Baseline[i][j][k];239 ACalib.Gain[i][j][k] = (Sum[i][j][k] / m->NumEventsRequested) - ACalib.Baseline[i][j][k]; 240 240 } 241 241 } … … 260 260 for (unsigned int Chan=0; Chan<NChannels; Chan++) { 261 261 for (int i=0; i<Status.ROI[Chip][Chan]; i++) { 262 Sum[Chip][Chan][i] = Data[Chip][Chan][i] - Baseline[Chip][Chan][(i-Status.TriggerCell[Chip]) % NBins];262 Sum[Chip][Chan][i] = Data[Chip][Chan][i] - ACalib.Baseline[Chip][Chan][(i-Status.TriggerCell[Chip]) % NBins]; 263 263 } 264 264 } … … 271 271 for (unsigned int j=0; j<NChannels; j++) { 272 272 for (unsigned int k=0; k<NBins; k++) { 273 SecondaryBaseline[i][j][k] = Sum[i][j][k] / (double) m->NumEventsRequested;273 ACalib.Secondary[i][j][k] = Sum[i][j][k] / (double) m->NumEventsRequested; 274 274 } 275 275 } … … 290 290 291 291 // Store calibration time and temperature 292 ACalibTime = time(NULL); 293 ACalibTemp = 0; 294 for (unsigned int i=0; i<NTemp; i++) ACalibTemp += Status.Temp[i] / NTemp; 292 ACalib.DNA = Status.DNA; 293 ACalib.Frequency = Status.Frequency; 294 ACalib.Time = time(NULL); 295 ACalib.Temp = 0; 296 for (unsigned int i=0; i<NTemp; i++) ACalib.Temp += Status.Temp[i] / NTemp; 295 297 296 298 // Inform event thread that calibration is finished … … 415 417 gettimeofday(&Status.Update, NULL); 416 418 417 // Extract ID and typeinformation418 Status.BoardID = ntohl(Header->board_id); 419 // Extract board and trigger information 420 Status.BoardID = ntohl(Header->board_id); 419 421 Status.FirmwareRevision = ntohl(Header->version_no); 422 Status.BoardTime = ntohl(Header->time); 423 Status.EventCounter = ntohl(Header->fad_evt_counter); 420 424 Status.TriggerID = ntohl(Header->trigger_id); 421 425 Status.TriggerType = ntohs(Header->trigger_type); 426 Status.TriggerCRC = ntohs(Header->trigger_crc); 427 Status.DNA = Header->DNA; 428 429 // Extract frequency related information 430 Status.Frequency = ntohl(Header->REFCLK_frequency)/1.0e6; 431 Status.PhaseShift = ntohs(Header->adc_clock_phase_shift); 432 for (unsigned int i=0; i<NChips; i++) { 433 if ((Header->PLLLCK & (1<<i)) != 0) Status.Lock[i] = true; 434 else Status.Lock[i] = false; 435 } 422 436 423 437 // Extract temperatures (MSB indicates if temperature is positive or negative)
Note:
See TracChangeset
for help on using the changeset viewer.