Changeset 12185 for trunk/FACT++/gui/RawEventsViewer/RawEventsViewer.cc
- Timestamp:
- 10/17/11 16:36:58 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/gui/RawEventsViewer/RawEventsViewer.cc
r12184 r12185 1156 1156 UIConnector::UIConnector(QWidget*) 1157 1157 { 1158 setupUi(this); 1159 initHistograms(); 1160 1161 currentFile = "none"; 1162 currentCalibFile = "none"; 1163 1158 1164 updateSpinnerDisplay = true; 1165 updating = false; 1159 1166 1160 1167 timer.setInterval(10.0); 1161 1168 QObject::connect(&timer, SIGNAL(timeout()), 1162 this, SLOT(nextSlicePlease())); 1163 hwID = 393; 1164 swID = 0; 1165 crateID = 9; 1166 boardID = 8; 1167 patchID = 1; 1168 rescaleWholeCamera = true; 1169 currentFile = "none"; 1170 currentCalibFile = "none"; 1171 1172 } 1169 this, SLOT(nextSlicePlease())); 1170 1171 QButtonGroup &scaleGroup = *new QButtonGroup(GLWindow);// = new QButtonGroup(canvas); 1172 QButtonGroup &animateGroup = *new QButtonGroup(GLWindow);// = new QButtonGroup(canvas); 1173 1174 scaleGroup.addButton(Ui::MainWindow::currentPixelScale); 1175 scaleGroup.addButton(Ui::MainWindow::entireCameraScale); 1176 1177 animateGroup.addButton(Ui::MainWindow::playEventsRadio); 1178 animateGroup.addButton(Ui::MainWindow::playSlicesRadio); 1179 1180 QObject::connect(GLWindow, SIGNAL(colorPaletteHasChanged()), 1181 this, SLOT(on_autoScaleColor_clicked())); 1182 QObject::connect(GLWindow, SIGNAL(signalCurrentSlice(int)), 1183 this, SLOT(currentSliceHasChanged(int))); 1184 QObject::connect(GLWindow, SIGNAL(signalCurrentEvent(int)), 1185 this, SLOT(currentEventHasChanged(int))); 1186 QObject::connect(GLWindow, SIGNAL(signalCurrentPixel(int)), 1187 this, SLOT(pixelChanged(int))); 1188 QObject::connect(GLWindow, SIGNAL(newFileLoaded()), 1189 this, SLOT(newFileLoaded())); 1190 1191 show(); 1192 } 1193 1173 1194 void UIConnector::slicesPlusPlus() 1174 1195 { 1175 viewer->nextSlice();1196 GLWindow->nextSlice(); 1176 1197 } 1177 1198 void UIConnector::slicesMinusMinus() 1178 1199 { 1179 viewer->previousSlice(); 1180 } 1181 void UIConnector::drawCalibratedDataChanged(int state) 1182 { 1183 cout << "=== drawCalibratedDataChanged " << state << endl; 1184 1185 for (int i=0;i<(1440+160)*viewer->nRoi;i++) 1186 viewer->eventData[i] = (float)viewer->rawEventData[i]; 1187 1188 // if (viewer->calibratedCheckBox->isChecked()) 1200 GLWindow->previousSlice(); 1201 } 1202 void UIConnector::on_calibratedCheckBox_stateChanged(int state) 1203 { 1204 for (int i=0;i<(1440+160)*GLWindow->nRoi;i++) 1205 GLWindow->eventData[i] = (float)GLWindow->rawEventData[i]; 1206 1207 // if (GLWindow->calibratedCheckBox->isChecked()) 1189 1208 if (state) 1190 DataCalib::Apply( viewer->eventData, viewer->rawEventData, viewer->startPix, viewer->nRoi);1191 1192 viewer->updateGL();1209 DataCalib::Apply(GLWindow->eventData, GLWindow->rawEventData, GLWindow->startPix, GLWindow->nRoi); 1210 1211 GLWindow->updateGL(); 1193 1212 1194 1213 //drawCalibrationCheckBox->setChecked(false); 1195 1214 1196 autoScalePressed();1197 pixelChanged( viewer->selectedPixel);1215 on_autoScaleColor_clicked(); 1216 pixelChanged(GLWindow->selectedPixel); 1198 1217 1199 1218 } … … 1201 1220 * DRAW PATCHES CHECK CHANGE. checkbox handler 1202 1221 ************************************************************/ 1203 void UIConnector:: drawPatchesCheckChange(int state)1204 { 1205 viewer->drawPatch = state;1206 viewer->updateGL();1222 void UIConnector::on_drawPatchCheckBox_stateChanged(int state) 1223 { 1224 GLWindow->drawPatch = state; 1225 GLWindow->updateGL(); 1207 1226 } 1208 1227 /************************************************************ 1209 1228 * DRAW IMPULSE CHECK CHANGE. checkbox handler 1210 1229 ************************************************************/ 1211 void UIConnector:: drawImpulseCheckChange(int state)1212 { 1213 viewer->drawImpulse = state;1214 viewer->updateGL();1230 void UIConnector::on_drawImpulseCheckBox_stateChanged(int state) 1231 { 1232 GLWindow->drawImpulse = state; 1233 GLWindow->updateGL(); 1215 1234 } 1216 1235 /************************************************************ 1217 1236 * DRAW BLUR CHECK CHANGE. checkbox handler 1218 1237 ************************************************************/ 1219 void UIConnector::drawBlurCheckChange(int state) 1220 { 1221 viewer->drawBlur = state; 1222 viewer->updateGL(); 1223 } 1224 void UIConnector::loopEventCheckChange(int state) 1225 { 1226 viewer->loopCurrentEvent = state; 1227 } 1238 void UIConnector::on_drawBlurCheckBox_stateChanged(int state) 1239 { 1240 GLWindow->drawBlur = state; 1241 GLWindow->updateGL(); 1242 } 1243 void UIConnector::on_loopOverCurrentEventBox_stateChanged(int state) 1244 { 1245 GLWindow->loopCurrentEvent = state; 1246 } 1247 1228 1248 /************************************************************ 1229 1249 * NEXT SLICE PLEASE … … 1232 1252 { 1233 1253 if (playEventsRadio->isChecked ()) 1234 viewer->eventStepping(true);1254 GLWindow->eventStepping(true); 1235 1255 else 1236 viewer->nextSlice(); 1237 } 1256 GLWindow->nextSlice(); 1257 } 1258 1238 1259 /************************************************************ 1239 1260 * SET VIEWER. 1240 1261 ************************************************************/ 1241 void UIConnector::setViewer(RawDataViewer* v)1242 {1243 viewer = v;1244 }1262 //void UIConnector::setViewer(RawDataViewer* v) 1263 //{ 1264 // viewer = v; 1265 //} 1245 1266 /************************************************************ 1246 1267 * SLICES PER SECOND CHANGED. timing ui handler … … 1250 1271 timer.setInterval(1000.0/value); 1251 1272 } 1252 /************************************************************ 1253 * RANGE CHANGED . colors tweaking handler 1254 ************************************************************/ 1255 void UIConnector::rangeChanged0(double value) 1256 { 1257 viewer->ss[0] = (float)value; 1258 viewer->updateGL(); 1259 } 1260 /************************************************************ 1261 * RANGE CHANGED . colors tweaking handler 1262 ************************************************************/ 1263 void UIConnector::rangeChanged1(double value) 1264 { 1265 viewer->ss[1] = (float)value; 1266 viewer->updateGL(); 1267 } 1268 /************************************************************ 1269 * RANGE CHANGED . colors tweaking handler 1270 ************************************************************/ 1271 void UIConnector::rangeChanged2(double value) 1272 { 1273 viewer->ss[2] = (float)value; 1274 viewer->updateGL(); 1275 } 1276 /************************************************************ 1277 * RANGE CHANGED . colors tweaking handler 1278 ************************************************************/ 1279 void UIConnector::rangeChanged3(double value) 1280 { 1281 viewer->ss[3] = (float)value; 1282 viewer->updateGL(); 1283 } 1284 /************************************************************ 1285 * RANGE CHANGED . colors tweaking handler 1286 ************************************************************/ 1287 void UIConnector::rangeChanged4(double value) 1288 { 1289 viewer->ss[4] = (float)value; 1290 viewer->updateGL(); 1291 } 1292 /************************************************************ 1293 * RANGE CHANGED . colors tweaking handler 1294 ************************************************************/ 1295 void UIConnector::redChanged0(double value) 1296 { 1297 viewer->rr[0] = (float)value; 1298 viewer->updateGL(); 1299 } 1300 /************************************************************ 1301 * RED CHANGED . colors tweaking handler 1302 ************************************************************/ 1303 void UIConnector::redChanged1(double value) 1304 { 1305 viewer->rr[1] = (float)value; 1306 viewer->updateGL(); 1307 } 1308 /************************************************************ 1309 * RED CHANGED . colors tweaking handler 1310 ************************************************************/ 1311 void UIConnector::redChanged2(double value) 1312 { 1313 viewer->rr[2] = (float)value; 1314 viewer->updateGL(); 1315 } 1316 /************************************************************ 1317 * RED CHANGED . colors tweaking handler 1318 ************************************************************/ 1319 void UIConnector::redChanged3(double value) 1320 { 1321 viewer->rr[3] = (float)value; 1322 viewer->updateGL(); 1323 } 1324 /************************************************************ 1325 * RED CHANGED . colors tweaking handler 1326 ************************************************************/ 1327 void UIConnector::redChanged4(double value) 1328 { 1329 viewer->rr[4] = (float)value; 1330 viewer->updateGL(); 1331 } 1332 /************************************************************ 1333 * GREEN CHANGED . colors tweaking handler 1334 ************************************************************/ 1335 void UIConnector::greenChanged0(double value) 1336 { 1337 viewer->gg[0] = (float)value; 1338 viewer->updateGL(); 1339 } 1340 /************************************************************ 1341 * GREEN CHANGED . colors tweaking handler 1342 ************************************************************/ 1343 void UIConnector::greenChanged1(double value) 1344 { 1345 viewer->gg[1] = (float)value; 1346 viewer->updateGL(); 1347 } 1348 /************************************************************ 1349 * GREEN CHANGED . colors tweaking handler 1350 ************************************************************/ 1351 void UIConnector::greenChanged2(double value) 1352 { 1353 viewer->gg[2] = (float)value; 1354 viewer->updateGL(); 1355 } 1356 /************************************************************ 1357 * GREEN CHANGED . colors tweaking handler 1358 ************************************************************/ 1359 void UIConnector::greenChanged3(double value) 1360 { 1361 viewer->gg[3] = (float)value; 1362 viewer->updateGL(); 1363 } 1364 /************************************************************ 1365 * GREEN CHANGED . colors tweaking handler 1366 ************************************************************/ 1367 void UIConnector::greenChanged4(double value) 1368 { 1369 viewer->gg[4] = (float)value; 1370 viewer->updateGL(); 1371 } 1372 /************************************************************ 1373 * BLUE CHANGED . colors tweaking handler 1374 ************************************************************/ 1375 void UIConnector::blueChanged0(double value) 1376 { 1377 viewer->bb[0] = (float)value; 1378 viewer->updateGL(); 1379 } 1380 /************************************************************ 1381 * BLUE CHANGED . colors tweaking handler 1382 ************************************************************/ 1383 void UIConnector::blueChanged1(double value) 1384 { 1385 viewer->bb[1] = (float)value; 1386 viewer->updateGL(); 1387 } 1388 /************************************************************ 1389 * BLUE CHANGED . colors tweaking handler 1390 ************************************************************/ 1391 void UIConnector::blueChanged2(double value) 1392 { 1393 viewer->bb[2] = (float)value; 1394 viewer->updateGL(); 1395 } 1396 /************************************************************ 1397 * BLUE CHANGED . colors tweaking handler 1398 ************************************************************/ 1399 void UIConnector::blueChanged3(double value) 1400 { 1401 viewer->bb[3] = (float)value; 1402 viewer->updateGL(); 1403 } 1404 /************************************************************ 1405 * BLUE CHANGED . colors tweaking handler 1406 ************************************************************/ 1407 void UIConnector::blueChanged4(double value) 1408 { 1409 viewer->bb[4] = (float)value; 1410 viewer->updateGL(); 1411 } 1273 1274 void UIConnector::on_colorRange0_valueChanged(double value) { GLWindow->ss[0] = (float)value; GLWindow->updateGL(); } 1275 void UIConnector::on_colorRange1_valueChanged(double value) { GLWindow->ss[1] = (float)value; GLWindow->updateGL(); } 1276 void UIConnector::on_colorRange2_valueChanged(double value) { GLWindow->ss[2] = (float)value; GLWindow->updateGL(); } 1277 void UIConnector::on_colorRange3_valueChanged(double value) { GLWindow->ss[3] = (float)value; GLWindow->updateGL(); } 1278 void UIConnector::on_colorRange4_valueChanged(double value) { GLWindow->ss[4] = (float)value; GLWindow->updateGL(); } 1279 1280 void UIConnector::on_redValue0_valueChanged(double value) { GLWindow->rr[0] = (float)value; GLWindow->updateGL(); } 1281 void UIConnector::on_redValue1_valueChanged(double value) { GLWindow->rr[1] = (float)value; GLWindow->updateGL(); } 1282 void UIConnector::on_redValue2_valueChanged(double value) { GLWindow->rr[2] = (float)value; GLWindow->updateGL(); } 1283 void UIConnector::on_redValue3_valueChanged(double value) { GLWindow->rr[3] = (float)value; GLWindow->updateGL(); } 1284 void UIConnector::on_redValue4_valueChanged(double value) { GLWindow->rr[4] = (float)value; GLWindow->updateGL(); } 1285 1286 void UIConnector::on_greenValue0_valueChanged(double value) { GLWindow->gg[0] = (float)value; GLWindow->updateGL(); } 1287 void UIConnector::on_greenValue1_valueChanged(double value) { GLWindow->gg[1] = (float)value; GLWindow->updateGL(); } 1288 void UIConnector::on_greenValue2_valueChanged(double value) { GLWindow->gg[2] = (float)value; GLWindow->updateGL(); } 1289 void UIConnector::on_greenValue3_valueChanged(double value) { GLWindow->gg[3] = (float)value; GLWindow->updateGL(); } 1290 void UIConnector::on_greenValue4_valueChanged(double value) { GLWindow->gg[4] = (float)value; GLWindow->updateGL(); } 1291 1292 void UIConnector::on_blueValue0_valueChanged(double value) { GLWindow->bb[0] = (float)value; GLWindow->updateGL(); } 1293 void UIConnector::on_blueValue1_valueChanged(double value) { GLWindow->bb[1] = (float)value; GLWindow->updateGL(); } 1294 void UIConnector::on_blueValue2_valueChanged(double value) { GLWindow->bb[2] = (float)value; GLWindow->updateGL(); } 1295 void UIConnector::on_blueValue3_valueChanged(double value) { GLWindow->bb[3] = (float)value; GLWindow->updateGL(); } 1296 void UIConnector::on_blueValue4_valueChanged(double value) { GLWindow->bb[4] = (float)value; GLWindow->updateGL(); } 1297 1412 1298 /************************************************************ 1413 1299 * LOAD NEW FILE CLICKED. button handler 1414 1300 ************************************************************/ 1415 void UIConnector:: loadNewFileClicked()1301 void UIConnector::on_loadNewFileButton_clicked() 1416 1302 { 1417 1303 QFileDialog dialog; … … 1421 1307 dialog.exec(); 1422 1308 } 1423 void UIConnector:: loadNewCalibFileClicked()1309 void UIConnector::on_loadDRSCalibButton_clicked() 1424 1310 { 1425 1311 QFileDialog dialog; … … 1436 1322 currentFile = file.toStdString(); 1437 1323 if (currentFile != "") 1438 viewer->openFile(currentFile);1324 GLWindow->openFile(currentFile); 1439 1325 } 1440 1326 void UIConnector::calibFileSelected(QString file) … … 1442 1328 currentCalibFile = file.toStdString(); 1443 1329 if (currentCalibFile != "") 1444 viewer->openCalibFile(currentCalibFile);1330 GLWindow->openCalibFile(currentCalibFile); 1445 1331 } 1446 1332 /************************************************************ … … 1456 1342 // fileLoadedLabel->setText(QString(str.str().c_str())); 1457 1343 // str.str(""); 1458 str << "Run number: " << viewer->runNumber << "\n";1344 str << "Run number: " << GLWindow->runNumber << "\n"; 1459 1345 // runNumberLabel->setText(QString(str.str().c_str())); 1460 1346 // str.str(""); 1461 str << "Number of Events: " << viewer->nRows << "\n";1462 1463 eventNumberBox->setMaximum(viewer->nRows-1);1464 1465 str << "Number of Slices: " << viewer->nRoi << "\n";// << "/1024";1347 str << "Number of Events: " << GLWindow->nRows << "\n"; 1348 1349 displayingEventBox->setMaximum(GLWindow->nRows-1); 1350 1351 str << "Number of Slices: " << GLWindow->nRoi << "\n";// << "/1024"; 1466 1352 // numberOfSlicesLabel->setText(QString(str.str().c_str())); 1467 1353 // str.str(""); 1468 str << "Number of Time Marks: " << viewer->nTM << "\n";1354 str << "Number of Time Marks: " << GLWindow->nTM << "\n"; 1469 1355 // numberOfTimeMarksLabel->setText(QString(str.str().c_str())); 1470 1356 1471 1357 // str.str(""); 1472 str << "Run Type: " << viewer->runType << "\n";1358 str << "Run Type: " << GLWindow->runType << "\n"; 1473 1359 // runTypeLabel->setText(QString(str.str().c_str())); 1474 1360 // str.str(""); 1475 str << "Time of 1st data: " << viewer->firstDataTime << "\n";1361 str << "Time of 1st data: " << GLWindow->firstDataTime << "\n"; 1476 1362 // firstTimeLabel->setText(QString(str.str().c_str())); 1477 1363 // str.str(""); 1478 str << "Time of last data: " << viewer->lastDataTime << "\n";1364 str << "Time of last data: " << GLWindow->lastDataTime << "\n"; 1479 1365 // lastTimeLabel->setText(QString(str.str().c_str())); 1480 1366 // str.str(""); 1481 str << "SVN revision: " << viewer->revision << '\n';1482 str << "Number of boards: " << viewer->nBoards << '\n';1483 str << "Number of pixels: " << viewer->nPixels << '\n';1484 str << "Number of Slices TM: " << viewer->nRoiTM << '\n';1485 str << "Time system: " << viewer->timeSystem << '\n';1486 str << "Date: " << viewer->creationDate << '\n';1487 str << "Night: " << viewer->nightInt << '\n';1488 str << "Camera: " << viewer->camera << '\n';1489 str << "DAQ: " << viewer->daq << '\n';1490 str << "ADC Count: " << viewer->adcCount << '\n';1491 str << "NB Evts OK:" << viewer->nbOk << '\n';1492 str << "NB Evts Rejected: " << viewer->nbRej << '\n';1493 str << "NB Evts Bad: " << viewer->nbBad << '\n';1367 str << "SVN revision: " << GLWindow->revision << '\n'; 1368 str << "Number of boards: " << GLWindow->nBoards << '\n'; 1369 str << "Number of pixels: " << GLWindow->nPixels << '\n'; 1370 str << "Number of Slices TM: " << GLWindow->nRoiTM << '\n'; 1371 str << "Time system: " << GLWindow->timeSystem << '\n'; 1372 str << "Date: " << GLWindow->creationDate << '\n'; 1373 str << "Night: " << GLWindow->nightInt << '\n'; 1374 str << "Camera: " << GLWindow->camera << '\n'; 1375 str << "DAQ: " << GLWindow->daq << '\n'; 1376 str << "ADC Count: " << GLWindow->adcCount << '\n'; 1377 str << "NB Evts OK:" << GLWindow->nbOk << '\n'; 1378 str << "NB Evts Rejected: " << GLWindow->nbRej << '\n'; 1379 str << "NB Evts Bad: " << GLWindow->nbBad << '\n'; 1494 1380 extraInfoLabel->setText(QString(str.str().c_str())); 1495 1381 1496 1382 /* 1497 if ( viewer->calibrationLoaded)1383 if (GLWindow->calibrationLoaded) 1498 1384 { 1499 1385 drawCalibrationCheckBox->setEnabled(true); … … 1517 1403 void UIConnector::currentSliceHasChanged(int slice) 1518 1404 { 1519 if (! viewer->nRoi)1405 if (!GLWindow->nRoi) 1520 1406 return; 1521 ostringstream str;1522 1407 // str << "Displaying Slice " << slice; 1523 1408 // QString qstr(str.str().c_str()); 1524 1409 if (updateSpinnerDisplay) 1525 emit updateCurrentSliceDisplay(slice); 1526 1527 str.str(""); 1528 str << "Current Pixel val.: " << viewer->eventData[viewer->nRoi*viewer->selectedPixel + viewer->whichSlice]; 1529 QString qstr = qstr.fromStdString(str.str()); 1530 emit updateCurrentPixelSliceValue(qstr); 1410 displayingSliceBox->setValue(slice); 1411 1412 ostringstream str; 1413 str << "Current Pixel val.: " << GLWindow->eventData[GLWindow->nRoi*GLWindow->selectedPixel + GLWindow->whichSlice]; 1414 currentPixelValue->setText(QString(str.str().c_str())); 1531 1415 1532 1416 } … … 1536 1420 double xval[50000]; 1537 1421 double yval[50000]; 1538 void UIConnector:: eventChangedFromSpinner(int cEvent)1422 void UIConnector::on_displayingEventBox_valueChanged(int cEvent) 1539 1423 { 1540 1424 // cout << "Here " << updateSpinnerDisplay << endl; … … 1543 1427 updateSpinnerDisplay = false; 1544 1428 // currentEventHasChanged(cEvent); 1545 viewer->rowNum = cEvent - viewer->eventStep;1546 viewer->eventStepping(true);1429 GLWindow->rowNum = cEvent - GLWindow->eventStep; 1430 GLWindow->eventStepping(true); 1547 1431 updateSpinnerDisplay = true; 1548 1432 1549 // viewer->updateGL();1550 } 1551 void UIConnector:: sliceChangedFromSpinner(int cSlice)1433 // GLWindow->updateGL(); 1434 } 1435 void UIConnector::on_displayingSliceBox_valueChanged(int cSlice) 1552 1436 { 1553 1437 updateSpinnerDisplay = false; 1554 1438 currentSliceHasChanged(cSlice); 1555 1439 updateSpinnerDisplay = true; 1556 viewer->whichSlice = cSlice;1557 viewer->updateGL();1440 GLWindow->whichSlice = cSlice; 1441 GLWindow->updateGL(); 1558 1442 } 1559 1443 void UIConnector::currentEventHasChanged(int ) … … 1566 1450 { 1567 1451 updateSpinnerDisplay = false; 1568 emit updateCurrentEventDisplay(viewer->rowNum);1452 displayingEventBox->setValue(GLWindow->rowNum); 1569 1453 updateSpinnerDisplay = true; 1570 1454 } 1571 1455 1572 // viewer->doWaveLetOnCurrentEventPlease();1456 // GLWindow->doWaveLetOnCurrentEventPlease(); 1573 1457 1574 1458 //retrieve the data that we want to display 1459 boost::posix_time::ptime hrTime( boost::gregorian::date(1970, boost::gregorian::Jan, 1), 1460 boost::posix_time::seconds(GLWindow->pcTime[0]) + boost::posix_time::microsec(GLWindow->pcTime[1])); 1461 1575 1462 str.str(""); 1576 boost::posix_time::ptime hrTime( boost::gregorian::date(1970, boost::gregorian::Jan, 1),1577 boost::posix_time::seconds(viewer->pcTime[0]) + boost::posix_time::microsec(viewer->pcTime[1]));1578 // cout << boost::posix_time::to_iso_extended_string(hrTime) << endl;1579 1463 str << "PC Time: " << boost::posix_time::to_iso_extended_string(hrTime); 1580 // str << "PC Time: " << viewer->pcTime[0]; 1581 // str << " " << viewer->pcTime[1]; 1582 QString qstr = qstr.fromStdString(str.str()); 1583 emit updateCurrentPCTime(qstr); 1464 PCTimeLabel->setText(QString(str.str().c_str())); 1584 1465 1585 1466 str.str(""); 1586 str << "Software Trigger: " << viewer->softTrig; 1587 qstr = qstr.fromStdString(str.str()); 1588 emit updateCurrentSoftTrigger(qstr); 1467 str << "Software Trigger: " << GLWindow->softTrig; 1468 softwareTriggerLabel->setText(QString(str.str().c_str())); 1589 1469 1590 1470 str.str(""); 1591 str << "Trigger Type: " << viewer->triggerType; 1592 qstr = qstr.fromStdString(str.str()); 1593 emit updateCurrentTriggerType(qstr); 1471 str << "Trigger Type: " << GLWindow->triggerType; 1472 triggerTypeLabel->setText(QString(str.str().c_str())); 1594 1473 1595 1474 str.str(""); 1596 str << "Current Pixel val.: " << viewer->eventData[viewer->nRoi*viewer->selectedPixel + viewer->whichSlice]; 1597 qstr = qstr.fromStdString(str.str()); 1598 emit updateCurrentPixelSliceValue(qstr); 1475 str << "Current Pixel val.: " << GLWindow->eventData[GLWindow->nRoi*GLWindow->selectedPixel + GLWindow->whichSlice]; 1476 currentPixelValue->setText(QString(str.str().c_str())); 1599 1477 1600 1478 if (autoScaleColor->isChecked()) 1601 emit viewer->colorPaletteHasChanged();//autoScalePressed();1479 emit GLWindow->colorPaletteHasChanged();//autoScalePressed(); 1602 1480 1603 1481 boardsTimeList->clear(); … … 1613 1491 if (i<100) str << " "; 1614 1492 if (i<1000) str << " "; 1615 str << ": " << viewer->boardTime[i];1493 str << ": " << GLWindow->boardTime[i]; 1616 1494 boardsTimeList->addItem(QString(str.str().c_str())); 1617 if (boardsHistoMap.find( viewer->boardTime[i]) != boardsHistoMap.end())1618 boardsHistoMap[ viewer->boardTime[i]]++;1495 if (boardsHistoMap.find(GLWindow->boardTime[i]) != boardsHistoMap.end()) 1496 boardsHistoMap[GLWindow->boardTime[i]]++; 1619 1497 else 1620 boardsHistoMap[ viewer->boardTime[i]] = 1;1498 boardsHistoMap[GLWindow->boardTime[i]] = 1; 1621 1499 } 1622 1500 std::map<int, int> pixelHistoMap; … … 1628 1506 if (i<100) str << " "; 1629 1507 if (i<1000) str << " "; 1630 str << ": " << viewer->startPix[i];1508 str << ": " << GLWindow->startPix[i]; 1631 1509 startPixelsList->addItem(QString(str.str().c_str())); 1632 if (pixelHistoMap.find( viewer->startPix[i]) != pixelHistoMap.end())1633 pixelHistoMap[ viewer->startPix[i]]++;1510 if (pixelHistoMap.find(GLWindow->startPix[i]) != pixelHistoMap.end()) 1511 pixelHistoMap[GLWindow->startPix[i]]++; 1634 1512 else 1635 pixelHistoMap[ viewer->startPix[i]] = 1;1513 pixelHistoMap[GLWindow->startPix[i]] = 1; 1636 1514 } 1637 1515 … … 1644 1522 if (i<100) str << " "; 1645 1523 if (i<1000) str << " "; 1646 str << ": " << viewer->startTM[i];1524 str << ": " << GLWindow->startTM[i]; 1647 1525 startTimeMarksList->addItem(QString(str.str().c_str())); 1648 if (timeMarksMap.find( viewer->startTM[i]) != timeMarksMap.end())1649 timeMarksMap[ viewer->startTM[i]]++;1526 if (timeMarksMap.find(GLWindow->startTM[i]) != timeMarksMap.end()) 1527 timeMarksMap[GLWindow->startTM[i]]++; 1650 1528 else 1651 timeMarksMap[ viewer->startTM[i]] = 1;1529 timeMarksMap[GLWindow->startTM[i]] = 1; 1652 1530 } 1653 1531 std::map<int,int> delayMap; … … 1657 1535 str.str(""); 1658 1536 str << i << " | "; 1659 for (int j=0;j< viewer->nRoi;j++)1660 { 1661 int value = viewer->eventData[1440*viewer->nRoi + i*viewer->nRoi + j];1537 for (int j=0;j<GLWindow->nRoi;j++) 1538 { 1539 int value = GLWindow->eventData[1440*GLWindow->nRoi + i*GLWindow->nRoi + j]; 1662 1540 if (delayMap.find(value) != delayMap.end()) 1663 1541 delayMap[value]++; … … 1825 1703 for (int i=0;i<1024*1440;i++) 1826 1704 { 1827 if (valuesHistoMap.find( viewer->rawEventData[i]) != valuesHistoMap.end())1828 valuesHistoMap[ viewer->rawEventData[i]]++;1705 if (valuesHistoMap.find(GLWindow->rawEventData[i]) != valuesHistoMap.end()) 1706 valuesHistoMap[GLWindow->rawEventData[i]]++; 1829 1707 else 1830 valuesHistoMap[ viewer->rawEventData[i]] = 1;1831 if (waveletHistoMap.find( viewer->waveLetArray[i]) != waveletHistoMap.end())1832 waveletHistoMap[ viewer->waveLetArray[i]]++;1708 valuesHistoMap[GLWindow->rawEventData[i]] = 1; 1709 if (waveletHistoMap.find(GLWindow->waveLetArray[i]) != waveletHistoMap.end()) 1710 waveletHistoMap[GLWindow->waveLetArray[i]]++; 1833 1711 else 1834 waveletHistoMap[ viewer->waveLetArray[i]] = 1;1712 waveletHistoMap[GLWindow->waveLetArray[i]] = 1; 1835 1713 } 1836 1714 … … 1929 1807 triggerDelayHistoZoom->setZoomStack(stack); 1930 1808 stack.pop(); 1931 pixelChanged( viewer->selectedPixel);1809 pixelChanged(GLWindow->selectedPixel); 1932 1810 } 1933 1811 //can't use a ref to rectangle, as the type must be converted first … … 1958 1836 grid->enableYMin(false); 1959 1837 grid->setMajPen(QPen(Qt::black, 0, Qt::DotLine)); 1960 grid->attach(startCell Histo);1838 grid->attach(startCellsHisto); 1961 1839 1962 1840 grid = new QwtPlotGrid; … … 1984 1862 grid->attach(triggerDelayHisto); 1985 1863 1986 1987 1864 boardsTimeHisto->setAutoReplot(true); 1988 startCell Histo->setAutoReplot(true);1865 startCellsHisto->setAutoReplot(true); 1989 1866 startTimeMarkHisto->setAutoReplot(true); 1990 1867 pixelValueCurve->setAutoReplot(true); 1991 1868 triggerDelayHisto->setAutoReplot(true); 1992 1869 boardsTimeHisto->setTitle("Boards time values"); 1993 startCell Histo->setTitle("Start Cell values");1870 startCellsHisto->setTitle("Start Cell values"); 1994 1871 startTimeMarkHisto->setTitle("Start Time Marks values"); 1995 1872 pixelValueCurve->setTitle("Current pixel values"); … … 2012 1889 2013 1890 boardsTimeHistoItem.attach(boardsTimeHisto); 2014 startCellHistoItem.attach(startCell Histo);1891 startCellHistoItem.attach(startCellsHisto); 2015 1892 startTimeMarkHistoItem.attach(startTimeMarkHisto); 2016 1893 triggerDelayHistoItem.attach(triggerDelayHisto); … … 2037 1914 curveZoom->setRubberBandPen(QPen(Qt::gray, 2, Qt::DotLine)); 2038 1915 curveZoom->setTrackerPen(QPen(Qt::gray)); 1916 2039 1917 boardsTimeHistoZoom = new QwtPlotZoomer(boardsTimeHisto->canvas()); 2040 1918 boardsTimeHistoZoom->setRubberBandPen(QPen(Qt::gray, 2, Qt::DotLine)); 2041 1919 boardsTimeHistoZoom->setTrackerPen(QPen(Qt::gray)); 2042 startCellHistoZoom = new QwtPlotZoomer(startCellHisto->canvas()); 1920 1921 startCellHistoZoom = new QwtPlotZoomer(startCellsHisto->canvas()); 2043 1922 startCellHistoZoom->setRubberBandPen(QPen(Qt::gray, 2, Qt::DotLine)); 2044 1923 startCellHistoZoom->setTrackerPen(QPen(Qt::gray)); 1924 2045 1925 startTimeMarkHistoZoom = new QwtPlotZoomer(startTimeMarkHisto->canvas()); 2046 1926 startTimeMarkHistoZoom->setRubberBandPen(QPen(Qt::gray, 2, Qt::DotLine)); 2047 1927 startTimeMarkHistoZoom->setTrackerPen(QPen(Qt::gray)); 1928 2048 1929 triggerDelayHistoZoom = new QwtPlotZoomer(triggerDelayHisto->canvas()); 2049 1930 triggerDelayHistoZoom->setRubberBandPen(QPen(Qt::gray, 2, Qt::DotLine)); … … 2054 1935 void UIConnector::pixelChanged(int pixel) 2055 1936 { 2056 if (!viewer->nRoi) 1937 pixel = GLWindow->hardwareMapping[pixel]; 1938 HwIDBox->setValue(pixel); 1939 1940 if (!GLWindow->nRoi) 2057 1941 return; 2058 1942 2059 // if (hwID == pixel) 2060 // return; 2061 for (int i=0;i<viewer->nRoi;i++) 1943 for (int i=0;i<GLWindow->nRoi;i++) 2062 1944 { 2063 1945 xval[i] = i; … … 2065 1947 yval[i] = eventsData[0][pixel][i]; 2066 1948 #else 2067 yval[i] = viewer->eventData[viewer->nRoi*pixel + i];1949 yval[i] = GLWindow->eventData[GLWindow->nRoi*pixel + i]; 2068 1950 #endif 2069 1951 } 2070 1952 2071 // viewer->computePulsesStatistics();1953 // GLWindow->computePulsesStatistics(); 2072 1954 #if QWT_VERSION < 0x060000 2073 pixelValueCurveItem.setData(xval, yval, viewer->nRoi);2074 //// aMeanCurveItem.setData(xval, viewer->aMeas, viewer->nRoi);2075 // meanCurveItem.setData(xval, viewer->n1mean, viewer->nRoi);2076 // vCorrCurveItem.setData(xval, viewer->vCorr, viewer->nRoi-3);1955 pixelValueCurveItem.setData(xval, yval, GLWindow->nRoi); 1956 //// aMeanCurveItem.setData(xval, GLWindow->aMeas, GLWindow->nRoi); 1957 // meanCurveItem.setData(xval, GLWindow->n1mean, GLWindow->nRoi); 1958 // vCorrCurveItem.setData(xval, GLWindow->vCorr, GLWindow->nRoi-3); 2077 1959 #else 2078 pixelValueCurveItem.setSamples(xval, yval, viewer->nRoi);2079 // aMeanCurveItem.setSamples(xval, viewer->aMeas, viewer->nRoi);2080 // meanCurveItem.setSamples(xval, viewer->n1mean, viewer->nRoi);2081 // vCorrCurveItem.setSamples(xval, viewer->vCorr, viewer->nRoi-3);1960 pixelValueCurveItem.setSamples(xval, yval, GLWindow->nRoi); 1961 // aMeanCurveItem.setSamples(xval, GLWindow->aMeas, GLWindow->nRoi); 1962 // meanCurveItem.setSamples(xval, GLWindow->n1mean, GLWindow->nRoi); 1963 // vCorrCurveItem.setSamples(xval, GLWindow->vCorr, GLWindow->nRoi-3); 2082 1964 #endif 2083 1965 … … 2088 1970 stack.pop(); 2089 1971 2090 hwID = pixel;2091 swID = viewer->softwareMapping[pixel];2092 crateID = pixel/360;2093 boardID = (pixel - crateID*360)/36;2094 patchID = (pixel - crateID*360 - boardID*36)/9;2095 2096 if (HwIDBox->value() != hwID)2097 HwIDBox->setValue(hwID);2098 if (SwIDBox->value() != swID)2099 SwIDBox->setValue(swID);2100 if (crateIDBox->value() != crateID)2101 crateIDBox->setValue(crateID);2102 if (boardIDBox->value() != boardID)2103 boardIDBox->setValue(boardID);2104 if (patchIDBox->value() != patchID)2105 patchIDBox->setValue(patchID);2106 2107 1972 ostringstream str; 2108 1973 QString qstr; 2109 str.str(""); 2110 str << "Current Pixel val.: " << viewer->eventData[viewer->nRoi*viewer->selectedPixel + viewer->whichSlice]; 2111 qstr = qstr.fromStdString(str.str()); 2112 emit updateCurrentPixelSliceValue(qstr); 2113 autoScalePressed(); 2114 2115 } 2116 2117 void UIConnector::hwIDChanged(int hwid) 2118 { 2119 hwID = hwid; 2120 swID = viewer->softwareMapping[hwid]; 2121 crateID = hwID/360; 2122 boardID = (hwID - crateID*360)/36; 2123 patchID = (hwID - crateID*360 - boardID*36)/9; 2124 2125 // crateID = (hwid/4)/10; 2126 // boardID = (hwid/4)%10; 2127 // patchID = hwid%4; 2128 HwIDBox->setValue(hwID); 2129 SwIDBox->setValue(swID); 1974 str << "Current Pixel val.: " << GLWindow->eventData[GLWindow->nRoi*GLWindow->selectedPixel + GLWindow->whichSlice]; 1975 currentPixelValue->setText(qstr.fromStdString(str.str())); 1976 on_autoScaleColor_clicked(); 1977 } 1978 1979 void UIConnector::on_HwIDBox_valueChanged(int) 1980 { 1981 updating = true; 1982 1983 const int hwID = HwIDBox->value(); 1984 1985 const int crateID = hwID/360; 1986 const int boardID = (hwID%360)/36; 1987 const int patchID = (hwID%36 )/9; 1988 const int pixelID = hwID%9; 1989 1990 SwIDBox->setValue(GLWindow->softwareMapping[hwID]); 1991 2130 1992 crateIDBox->setValue(crateID); 2131 1993 boardIDBox->setValue(boardID); 2132 1994 patchIDBox->setValue(patchID); 2133 2134 viewer->selectedPixel = hwid; 2135 pixelChanged(hwid); 2136 viewer->updateGL(); 2137 2138 } 2139 void UIConnector::swIDChanged(int swid) 2140 { 2141 swID = swid; 2142 hwID = viewer->hardwareMapping[swid]; 2143 crateID = hwID/360; 2144 boardID = (hwID - crateID*360)/36; 2145 patchID = (hwID - crateID*360 - boardID*36)/9; 2146 2147 // crateID = (hwID/4)/10; 2148 // boardID = (hwID/4)%10; 2149 // patchID = hwID%4; 2150 HwIDBox->setValue(hwID); 2151 SwIDBox->setValue(swID); 2152 crateIDBox->setValue(crateID); 2153 boardIDBox->setValue(boardID); 2154 patchIDBox->setValue(patchID); 2155 2156 viewer->selectedPixel = hwID; 2157 pixelChanged(hwID); 2158 viewer->updateGL(); 2159 } 2160 void UIConnector::crateIDChanged(int cid) 2161 { 2162 hwID -= 360*crateID; 2163 crateID = cid; 2164 hwID += 360*crateID; 2165 swID = viewer->softwareMapping[hwID]; 2166 HwIDBox->setValue(hwID); 2167 SwIDBox->setValue(swID); 2168 viewer->selectedPixel = hwID; 2169 pixelChanged(hwID); 2170 viewer->updateGL(); 2171 } 2172 void UIConnector::boardIDChanged(int bid) 2173 { 2174 hwID -= 36*boardID; 2175 boardID = bid; 2176 hwID += 36*boardID; 2177 swID = viewer->softwareMapping[hwID]; 2178 HwIDBox->setValue(hwID); 2179 SwIDBox->setValue(swID); 2180 viewer->selectedPixel = hwID; 2181 pixelChanged(hwID); 2182 viewer->updateGL(); 2183 } 2184 void UIConnector::patchIDChanged(int pid) 2185 { 2186 hwID -= 9*patchID; 2187 patchID = pid; 2188 hwID += 9*patchID; 2189 swID = viewer->softwareMapping[hwID]; 2190 HwIDBox->setValue(hwID); 2191 SwIDBox->setValue(swID); 2192 viewer->selectedPixel = hwID; 2193 pixelChanged(hwID); 2194 viewer->updateGL(); 2195 } 2196 void UIConnector::autoScalePressed() 1995 pixelIDBox->setValue(pixelID); 1996 1997 updating = false; 1998 1999 pixelChanged(GLWindow->softwareMapping[hwID]); 2000 2001 GLWindow->selectedPixel = GLWindow->softwareMapping[hwID]; 2002 GLWindow->updateGL(); 2003 } 2004 2005 void UIConnector::cbpxChanged() 2006 { 2007 if (updating) 2008 return; 2009 2010 const int hwid = crateIDBox->value()*360 + boardIDBox->value()*36 + patchIDBox->value()*9 + pixelIDBox->value(); 2011 HwIDBox->setValue(hwid); 2012 } 2013 2014 void UIConnector::on_SwIDBox_valueChanged(int swid) 2015 { 2016 if (updating) 2017 return; 2018 2019 HwIDBox->setValue(GLWindow->hardwareMapping[swid]); 2020 } 2021 2022 void UIConnector::on_autoScaleColor_clicked() 2197 2023 { 2198 2024 if (!autoScaleColor->isChecked()) 2199 2025 { 2200 2026 /* 2201 viewer->ss[0] = 0;2202 viewer->ss[1] = 0.25;2203 viewer->ss[2] = 0.5;2204 viewer->ss[3] = 0.75;2205 viewer->ss[4] = 1;2206 range0->setValue( viewer->ss[0]);2207 range1->setValue( viewer->ss[1]);2208 range2->setValue( viewer->ss[2]);2209 range3->setValue( viewer->ss[3]);2210 range4->setValue( viewer->ss[4]);2027 GLWindow->ss[0] = 0; 2028 GLWindow->ss[1] = 0.25; 2029 GLWindow->ss[2] = 0.5; 2030 GLWindow->ss[3] = 0.75; 2031 GLWindow->ss[4] = 1; 2032 range0->setValue(GLWindow->ss[0]); 2033 range1->setValue(GLWindow->ss[1]); 2034 range2->setValue(GLWindow->ss[2]); 2035 range3->setValue(GLWindow->ss[3]); 2036 range4->setValue(GLWindow->ss[4]); 2211 2037 */ 2212 2038 return; 2213 2039 } 2214 if (! viewer->nRoi)2040 if (!GLWindow->nRoi) 2215 2041 return; 2216 2042 int start, end; 2217 if ( rescaleWholeCamera)2043 if (entireCameraScale->isChecked()) 2218 2044 { 2219 2045 start = 0; … … 2222 2048 else 2223 2049 { 2224 start = viewer->selectedPixel;2225 end = viewer->selectedPixel+1;2050 start = GLWindow->selectedPixel; 2051 end = GLWindow->selectedPixel+1; 2226 2052 } 2227 2053 … … 2233 2059 for (int i=start;i<end;i++) 2234 2060 { 2235 for (int j=0;j< viewer->nRoi;j++)2236 { 2237 int cValue = viewer->eventData[i*viewer->nRoi+j];2061 for (int j=0;j<GLWindow->nRoi;j++) 2062 { 2063 int cValue = GLWindow->eventData[i*GLWindow->nRoi+j]; 2238 2064 if (cValue > max && cValue < 32767) 2239 2065 max = cValue; … … 2261 2087 double maxRange = (double)(max+(VALUES_SPAN/2))/(double)VALUES_SPAN; 2262 2088 double midRange = (double)(average+(VALUES_SPAN/2))/(double)VALUES_SPAN; 2263 if ( viewer->logScale)2089 if (GLWindow->logScale) 2264 2090 { 2265 2091 minRange *= 9; … … 2274 2100 midRange = log10(midRange); 2275 2101 } 2276 viewer->ss[0] = minRange; 2277 range0->setValue(viewer->ss[0]); 2278 viewer->ss[4] = maxRange; 2279 range4->setValue(viewer->ss[4]); 2280 // viewer->ss[2] = midRange; 2281 // range2->setValue(viewer->ss[2]); 2282 // viewer->ss[1] = (minRange+midRange)/2; 2283 // range1->setValue(viewer->ss[1]); 2284 // viewer->ss[3] = (maxRange+midRange)/2; 2285 // range3->setValue(viewer->ss[3]); 2286 2287 viewer->ss[2] = (maxRange+minRange)/2; 2288 range2->setValue(viewer->ss[2]); 2289 2290 viewer->ss[1] = minRange+(maxRange-minRange)/4; 2291 range1->setValue(viewer->ss[1]); 2292 2293 viewer->ss[3] = minRange+3*(maxRange-minRange)/4; 2294 range3->setValue(viewer->ss[3]); 2295 2296 2297 } 2298 void UIConnector::entireCameraChanged(bool state) 2299 { 2300 if (state) 2301 { 2302 rescaleWholeCamera = true; 2303 currentPixelScale->setChecked(false); 2304 } 2305 else 2306 { 2307 rescaleWholeCamera = false; 2308 currentPixelScale->setChecked(true); 2309 } 2310 autoScalePressed(); 2311 } 2312 void UIConnector::currentPixelChanged(bool state) 2313 { 2314 2315 if (state) 2316 { 2317 rescaleWholeCamera = false; 2318 entireCameraScale->setChecked(false); 2319 } 2320 else 2321 { 2322 rescaleWholeCamera = true; 2323 entireCameraScale->setChecked(true); 2324 } 2325 autoScalePressed(); 2326 } 2327 2328 2102 2103 GLWindow->ss[0] = minRange; 2104 colorRange0->setValue(GLWindow->ss[0]); 2105 GLWindow->ss[4] = maxRange; 2106 colorRange4->setValue(GLWindow->ss[4]); 2107 // GLWindow->ss[2] = midRange; 2108 // range2->setValue(GLWindow->ss[2]); 2109 // GLWindow->ss[1] = (minRange+midRange)/2; 2110 // range1->setValue(GLWindow->ss[1]); 2111 // GLWindow->ss[3] = (maxRange+midRange)/2; 2112 // range3->setValue(GLWindow->ss[3]); 2113 2114 GLWindow->ss[2] = (maxRange+minRange)/2; 2115 colorRange2->setValue(GLWindow->ss[2]); 2116 2117 GLWindow->ss[1] = minRange+(maxRange-minRange)/4; 2118 colorRange1->setValue(GLWindow->ss[1]); 2119 2120 GLWindow->ss[3] = minRange+3*(maxRange-minRange)/4; 2121 colorRange3->setValue(GLWindow->ss[3]); 2122 } 2329 2123 2330 2124 void PrintUsage() … … 2345 2139 << endl; 2346 2140 } 2141 2142 int UIConnector::SetupConfiguration(Configuration &conf) 2143 { 2144 RawDataViewer *canvas = GLWindow; 2145 2146 if (conf.Has("color.range")) 2147 { 2148 vector<double> value = conf.Vec<double>("color.range"); 2149 if (value.size() != 5) 2150 { 2151 cout << "Error, colorRange option should have exactly 5 double values" << endl; 2152 return -1; 2153 } 2154 for (int i=0;i<5;i++) 2155 canvas->ss[i] = value[i]; 2156 } 2157 2158 if (conf.Has("color.red")) 2159 { 2160 vector<double> value = conf.Vec<double>("color.red"); 2161 if (value.size() != 5) 2162 { 2163 cout << "Error, colorRed option should have exactly 5 double values" << endl; 2164 return -1; 2165 } 2166 for (int i=0;i<5;i++) 2167 canvas->rr[i] = value[i]; 2168 } 2169 2170 if (conf.Has("color.green")) 2171 { 2172 vector<double> value = conf.Vec<double>("color.green"); 2173 if (value.size() != 5) 2174 { 2175 cout << "Error, colorGreen option should have exactly 5 double values" << endl; 2176 return -1; 2177 } 2178 for (int i=0;i<5;i++) 2179 canvas->gg[i] = value[i]; 2180 } 2181 2182 if (conf.Has("color.blue")) 2183 { 2184 vector<double> value = conf.Vec<double>("color.blue"); 2185 if (value.size() != 5) 2186 { 2187 cout << "Error, colorBlue option should have exactly 5 double values" << endl; 2188 return -1; 2189 } 2190 for (int i=0;i<5;i++) 2191 canvas->bb[i] = value[i]; 2192 } 2193 2194 colorRange0->setValue(canvas->ss[0]); 2195 colorRange1->setValue(canvas->ss[1]); 2196 colorRange2->setValue(canvas->ss[2]); 2197 colorRange3->setValue(canvas->ss[3]); 2198 colorRange4->setValue(canvas->ss[4]); 2199 redValue0->setValue(canvas->rr[0]); 2200 redValue1->setValue(canvas->rr[1]); 2201 redValue2->setValue(canvas->rr[2]); 2202 redValue3->setValue(canvas->rr[3]); 2203 redValue4->setValue(canvas->rr[4]); 2204 greenValue0->setValue(canvas->gg[0]); 2205 greenValue1->setValue(canvas->gg[1]); 2206 greenValue2->setValue(canvas->gg[2]); 2207 greenValue3->setValue(canvas->gg[3]); 2208 greenValue4->setValue(canvas->gg[4]); 2209 blueValue0->setValue(canvas->bb[0]); 2210 blueValue1->setValue(canvas->bb[1]); 2211 blueValue2->setValue(canvas->bb[2]); 2212 blueValue3->setValue(canvas->bb[3]); 2213 blueValue4->setValue(canvas->bb[4]); 2214 2215 if (conf.Has("file")) 2216 { 2217 const QString qstr(conf.Get<string>("file").c_str()); 2218 fileSelected(qstr); 2219 } 2220 2221 if (conf.Has("drs")) 2222 { 2223 const QString qstr(conf.Get<string>("drs").c_str()); 2224 calibFileSelected(qstr); 2225 } 2226 2227 return 0; 2228 } 2229 2347 2230 void SetupConfiguration(Configuration& conf) 2348 2231 { … … 2365 2248 } 2366 2249 2367 /*2368 class MainWindow : public QMainWindow, protected Ui::MainWindow2369 {2370 Q_OBJECT;2371 2372 public:2373 MainWindow(QWidget *p=0) : QMainWindow(p)2374 {2375 setupUi(this);2376 }2377 2378 int SetupConfiguration(Configuration &conf)2379 {2380 RawDataViewer *canvas = GLWindow;2381 2382 if (conf.Has("color.range"))2383 {2384 vector<double> value = conf.Vec<double>("color.range");2385 if (value.size() != 5)2386 {2387 cout << "Error, colorRange option should have exactly 5 double values" << endl;2388 return -1;2389 }2390 for (int i=0;i<5;i++)2391 canvas->ss[i] = value[i];2392 }2393 2394 if (conf.Has("color.red"))2395 {2396 vector<double> value = conf.Vec<double>("color.red");2397 if (value.size() != 5)2398 {2399 cout << "Error, colorRed option should have exactly 5 double values" << endl;2400 return -1;2401 }2402 for (int i=0;i<5;i++)2403 canvas->rr[i] = value[i];2404 }2405 2406 if (conf.Has("color.green"))2407 {2408 vector<double> value = conf.Vec<double>("color.green");2409 if (value.size() != 5)2410 {2411 cout << "Error, colorGreen option should have exactly 5 double values" << endl;2412 return -1;2413 }2414 for (int i=0;i<5;i++)2415 canvas->gg[i] = value[i];2416 }2417 2418 if (conf.Has("color.blue"))2419 {2420 vector<double> value = conf.Vec<double>("color.blue");2421 if (value.size() != 5)2422 {2423 cout << "Error, colorBlue option should have exactly 5 double values" << endl;2424 return -1;2425 }2426 for (int i=0;i<5;i++)2427 canvas->bb[i] = value[i];2428 }2429 2430 colorRange0->setValue(canvas->ss[0]);2431 colorRange1->setValue(canvas->ss[1]);2432 colorRange2->setValue(canvas->ss[2]);2433 colorRange3->setValue(canvas->ss[3]);2434 colorRange4->setValue(canvas->ss[4]);2435 redValue0->setValue(canvas->rr[0]);2436 redValue1->setValue(canvas->rr[1]);2437 redValue2->setValue(canvas->rr[2]);2438 redValue3->setValue(canvas->rr[3]);2439 redValue4->setValue(canvas->rr[4]);2440 greenValue0->setValue(canvas->gg[0]);2441 greenValue1->setValue(canvas->gg[1]);2442 greenValue2->setValue(canvas->gg[2]);2443 greenValue3->setValue(canvas->gg[3]);2444 greenValue4->setValue(canvas->gg[4]);2445 blueValue0->setValue(canvas->bb[0]);2446 blueValue1->setValue(canvas->bb[1]);2447 blueValue2->setValue(canvas->bb[2]);2448 blueValue3->setValue(canvas->bb[3]);2449 blueValue4->setValue(canvas->bb[4]);2450 2451 return 0;2452 }2453 2454 };2455 */2456 2457 2250 /************************************************************ 2458 2251 * MAIN PROGRAM FUNCTION. … … 2460 2253 int main(int argc, const char *argv[]) 2461 2254 { 2255 QApplication app(argc, const_cast<char**>(argv)); 2256 2257 if (!QGLFormat::hasOpenGL()) { 2258 std::cerr << "This system has no OpenGL support" << std::endl; 2259 return 1; 2260 } 2261 2462 2262 Configuration conf(argv[0]); 2463 2263 conf.SetPrintUsage(PrintUsage); 2464 2264 SetupConfiguration(conf); 2465 2265 if (!conf.DoParse(argc, argv, PrintHelp)) 2466 return -1; 2467 2468 QApplication app(argc, const_cast<char**>(argv)); 2469 2470 if (!QGLFormat::hasOpenGL()) { 2471 std::cerr << "This system has no OpenGL support" << std::endl; 2472 return 1; 2473 } 2474 2475 /* 2476 MainWindow myUi; 2266 return 2; 2267 2268 UIConnector myUi; 2477 2269 if (myUi.SetupConfiguration(conf)<0) 2478 return -1; 2479 */ 2480 2481 QMainWindow mainWindow; 2482 2483 Ui_MainWindow myUi; 2484 myUi.setupUi(&mainWindow); 2485 2486 UIConnector connector; 2487 2488 RawDataViewer *canvas = myUi.GLWindow; 2489 2490 if (conf.Has("color.range")) 2491 { 2492 vector<double> value = conf.Vec<double>("color.range"); 2493 if (value.size() != 5) 2494 { 2495 cout << "Error, colorRange option should have exactly 5 double values" << endl; 2496 return -1; 2497 } 2498 for (int i=0;i<5;i++) 2499 canvas->ss[i] = value[i]; 2500 } 2501 2502 if (conf.Has("color.red")) 2503 { 2504 vector<double> value = conf.Vec<double>("color.red"); 2505 if (value.size() != 5) 2506 { 2507 cout << "Error, colorRed option should have exactly 5 double values" << endl; 2508 return -1; 2509 } 2510 for (int i=0;i<5;i++) 2511 canvas->rr[i] = value[i]; 2512 } 2513 2514 if (conf.Has("color.green")) 2515 { 2516 vector<double> value = conf.Vec<double>("color.green"); 2517 if (value.size() != 5) 2518 { 2519 cout << "Error, colorGreen option should have exactly 5 double values" << endl; 2520 return -1; 2521 } 2522 for (int i=0;i<5;i++) 2523 canvas->gg[i] = value[i]; 2524 } 2525 2526 if (conf.Has("color.blue")) 2527 { 2528 vector<double> value = conf.Vec<double>("color.blue"); 2529 if (value.size() != 5) 2530 { 2531 cout << "Error, colorBlue option should have exactly 5 double values" << endl; 2532 return -1; 2533 } 2534 for (int i=0;i<5;i++) 2535 canvas->bb[i] = value[i]; 2536 } 2537 2538 2539 // QObject::connect(myUi.eventsMinusButton, SIGNAL(clicked()), 2540 // canvas, SLOT(minusEvent())); 2541 // QObject::connect(myUi.eventsPlusButton, SIGNAL(clicked()), 2542 // canvas, SLOT(plusEvent())); 2543 // QObject::connect(myUi.eventsStepBox, SIGNAL(valueChanged(int)), 2544 // canvas, SLOT(setEventStep(int))); 2545 myUi.colorRange0->setValue(canvas->ss[0]); 2546 myUi.colorRange1->setValue(canvas->ss[1]); 2547 myUi.colorRange2->setValue(canvas->ss[2]); 2548 myUi.colorRange3->setValue(canvas->ss[3]); 2549 myUi.colorRange4->setValue(canvas->ss[4]); 2550 myUi.redValue0->setValue(canvas->rr[0]); 2551 myUi.redValue1->setValue(canvas->rr[1]); 2552 myUi.redValue2->setValue(canvas->rr[2]); 2553 myUi.redValue3->setValue(canvas->rr[3]); 2554 myUi.redValue4->setValue(canvas->rr[4]); 2555 myUi.greenValue0->setValue(canvas->gg[0]); 2556 myUi.greenValue1->setValue(canvas->gg[1]); 2557 myUi.greenValue2->setValue(canvas->gg[2]); 2558 myUi.greenValue3->setValue(canvas->gg[3]); 2559 myUi.greenValue4->setValue(canvas->gg[4]); 2560 myUi.blueValue0->setValue(canvas->bb[0]); 2561 myUi.blueValue1->setValue(canvas->bb[1]); 2562 myUi.blueValue2->setValue(canvas->bb[2]); 2563 myUi.blueValue3->setValue(canvas->bb[3]); 2564 myUi.blueValue4->setValue(canvas->bb[4]); 2565 2566 connector.setViewer(canvas); 2567 connector.boardsTimeList = myUi.boardsTimeList; 2568 connector.boardsTimeHisto = myUi.boardsTimeHisto; 2569 connector.startPixelsList = myUi.startPixelsList; 2570 connector.startCellHisto = myUi.startCellsHisto; 2571 connector.startTimeMarkHisto = myUi.startTimeMarkHisto; 2572 connector.pixelValueCurve = myUi.pixelValueCurve; 2573 connector.triggerDelayHisto = myUi.triggerDelayHisto; 2574 connector.triggerDelayList = myUi.triggerDelayList; 2575 connector.autoScaleColor = myUi.autoScaleColor; 2576 2577 connector.startTimeMarksList = myUi.startTimeMarksList; 2578 // connector.fileLoadedLabel = myUi.fileLoadedLabel; 2579 // connector.runNumberLabel = myUi.runNumberLabel; 2580 // connector.numberOfSlicesLabel = myUi.numberOfSlicesLabel; 2581 // connector.numberOfTimeMarksLabel = myUi.numberOfTimeMarksLabel; 2582 // connector.runTypeLabel = myUi.runTypeLabel; 2583 // connector.firstTimeLabel = myUi.timeOfFirstDataLabel; 2584 // connector.lastTimeLabel = myUi.timeOfLastDataLabel; 2585 connector.currentPixelValue = myUi.currentPixelValue; 2586 2587 connector.currentPixelScale = myUi.currentPixelScale; 2588 connector.entireCameraScale = myUi.entireCameraScale; 2589 connector.playEventsRadio = myUi.playEventsRadio; 2590 2591 connector.extraInfoLabel = myUi.extraInfoLabel; 2592 2593 connector.HwIDBox = myUi.HwIDBox; 2594 connector.SwIDBox = myUi.SwIDBox; 2595 connector.crateIDBox = myUi.crateIDBox; 2596 connector.boardIDBox = myUi.boardIDBox; 2597 connector.patchIDBox = myUi.patchIDBox; 2598 2599 connector.eventNumberBox = myUi.displayingEventBox; 2600 2601 connector.range0 = myUi.colorRange0; 2602 connector.range1 = myUi.colorRange1; 2603 connector.range2 = myUi.colorRange2; 2604 connector.range3 = myUi.colorRange3; 2605 connector.range4 = myUi.colorRange4; 2606 connector.drawCalibrationCheckBox = myUi.calibratedCheckBox; 2607 // connector.drawCalibrationCheckBox->setEnabled(false); 2608 2609 connector.initHistograms(); 2610 2611 QButtonGroup scaleGroup(canvas);// = new QButtonGroup(canvas); 2612 QButtonGroup animateGroup(canvas);// = new QButtonGroup(canvas); 2613 scaleGroup.addButton(myUi.currentPixelScale); 2614 scaleGroup.addButton(myUi.entireCameraScale); 2615 animateGroup.addButton(myUi.playEventsRadio); 2616 animateGroup.addButton(myUi.playSlicesRadio); 2617 myUi.entireCameraScale->setChecked(true); 2618 // QObject::connect(myUi.slicesPlusPlusButton, SIGNAL(clicked()), 2619 // &connector, SLOT(slicesPlusPlus())); 2620 // QObject::connect(myUi.slicesMinusMinusButton, SIGNAL(clicked()), 2621 // &connector, SLOT(slicesMinusMinus())); 2622 2623 QObject::connect(myUi.autoScaleColor, SIGNAL(clicked()), 2624 &connector, SLOT(autoScalePressed())); 2625 QObject::connect(canvas, SIGNAL(colorPaletteHasChanged()), 2626 &connector, SLOT(autoScalePressed())); 2627 2628 QObject::connect(myUi.currentPixelScale, SIGNAL(toggled(bool)), 2629 &connector, SLOT(currentPixelChanged(bool))); 2630 QObject::connect(myUi.entireCameraScale, SIGNAL(toggled(bool)), 2631 &connector, SLOT(entireCameraChanged(bool))); 2632 2633 QObject::connect(myUi.HwIDBox, SIGNAL(valueChanged(int)), 2634 &connector, SLOT(hwIDChanged(int))); 2635 QObject::connect(myUi.SwIDBox, SIGNAL(valueChanged(int)), 2636 &connector, SLOT(swIDChanged(int))); 2637 QObject::connect(myUi.crateIDBox, SIGNAL(valueChanged(int)), 2638 &connector, SLOT(crateIDChanged(int))); 2639 QObject::connect(myUi.boardIDBox, SIGNAL(valueChanged(int)), 2640 &connector, SLOT(boardIDChanged(int))); 2641 QObject::connect(myUi.patchIDBox, SIGNAL(valueChanged(int)), 2642 &connector, SLOT(patchIDChanged(int))); 2643 2644 // connector.pixelChanged(0); 2645 QObject::connect(canvas, SIGNAL(signalCurrentPixel(int)), 2646 &connector, SLOT(pixelChanged(int))); 2647 QObject::connect(myUi.drawPatchCheckBox, SIGNAL(stateChanged(int)), 2648 &connector, SLOT(drawPatchesCheckChange(int))); 2649 QObject::connect(myUi.drawImpulseCheckBox, SIGNAL(stateChanged(int)), 2650 &connector, SLOT(drawImpulseCheckChange(int))); 2651 QObject::connect(myUi.drawBlurCheckBox, SIGNAL(stateChanged(int)), 2652 &connector, SLOT(drawBlurCheckChange(int))); 2653 QObject::connect(myUi.loopOverCurrentEventBox, SIGNAL(stateChanged(int)), 2654 &connector, SLOT(loopEventCheckChange(int))); 2655 QObject::connect(canvas, SIGNAL(newFileLoaded()), 2656 &connector, SLOT(newFileLoaded())); 2657 2658 QObject::connect(myUi.calibratedCheckBox, SIGNAL(stateChanged(int)), 2659 &connector, SLOT(drawCalibratedDataChanged(int))); 2660 QObject::connect(myUi.loadNewFileButton, SIGNAL(clicked()), 2661 &connector, SLOT(loadNewFileClicked())); 2662 QObject::connect(myUi.loadDRSCalibButton, SIGNAL(clicked()), 2663 &connector, SLOT(loadNewCalibFileClicked())); 2664 2665 QObject::connect(myUi.colorRange0, SIGNAL(valueChanged(double)), 2666 &connector, SLOT(rangeChanged0(double))); 2667 2668 QObject::connect(myUi.colorRange1, SIGNAL(valueChanged(double)), 2669 &connector, SLOT(rangeChanged1(double))); 2670 2671 QObject::connect(myUi.colorRange2, SIGNAL(valueChanged(double)), 2672 &connector, SLOT(rangeChanged2(double))); 2673 2674 QObject::connect(myUi.colorRange3, SIGNAL(valueChanged(double)), 2675 &connector, SLOT(rangeChanged3(double))); 2676 2677 QObject::connect(myUi.colorRange4, SIGNAL(valueChanged(double)), 2678 &connector, SLOT(rangeChanged4(double))); 2679 2680 QObject::connect(myUi.redValue0, SIGNAL(valueChanged(double)), 2681 &connector, SLOT(redChanged0(double))); 2682 2683 QObject::connect(myUi.redValue1, SIGNAL(valueChanged(double)), 2684 &connector, SLOT(redChanged1(double))); 2685 2686 QObject::connect(myUi.redValue2, SIGNAL(valueChanged(double)), 2687 &connector, SLOT(redChanged2(double))); 2688 2689 QObject::connect(myUi.redValue3, SIGNAL(valueChanged(double)), 2690 &connector, SLOT(redChanged3(double))); 2691 2692 QObject::connect(myUi.redValue4, SIGNAL(valueChanged(double)), 2693 &connector, SLOT(redChanged4(double))); 2694 2695 QObject::connect(myUi.greenValue0, SIGNAL(valueChanged(double)), 2696 &connector, SLOT(greenChanged0(double))); 2697 2698 QObject::connect(myUi.greenValue1, SIGNAL(valueChanged(double)), 2699 &connector, SLOT(greenChanged1(double))); 2700 2701 QObject::connect(myUi.greenValue2, SIGNAL(valueChanged(double)), 2702 &connector, SLOT(greenChanged2(double))); 2703 2704 QObject::connect(myUi.greenValue3, SIGNAL(valueChanged(double)), 2705 &connector, SLOT(greenChanged3(double))); 2706 2707 QObject::connect(myUi.greenValue4, SIGNAL(valueChanged(double)), 2708 &connector, SLOT(greenChanged4(double))); 2709 2710 QObject::connect(myUi.blueValue0, SIGNAL(valueChanged(double)), 2711 &connector, SLOT(blueChanged0(double))); 2712 2713 QObject::connect(myUi.blueValue1, SIGNAL(valueChanged(double)), 2714 &connector, SLOT(blueChanged1(double))); 2715 2716 QObject::connect(myUi.blueValue2, SIGNAL(valueChanged(double)), 2717 &connector, SLOT(blueChanged2(double))); 2718 2719 QObject::connect(myUi.blueValue3, SIGNAL(valueChanged(double)), 2720 &connector, SLOT(blueChanged3(double))); 2721 2722 QObject::connect(myUi.blueValue4, SIGNAL(valueChanged(double)), 2723 &connector, SLOT(blueChanged4(double))); 2724 2725 QObject::connect(myUi.slicesPerSecValue, SIGNAL(valueChanged(double)), 2726 &connector, SLOT(slicesPerSecondChanged(double))); 2727 QObject::connect(myUi.playPauseButton, SIGNAL(clicked()), 2728 &connector, SLOT(playPauseClicked())); 2729 2730 QObject::connect(canvas, SIGNAL(signalCurrentSlice(int)), 2731 &connector, SLOT(currentSliceHasChanged(int))); 2732 QObject::connect(canvas, SIGNAL(signalCurrentEvent(int)), 2733 &connector, SLOT(currentEventHasChanged(int))); 2734 2735 QObject::connect(&connector, SIGNAL(updateCurrentSliceDisplay(int)), 2736 myUi.displayingSliceBox, SLOT(setValue(int))); 2737 2738 QObject::connect(myUi.displayingSliceBox, SIGNAL(valueChanged(int)), 2739 &connector, SLOT(sliceChangedFromSpinner(int))); 2740 QObject::connect(myUi.displayingEventBox, SIGNAL(valueChanged(int)), 2741 &connector, SLOT(eventChangedFromSpinner(int))); 2742 2743 // QObject::connect(&connector, SIGNAL(updateCurrentEventDisplay(QString)), 2744 // myUi.displayingEventLabel, SLOT(setText(const QString))); 2745 QObject::connect(&connector, SIGNAL(updateCurrentEventDisplay(int)), 2746 myUi.displayingEventBox, SLOT(setValue(int))); 2747 2748 QObject::connect(&connector, SIGNAL(updateCurrentPCTime(QString)), 2749 myUi.PCTimeLabel, SLOT(setText(const QString))); 2750 QObject::connect(&connector, SIGNAL(updateCurrentSoftTrigger(QString)), 2751 myUi.softwareTriggerLabel, SLOT(setText(const QString))); 2752 QObject::connect(&connector, SIGNAL(updateCurrentTriggerType(QString)), 2753 myUi.triggerTypeLabel, SLOT(setText(const QString))); 2754 QObject::connect(&connector, SIGNAL(updateCurrentPixelSliceValue(const QString)), 2755 myUi.currentPixelValue, SLOT(setText(const QString))); 2756 2757 if (conf.Has("file")) 2758 { 2759 const QString qstr(conf.Get<string>("file").c_str()); 2760 connector.fileSelected(qstr); 2761 } 2762 2763 if (conf.Has("drs")) 2764 { 2765 const QString qstr(conf.Get<string>("drs").c_str()); 2766 connector.calibFileSelected(qstr); 2767 } 2768 2769 mainWindow.show(); 2270 return 3; 2770 2271 2771 2272 return app.exec();
Note:
See TracChangeset
for help on using the changeset viewer.