Changeset 11607
- Timestamp:
- 07/26/11 12:42:13 (14 years ago)
- Location:
- trunk/FACT++
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/gui/FactGui.h
r11591 r11607 396 396 DimStampedInfo fDimFadPrescaler; 397 397 DimStampedInfo fDimFadRefClock; 398 DimStampedInfo fDimFadRoi; 398 399 DimStampedInfo fDimFadStatus; 399 400 DimStampedInfo fDimFadStatistics1; … … 1069 1070 SetLedColor(fFadLedRefClock, abs(diff)>3?kLedRed:kLedGreen, d.time); 1070 1071 1071 handleFadToolTip(d.time, fFadLedRefClock, ptr+2); 1072 handleFadToolTip(d.time, fFadLedRefClock, ptr); 1073 } 1074 1075 void handleFadRoi(const DimData &d) 1076 { 1077 if (d.size()==0) 1078 { 1079 fFadRoi->setEnabled(false); 1080 fFadRoiCh9->setEnabled(false); 1081 SetLedColor(fFadLedRoi, kLedGray, d.time); 1082 return; 1083 } 1084 1085 if (!CheckSize(d, 2*sizeof(uint16_t))) 1086 return; 1087 1088 const uint16_t *ptr = d.ptr<uint16_t>(); 1089 1090 fFadRoi->setEnabled(true); 1091 fFadRoiCh9->setEnabled(true); 1092 1093 fFadRoi->setValue(ptr[0]); 1094 fFadRoiCh9->setValue(ptr[1]); 1095 1096 SetLedColor(fFadLedRoi, kLedGray, d.time); 1072 1097 } 1073 1098 … … 2294 2319 if (getInfo()==&fDimFadRefClock) 2295 2320 return PostInfoHandler(&FactGui::handleFadRefClock); 2321 2322 if (getInfo()==&fDimFadRoi) 2323 return PostInfoHandler(&FactGui::handleFadRoi); 2296 2324 2297 2325 if (getInfo()==&fDimFadPrescaler) … … 2739 2767 fDimFtmCounter ("FTM_CONTROL/COUNTER", (void*)NULL, 0, this), 2740 2768 //- 2741 fDimFadWriteStats ("FAD_CONTROL/STATS", (void*)NULL, 0, this), 2742 fDimFadRuns ("FAD_CONTROL/RUNS", (void*)NULL, 0, this), 2743 fDimFadEvents ("FAD_CONTROL/EVENTS", (void*)NULL, 0, this), 2744 fDimFadEventData ("FAD_CONTROL/EVENT_DATA", (void*)NULL, 0, this), 2745 fDimFadConnections ("FAD_CONTROL/CONNECTIONS", (void*)NULL, 0, this), 2746 fDimFadFwVersion ("FAD_CONTROL/FIRMWARE_VERSION", (void*)NULL, 0, this), 2747 fDimFadRunNumber ("FAD_CONTROL/RUN_NUMBER", (void*)NULL, 0, this), 2748 fDimFadDNA ("FAD_CONTROL/DNA", (void*)NULL, 0, this), 2749 fDimFadTemperature ("FAD_CONTROL/TEMPERATURE", (void*)NULL, 0, this), 2750 fDimFadPrescaler ("FAD_CONTROL/PRESCALER", (void*)NULL, 0, this), 2751 fDimFadRefClock ("FAD_CONTROL/REFERENCE_CLOCK", (void*)NULL, 0, this), 2752 fDimFadStatus ("FAD_CONTROL/STATUS", (void*)NULL, 0, this), 2753 fDimFadStatistics1 ("FAD_CONTROL/STATISTICS1", (void*)NULL, 0, this), 2754 fDimFadStatistics2 ("FAD_CONTROL/STATISTICS2", (void*)NULL, 0, this), 2769 fDimFadWriteStats ("FAD_CONTROL/STATS", (void*)NULL, 0, this), 2770 fDimFadRuns ("FAD_CONTROL/RUNS", (void*)NULL, 0, this), 2771 fDimFadEvents ("FAD_CONTROL/EVENTS", (void*)NULL, 0, this), 2772 fDimFadEventData ("FAD_CONTROL/EVENT_DATA", (void*)NULL, 0, this), 2773 fDimFadConnections ("FAD_CONTROL/CONNECTIONS", (void*)NULL, 0, this), 2774 fDimFadFwVersion ("FAD_CONTROL/FIRMWARE_VERSION", (void*)NULL, 0, this), 2775 fDimFadRunNumber ("FAD_CONTROL/RUN_NUMBER", (void*)NULL, 0, this), 2776 fDimFadDNA ("FAD_CONTROL/DNA", (void*)NULL, 0, this), 2777 fDimFadTemperature ("FAD_CONTROL/TEMPERATURE", (void*)NULL, 0, this), 2778 fDimFadPrescaler ("FAD_CONTROL/PRESCALER", (void*)NULL, 0, this), 2779 fDimFadRefClock ("FAD_CONTROL/REFERENCE_CLOCK", (void*)NULL, 0, this), 2780 fDimFadRoi ("FAD_CONTROL/REGION_OF_INTEREST", (void*)NULL, 0, this), 2781 fDimFadStatus ("FAD_CONTROL/STATUS", (void*)NULL, 0, this), 2782 fDimFadStatistics1 ("FAD_CONTROL/STATISTICS1", (void*)NULL, 0, this), 2783 fDimFadStatistics2 ("FAD_CONTROL/STATISTICS2", (void*)NULL, 0, this), 2755 2784 //- 2756 2785 fEventData(0) -
trunk/FACT++/gui/design.ui
r11606 r11607 3175 3175 </item> 3176 3176 <item row="3" column="1"> 3177 <widget class="QPushButton" name="f StatusDNSLed_3">3177 <widget class="QPushButton" name="fFadLedRoi"> 3178 3178 <property name="enabled"> 3179 3179 <bool>true</bool> … … 3293 3293 </widget> 3294 3294 </item> 3295 <item row="3" column="2">3296 <widget class="QSpinBox" name="spinBox_2">3297 <property name="enabled">3298 <bool>false</bool>3299 </property>3300 <property name="alignment">3301 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>3302 </property>3303 <property name="readOnly">3304 <bool>true</bool>3305 </property>3306 <property name="buttonSymbols">3307 <enum>QAbstractSpinBox::NoButtons</enum>3308 </property>3309 </widget>3310 </item>3311 3295 <item row="0" column="2"> 3312 3296 <widget class="QDoubleSpinBox" name="fFadFwVersion"> … … 3335 3319 </widget> 3336 3320 </item> 3337 <item row="3" column="3">3338 <widget class="QSpinBox" name="fFadRoiCmd">3339 <property name="alignment">3340 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>3341 </property>3342 <property name="maximum">3343 <number>1024</number>3344 </property>3345 </widget>3346 </item>3347 3321 <item row="1" column="0"> 3348 3322 <widget class="QLabel" name="label_145"> … … 3416 3390 </widget> 3417 3391 </item> 3418 <item row=" 4" column="1">3392 <item row="5" column="1"> 3419 3393 <spacer name="verticalSpacer_26"> 3420 3394 <property name="orientation"> … … 3432 3406 </spacer> 3433 3407 </item> 3434 <item row=" 5" column="2">3408 <item row="6" column="2"> 3435 3409 <widget class="QLabel" name="label_128"> 3436 3410 <property name="text"> … … 3442 3416 </widget> 3443 3417 </item> 3444 <item row=" 5" column="3">3418 <item row="6" column="3"> 3445 3419 <widget class="QLabel" name="label_129"> 3446 3420 <property name="text"> … … 3452 3426 </widget> 3453 3427 </item> 3454 <item row=" 6" column="2">3428 <item row="7" column="2"> 3455 3429 <widget class="QDoubleSpinBox" name="fFadTempMin"> 3456 3430 <property name="alignment"> … … 3468 3442 </widget> 3469 3443 </item> 3470 <item row=" 6" column="3">3444 <item row="7" column="3"> 3471 3445 <widget class="QDoubleSpinBox" name="fFadTempMax"> 3472 3446 <property name="alignment"> … … 3484 3458 </widget> 3485 3459 </item> 3486 <item row=" 7" column="2">3460 <item row="8" column="2"> 3487 3461 <widget class="QDoubleSpinBox" name="fFadRefClockMin"> 3488 3462 <property name="enabled"> … … 3518 3492 </widget> 3519 3493 </item> 3520 <item row=" 7" column="3">3494 <item row="8" column="3"> 3521 3495 <widget class="QDoubleSpinBox" name="fFadRefClockMax"> 3522 3496 <property name="sizePolicy"> … … 3546 3520 </widget> 3547 3521 </item> 3548 <item row=" 6" column="0">3522 <item row="7" column="0"> 3549 3523 <widget class="QLabel" name="label_111"> 3550 3524 <property name="text"> … … 3553 3527 </widget> 3554 3528 </item> 3555 <item row=" 6" column="1">3529 <item row="7" column="1"> 3556 3530 <widget class="QPushButton" name="fFadLedTemp"> 3557 3531 <property name="enabled"> … … 3591 3565 </widget> 3592 3566 </item> 3593 <item row=" 7" column="0">3567 <item row="8" column="0"> 3594 3568 <widget class="QLabel" name="label_101"> 3595 3569 <property name="text"> … … 3598 3572 </widget> 3599 3573 </item> 3600 <item row=" 7" column="1">3574 <item row="8" column="1"> 3601 3575 <widget class="QPushButton" name="fFadLedRefClock"> 3602 3576 <property name="enabled"> … … 3636 3610 </widget> 3637 3611 </item> 3638 <item row=" 8" column="1">3612 <item row="9" column="1"> 3639 3613 <widget class="QPushButton" name="fFadLedRefClockTooLow"> 3640 3614 <property name="enabled"> … … 3674 3648 </widget> 3675 3649 </item> 3676 <item row=" 8" column="0">3650 <item row="9" column="0"> 3677 3651 <widget class="QLabel" name="label_103"> 3678 3652 <property name="text"> … … 3681 3655 </widget> 3682 3656 </item> 3683 <item row=" 9" column="0">3657 <item row="10" column="0"> 3684 3658 <widget class="QLabel" name="label_92"> 3685 3659 <property name="text"> … … 3688 3662 </widget> 3689 3663 </item> 3690 <item row=" 9" column="1">3664 <item row="10" column="1"> 3691 3665 <widget class="QPushButton" name="fFadLedPllLock"> 3692 3666 <property name="enabled"> … … 3726 3700 </widget> 3727 3701 </item> 3702 <item row="3" column="2"> 3703 <widget class="QSpinBox" name="fFadRoi"> 3704 <property name="enabled"> 3705 <bool>false</bool> 3706 </property> 3707 <property name="alignment"> 3708 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3709 </property> 3710 <property name="readOnly"> 3711 <bool>true</bool> 3712 </property> 3713 <property name="buttonSymbols"> 3714 <enum>QAbstractSpinBox::NoButtons</enum> 3715 </property> 3716 <property name="minimum"> 3717 <number>-1</number> 3718 </property> 3719 <property name="maximum"> 3720 <number>1024</number> 3721 </property> 3722 <property name="value"> 3723 <number>-1</number> 3724 </property> 3725 </widget> 3726 </item> 3727 <item row="3" column="3"> 3728 <widget class="QSpinBox" name="fFadRoiCmd"> 3729 <property name="alignment"> 3730 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3731 </property> 3732 <property name="maximum"> 3733 <number>1024</number> 3734 </property> 3735 </widget> 3736 </item> 3737 <item row="4" column="2"> 3738 <widget class="QSpinBox" name="fFadRoiCh9"> 3739 <property name="enabled"> 3740 <bool>false</bool> 3741 </property> 3742 <property name="alignment"> 3743 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3744 </property> 3745 <property name="readOnly"> 3746 <bool>true</bool> 3747 </property> 3748 <property name="buttonSymbols"> 3749 <enum>QAbstractSpinBox::NoButtons</enum> 3750 </property> 3751 <property name="minimum"> 3752 <number>-1</number> 3753 </property> 3754 <property name="maximum"> 3755 <number>1024</number> 3756 </property> 3757 <property name="value"> 3758 <number>-1</number> 3759 </property> 3760 </widget> 3761 </item> 3762 <item row="4" column="3"> 3763 <widget class="QSpinBox" name="fFadRoiCh9Cmd"> 3764 <property name="enabled"> 3765 <bool>false</bool> 3766 </property> 3767 <property name="alignment"> 3768 <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> 3769 </property> 3770 <property name="maximum"> 3771 <number>1024</number> 3772 </property> 3773 </widget> 3774 </item> 3775 <item row="4" column="0"> 3776 <widget class="QLabel" name="label_161"> 3777 <property name="text"> 3778 <string>Region of interest (ch9)</string> 3779 </property> 3780 </widget> 3781 </item> 3728 3782 </layout> 3729 </item>3730 <item row="1" column="2">3731 <spacer name="horizontalSpacer_29">3732 <property name="orientation">3733 <enum>Qt::Horizontal</enum>3734 </property>3735 <property name="sizeHint" stdset="0">3736 <size>3737 <width>40</width>3738 <height>20</height>3739 </size>3740 </property>3741 </spacer>3742 3783 </item> 3743 3784 <item row="1" column="0"> … … 3760 3801 </property> 3761 3802 </widget> 3803 </item> 3804 <item row="1" column="2"> 3805 <spacer name="horizontalSpacer_29"> 3806 <property name="orientation"> 3807 <enum>Qt::Horizontal</enum> 3808 </property> 3809 <property name="sizeHint" stdset="0"> 3810 <size> 3811 <width>40</width> 3812 <height>20</height> 3813 </size> 3814 </property> 3815 </spacer> 3762 3816 </item> 3763 3817 </layout> -
trunk/FACT++/src/EventBuilderWrapper.h
r11605 r11607 801 801 DimDescribedService fDimPrescaler; 802 802 DimDescribedService fDimRefClock; 803 DimDescribedService fDimRoi; 803 804 DimDescribedService fDimStatistics1; 804 805 DimDescribedService fDimStatistics2; … … 841 842 fFileFormat(kNone), fMaxRun(0), fLastOpened(0), fLastClosed(0), 842 843 fDimWriteStats ("FAD_CONTROL", imp), 843 fDimRuns ("FAD_CONTROL/RUNS", "I:5;C", ""), 844 fDimEvents ("FAD_CONTROL/EVENTS", "I:4", ""), 845 fDimEventData ("FAD_CONTROL/EVENT_DATA", "S:1;I:1;S:1;I:1;I:2;I:40;S:1440;S:160;S", ""), 846 fDimFwVersion ("FAD_CONTROL/FIRMWARE_VERSION", "F:42", ""), 847 fDimRunNumber ("FAD_CONTROL/RUN_NUMBER", "I:42", ""), 848 fDimStatus ("FAD_CONTROL/STATUS", "S:42", ""), 849 fDimDNA ("FAD_CONTROL/DNA", "X:40", ""), 850 fDimTemperature ("FAD_CONTROL/TEMPERATURE", "F:82", ""), 851 fDimPrescaler ("FAD_CONTROL/PRESCALER", "S:42", ""), 852 fDimRefClock ("FAD_CONTROL/REFERENCE_CLOCK", "I:42", ""), 853 fDimStatistics1 ("FAD_CONTROL/STATISTICS1", "I:3;I:5;X:4;I:3;I:3;I:40;I:1;I:2;C:40;I:40;I:40;X:40", ""), 854 fDimStatistics2 ("FAD_CONTROL/STATISTICS2", "I:1;I:280;X:40;I:40;I:4;I:4;I:2;I:2;I:3;C:40", ""), 844 fDimRuns ("FAD_CONTROL/RUNS", "I:5;C", ""), 845 fDimEvents ("FAD_CONTROL/EVENTS", "I:4", ""), 846 fDimEventData ("FAD_CONTROL/EVENT_DATA", "S:1;I:1;S:1;I:1;I:2;I:40;S:1440;S:160;S", ""), 847 fDimFwVersion ("FAD_CONTROL/FIRMWARE_VERSION", "F:42", ""), 848 fDimRunNumber ("FAD_CONTROL/RUN_NUMBER", "I:42", ""), 849 fDimStatus ("FAD_CONTROL/STATUS", "S:42", ""), 850 fDimDNA ("FAD_CONTROL/DNA", "X:40", ""), 851 fDimTemperature ("FAD_CONTROL/TEMPERATURE", "F:82", ""), 852 fDimPrescaler ("FAD_CONTROL/PRESCALER", "S:42", ""), 853 fDimRefClock ("FAD_CONTROL/REFERENCE_CLOCK", "I:42", ""), 854 fDimRoi ("FAD_CONTROL/REGION_OF_INTEREST", "S:2", ""), 855 fDimStatistics1 ("FAD_CONTROL/STATISTICS1", "I:3;I:5;X:4;I:3;I:3;I:40;I:1;I:2;C:40;I:40;I:40;X:40", ""), 856 fDimStatistics2 ("FAD_CONTROL/STATISTICS2", "I:1;I:280;X:40;I:40;I:4;I:4;I:2;I:2;I:3;C:40", ""), 855 857 fDebugStream(false), fDebugRead(false), fDebugLog(false) 856 858 { … … 1355 1357 } 1356 1358 1359 array<uint16_t,2> fVecRoi; 1360 1357 1361 int eventCheck(PEVNT_HEADER *fadhd, EVENT *event) 1358 1362 { … … 1368 1372 geloescht (nicht an die write-routine weitergeleitet [mind. im Prinzip] 1369 1373 */ 1374 1375 const array<uint16_t,2> roi = {{ event->Roi, event->RoiTM }}; 1376 1377 if (roi!=fVecRoi) 1378 Update(fDimRoi, roi); 1370 1379 1371 1380 const FAD::EventHeader *beg = reinterpret_cast<FAD::EventHeader*>(fadhd); … … 1385 1394 // * fTriggerGeneratorPrescaler 1386 1395 // * fDac 1387 // inconsistent 1396 // inconsistent 1397 1398 // FIXME: Produce some output, only once per run or 1399 // minute 1400 1401 /* 1388 1402 if (*ptr != *beg) 1389 1403 return -1; … … 1394 1408 return -1; 1395 1409 if (ptr->fVersion != beg->fVersion) 1396 return -1; 1410 return -1; 1411 */ 1397 1412 } 1398 1413 … … 1564 1579 array<FAD::EventHeader, 40> fVecHeader; 1565 1580 1566 template<typename T >1567 array<T, 42> Compare(const FAD::EventHeader *h, const T *t)1568 { 1569 const int offset = reinterpret_cast<const char *>(t) - reinterpret_cast<const char *>( h);1581 template<typename T, class S> 1582 array<T, 42> Compare(const S *vec, const T *t) 1583 { 1584 const int offset = reinterpret_cast<const char *>(t) - reinterpret_cast<const char *>(vec); 1570 1585 1571 1586 const T *min = NULL; … … 1573 1588 const T *max = NULL; 1574 1589 1575 array<T, 42> vec;1590 array<T, 42> arr; 1576 1591 1577 1592 bool rc = true; 1578 1593 for (int i=0; i<40; i++) 1579 1594 { 1580 const char *base = reinterpret_cast<const char*>( &fVecHeader[i]);1595 const char *base = reinterpret_cast<const char*>(vec+i); 1581 1596 const T *ref = reinterpret_cast<const T*>(base+offset); 1582 1597 1583 vec[i] = *ref;1598 arr[i] = *ref; 1584 1599 1585 1600 if (gi_NumConnect[i]!=7) 1586 1601 { 1587 vec[i] = 0;1602 arr[i] = 0; 1588 1603 continue; 1589 1604 } … … 1606 1621 } 1607 1622 1608 vec[40] = val ? *min : 1;1609 vec[41] = val ? *max : 0;1610 1611 return vec;1623 arr[40] = val ? *min : 1; 1624 arr[41] = val ? *max : 0; 1625 1626 return arr; 1612 1627 } 1613 1628 … … 1692 1707 if (old.fVersion != h.fVersion || changed) 1693 1708 { 1694 const array<uint16_t,42> ver = Compare(& h, &h.fVersion);1709 const array<uint16_t,42> ver = Compare(&fVecHeader[0], &fVecHeader[0].fVersion); 1695 1710 1696 1711 array<float,42> data; … … 1706 1721 if (old.fRunNumber != h.fRunNumber || changed) 1707 1722 { 1708 const array<uint32_t,42> run = Compare(& h, &h.fRunNumber);1723 const array<uint32_t,42> run = Compare(&fVecHeader[0], &fVecHeader[0].fRunNumber); 1709 1724 fDimRunNumber.Update(run); 1710 1725 } … … 1712 1727 if (old.fTriggerGeneratorPrescaler != h.fTriggerGeneratorPrescaler || changed) 1713 1728 { 1714 const array<uint16_t,42> pre = Compare(& h, &h.fTriggerGeneratorPrescaler);1729 const array<uint16_t,42> pre = Compare(&fVecHeader[0], &fVecHeader[0].fTriggerGeneratorPrescaler); 1715 1730 fDimPrescaler.Update(pre); 1716 1731 } … … 1718 1733 if (old.fDNA != h.fDNA || changed) 1719 1734 { 1720 const array<uint64_t,42> dna = Compare(& h, &h.fDNA);1735 const array<uint64_t,42> dna = Compare(&fVecHeader[0], &fVecHeader[0].fDNA); 1721 1736 Update(fDimDNA, dna, 40); 1722 1737 } … … 1724 1739 if (old.fStatus != h.fStatus || changed) 1725 1740 { 1726 const array<uint16_t,42> sts = CompareBits(& h, &h.fStatus);1741 const array<uint16_t,42> sts = CompareBits(&fVecHeader[0], &fVecHeader[0].fStatus); 1727 1742 Update(fDimStatus, sts); 1728 1743 } … … 1739 1754 // --- RefClock 1740 1755 1741 const array<uint32_t,42> clk = Compare(& h, &h.fFreqRefClock);1756 const array<uint32_t,42> clk = Compare(&fVecHeader[0], &fVecHeader[0].fFreqRefClock); 1742 1757 Update(fDimRefClock, clk); 1743 1758 … … 1746 1761 const array<int16_t,42> tmp[4] = 1747 1762 { 1748 Compare(& h, &h.fTempDrs[0]), // 0-39:val, 40:min, 41:max1749 Compare(& h, &h.fTempDrs[1]), // 0-39:val, 40:min, 41:max1750 Compare(& h, &h.fTempDrs[2]), // 0-39:val, 40:min, 41:max1751 Compare(& h, &h.fTempDrs[3]) // 0-39:val, 40:min, 41:max1763 Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[0]), // 0-39:val, 40:min, 41:max 1764 Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[1]), // 0-39:val, 40:min, 41:max 1765 Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[2]), // 0-39:val, 40:min, 41:max 1766 Compare(&fVecHeader[0], &fVecHeader[0].fTempDrs[3]) // 0-39:val, 40:min, 41:max 1752 1767 }; 1753 1768
Note:
See TracChangeset
for help on using the changeset viewer.