Ignore:
Timestamp:
06/29/11 15:13:47 (13 years ago)
Author:
tbretz
Message:
Many little and more changed to teh FAD and event builder controls; added DRS temperature transmission
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/FactGui.h

    r11200 r11207  
    385385    DimStampedInfo fDimFadRuns;
    386386    DimStampedInfo fDimFadEvents;
    387     DimStampedInfo fDimFadCurrentEvent;
    388387    DimStampedInfo fDimFadEventData;
    389388    DimStampedInfo fDimFadConnections;
     
    391390    DimStampedInfo fDimFadRunNumber;
    392391    DimStampedInfo fDimFadDNA;
     392    DimStampedInfo fDimFadTemperature;
    393393    DimStampedInfo fDimFadStatus;
    394394    DimStampedInfo fDimFadStatistics;
     
    932932    void handleFadRuns(const DimData &d)
    933933    {
    934         if (!CheckSize(d, 12))
     934        if (!CheckSize(d, 20))
    935935            return;
    936936
    937937        const uint32_t *ptr = d.ptr<uint32_t>();
    938938
     939        fEvtBldOpenFiles->setValue(ptr[0]);
     940        fEvtBldOpenStreams->setValue(ptr[0]);
    939941        fEvtBldRunNumberMin->setValue(ptr[1]);
    940942        fEvtBldRunNumberMax->setValue(ptr[2]);
    941         fEvtBldOpenFiles->setValue(ptr[0]);
     943        fEvtBldLastOpened->setValue(ptr[3]);
     944        fEvtBldLastClosed->setValue(ptr[4]);
    942945    }
    943946
    944947    void handleFadEvents(const DimData &d)
    945948    {
    946         if (!CheckSize(d, 8))
     949        if (!CheckSize(d, 16))
    947950            return;
    948951
     
    951954        fEvtsSuccessCurRun->setValue(ptr[0]);
    952955        fEvtsSuccessTotal->setValue(ptr[1]);
    953     }
    954 
    955     void handleFadCurrentEvent(const DimData &d)
    956     {
    957         if (!CheckSize(d, 4))
    958             return;
    959 
    960         fEvtsEventId->setValue(d.get<uint32_t>());
     956        fEvtBldEventId->setValue(ptr[2]);
     957        fEvtBldTriggerId->setValue(ptr[3]);
     958    }
     959
     960    void handleFadTemperature(const DimData &d)
     961    {
     962        if (d.size()==0)
     963        {
     964            fFadTempMin->setEnabled(false);
     965            fFadTempMax->setEnabled(false);
     966            return;
     967        }
     968
     969        if (!CheckSize(d, 82*sizeof(float)))
     970            return;
     971
     972        const float *ptr = d.ptr<float>();
     973
     974        fFadTempMin->setEnabled(true);
     975        fFadTempMax->setEnabled(true);
     976
     977        fFadTempMin->setValue(ptr[0]);
     978        fFadTempMax->setValue(ptr[40]);
     979
     980        handleFadToolTip(d.time, fFadTempMin, ptr+1);
     981        handleFadToolTip(d.time, fFadTempMax, ptr+41);
    961982    }
    962983
     
    10391060    }
    10401061
    1041     vector<uint8_t> fFadConnections;
     1062//    vector<uint8_t> fFadConnections;
    10421063
    10431064    void handleFadConnections(const DimData &d)
     
    10701091        }
    10711092
    1072         SetLedColor(fFadLEDEventBuilder, ptr[40]==0?kLedRed:kLedGreen, d.time);
    1073 
    1074         fFadConnections.assign(ptr, ptr+40);
     1093
     1094        const bool runs = ptr[40]!=0;
     1095
     1096        fStatusEventBuilderLabel->setText(runs?"Running":"Not running");
     1097        fStatusEventBuilderLabel->setToolTip(runs?"Event builder thread running.":"Event builder thread stopped.");
     1098        fEvtBldWidget->setEnabled(runs);
     1099
     1100        SetLedColor(fStatusEventBuilderLed, runs?kLedGreen:kLedRed, d.time);
     1101
     1102//        fFadConnections.assign(ptr, ptr+40);
     1103    }
     1104
     1105    template<typename T>
     1106        void handleFadToolTip(const Time &time, QWidget *w, T *ptr)
     1107    {
     1108        ostringstream tip;
     1109        tip << "<table border='1'><tr><th colspan='11'>" << time.GetAsStr() << " (UTC)</th></tr><tr><th></th>";
     1110        for (int b=0; b<10; b++)
     1111            tip << "<th>" << b << "</th>";
     1112        tip << "</tr>";
     1113
     1114        for (int c=0; c<4; c++)
     1115        {
     1116            tip << "<tr><th>" << c << "</th>";
     1117            for (int b=0; b<10; b++)
     1118                tip << "<td>" << ptr[c*10+b] << "</td>";
     1119            tip << "</tr>";
     1120        }
     1121        tip << "</table>";
     1122
     1123        w->setToolTip(tip.str().c_str());
    10751124    }
    10761125
     
    10981147            wmax->setValue(max);
    10991148
    1100         ostringstream tip;
    1101         tip << "<table border='1'><tr><th colspan='11'>" << Time().GetAsStr() << " (UTC)</th></tr><tr><th></th>";
    1102         for (int b=0; b<10; b++)
    1103             tip << "<th>" << b << "</th>";
    1104         tip << "</tr>";
    1105 
    1106         for (int c=0; c<4; c++)
    1107         {
    1108             tip << "<tr><th>" << c << "</th>";
    1109             for (int b=0; b<10; b++)
    1110                 tip << "<td>" << ptr[c*10+b] << "</td>";
    1111             tip << "</tr>";
    1112         }
    1113         tip << "</table>";
    1114 
    1115         led->setToolTip(tip.str().c_str());
     1149        handleFadToolTip(d.time, led, ptr);
    11161150    }
    11171151
     
    11521186    }
    11531187
    1154     void SetFadLed(QPushButton *led, const DimData &d, uint16_t bitmask)
    1155     {
     1188    void SetFadLed(QPushButton *led, const DimData &d, uint16_t bitmask, bool invert=false)
     1189    {
     1190        if (d.size()==0)
     1191        {
     1192            SetLedColor(led, kLedGray, d.time);
     1193            return;
     1194        }
     1195
    11561196        const bool      quality = d.ptr<uint16_t>()[0]&bitmask;
    11571197        const bool      value   = d.ptr<uint16_t>()[1]&bitmask;
    11581198        const uint16_t *ptr     = d.ptr<uint16_t>()+2;
    11591199
    1160         SetLedColor(led, quality?kLedOrange:(value?kLedGreen:kLedRed), d.time);
     1200        SetLedColor(led, quality?kLedOrange:(value^invert?kLedGreen:kLedRed), d.time);
    11611201
    11621202        ostringstream tip;
     
    11841224    void handleFadStatus(const DimData &d)
    11851225    {
    1186         if (!CheckSize(d, 42*sizeof(uint16_t)))
     1226        if (d.size()!=0 && !CheckSize(d, 42*sizeof(uint16_t)))
    11871227            return;
    11881228
     
    11921232        SetFadLed(fFadLedDcmReady,       d, FAD::EventHeader::kDcmReady);
    11931233        SetFadLed(fFadLedSpiSclk,        d, FAD::EventHeader::kSpiSclk);
    1194         SetFadLed(fFadLedRefClockTooLow, d, FAD::EventHeader::kRefClkTooLow);
     1234        SetFadLed(fFadLedRefClockTooLow, d, FAD::EventHeader::kRefClkTooLow, true);
    11951235        SetFadLed(fFadLedBusy,           d, FAD::EventHeader::kBusy);
    11961236        SetFadLed(fFadLedTriggerLine,    d, FAD::EventHeader::kTriggerLine);
     
    12151255        fFadEvtDel->setValue(stat[3]);
    12161256        fFadEvtTot->setValue(stat[4]);
    1217         fFadEvtRead->setValue(stat[6]/1024.);
     1257        fFadEthernetRateTot->setValue(stat[6]/1024.);
     1258        fFadEthernetRateAvg->setValue(stat[6]/1024./stat[7]);
    12181259        fFadEvtConn->setValue(stat[7]);
    12191260    }
     
    17351776            bool enable = false;
    17361777
    1737             if (s.index<FAD::kDisconnected) // No Dim connection
     1778            if (s.index<FAD::kOffline) // No Dim connection
     1779            {
    17381780                SetLedColor(fStatusFADLed, kLedGray, time);
     1781
     1782                fStatusEventBuilderLabel->setText("Offline");
     1783                fStatusEventBuilderLabel->setToolTip("No connection to fadctrl.");
     1784                fEvtBldWidget->setEnabled(false);
     1785
     1786                SetLedColor(fStatusEventBuilderLed, kLedGray, time);
     1787            }
    17391788            if (s.index==FAD::kOffline) // Dim connection / FTM disconnected
    17401789                SetLedColor(fStatusFADLed, kLedRed, time);
     
    20132062            return PostInfoHandler(&FactGui::handleFadDNA);
    20142063
     2064        if (getInfo()==&fDimFadTemperature)
     2065            return PostInfoHandler(&FactGui::handleFadTemperature);
     2066
    20152067        if (getInfo()==&fDimFadStatus)
    20162068            return PostInfoHandler(&FactGui::handleFadStatus);
     
    20242076        if (getInfo()==&fDimFadRuns)
    20252077            return PostInfoHandler(&FactGui::handleFadRuns);
    2026 
    2027         if (getInfo()==&fDimFadCurrentEvent)
    2028             return PostInfoHandler(&FactGui::handleFadCurrentEvent);
    20292078
    20302079        if (getInfo()==&fDimFadEventData)
     
    24372486        fInChoosePatch(false),
    24382487        fDimDNS("DIS_DNS/VERSION_NUMBER", 1, int(0), this),
    2439 
     2488        //-
    24402489        fDimLoggerStats        ("DATA_LOGGER/STATS",            (void*)NULL, 0, this),
    24412490        fDimLoggerFilenameNight("DATA_LOGGER/FILENAME_NIGHTLY", (void*)NULL, 0, this),
    24422491        fDimLoggerFilenameRun  ("DATA_LOGGER/FILENAME_RUN",     (void*)NULL, 0, this),
    24432492        fDimLoggerNumSubs      ("DATA_LOGGER/NUM_SUBS",         (void*)NULL, 0, this),
    2444 
     2493        //-
    24452494        fDimFtmPassport        ("FTM_CONTROL/PASSPORT",         (void*)NULL, 0, this),
    24462495        fDimFtmTriggerCounter  ("FTM_CONTROL/TRIGGER_COUNTER",  (void*)NULL, 0, this),
     
    24502499        fDimFtmDynamicData     ("FTM_CONTROL/DYNAMIC_DATA",     (void*)NULL, 0, this),
    24512500        fDimFtmCounter         ("FTM_CONTROL/COUNTER",          (void*)NULL, 0, this),
     2501        //-
    24522502        fDimFadRuns            ("FAD_CONTROL/RUNS",             (void*)NULL, 0, this),
    24532503        fDimFadEvents          ("FAD_CONTROL/EVENTS",           (void*)NULL, 0, this),
    2454         fDimFadCurrentEvent    ("FAD_CONTROL/CURRENT_EVENT",    (void*)NULL, 0, this),
    24552504        fDimFadEventData       ("FAD_CONTROL/EVENT_DATA",       (void*)NULL, 0, this),
    24562505        fDimFadConnections     ("FAD_CONTROL/CONNECTIONS",      (void*)NULL, 0, this),
     
    24582507        fDimFadRunNumber       ("FAD_CONTROL/RUN_NUMBER",       (void*)NULL, 0, this),
    24592508        fDimFadDNA             ("FAD_CONTROL/DNA",              (void*)NULL, 0, this),
     2509        fDimFadTemperature     ("FAD_CONTROL/TEMPERATURE",      (void*)NULL, 0, this),
    24602510        fDimFadStatus          ("FAD_CONTROL/STATUS",           (void*)NULL, 0, this),
    24612511        fDimFadStatistics      ("FAD_CONTROL/STATISTICS",       (void*)NULL, 0, this)
Note: See TracChangeset for help on using the changeset viewer.