Changeset 10547


Ignore:
Timestamp:
May 3, 2011, 8:53:22 PM (8 years ago)
Author:
tbretz
Message:
Implemented a status LED for the FTUs
File:
1 edited

Legend:

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

    r10544 r10547  
    902902    FTM::DimStaticData fFtmStaticData;
    903903
     904    int fFtuStatus;
     905
     906
    904907    void SetFtuLed(int idx, int counter)
    905908    {
     
    908911
    909912        if (counter==0)
     913        {
    910914            fFtuLED[idx]->setIcon(QIcon(":/Resources/icons/red circle 1.png"));
    911 
     915            fStatusFTULed->setIcon(QIcon(":/Resources/icons/red circle 1.png"));
     916            fStatusFTULabel->setToolTip("At least one FTU didn't answer!");
     917            fStatusFTULabel->setText("ERROR");
     918            fFtuStatus = 0;
     919        }
    912920        if (counter==1)
     921        {
    913922            fFtuLED[idx]->setIcon(QIcon(":/Resources/icons/green circle 1.png"));
     923            if (fFtuStatus<0)
     924            {
     925                fStatusFTULed->setIcon(QIcon(":/Resources/icons/green circle 1.png"));
     926                fStatusFTULabel->setToolTip("Communication with FTU is smooth.");
     927                fStatusFTULabel->setText("Ok");
     928                fFtuStatus = 1;
     929            }
     930        }
    914931
    915932        if (counter>1)
     933        {
    916934            fFtuLED[idx]->setIcon(QIcon(":/Resources/icons/orange circle 1.png"));
     935            if (fFtuStatus!=0)
     936            {
     937                fStatusFTULed->setIcon(QIcon(":/Resources/icons/orange circle 1.png"));
     938                fStatusFTULabel->setText("Warning");
     939                fStatusFTULabel->setToolTip("At least one FTU didn't answer immediately");
     940                fFtuStatus = 2;
     941            }
     942        }
    917943
    918944    }
     
    964990        fEnableTimeMarker->setChecked(sdata.HasTimeMarker());
    965991
     992        bool active = false;
    966993        for (int i=0; i<40; i++)
    967994        {
     
    9731000            else
    9741001            {
     1002                active = true;
    9751003                if (fFtuDisabled[i])
    9761004                {
     
    9811009        }
    9821010
     1011        if (!active)
     1012            DisableStatusLedFtu();
     1013
    9831014#ifdef HAS_ROOT
    9841015        Camera *cam = (Camera*)fRatesCanv->GetCanvas()->FindObject("Camera");
     
    10141045        fFtmBoardId->setText(str1.str().c_str());
    10151046        fFtmFirmwareId->setText(str2.str().c_str());
     1047    }
     1048
     1049    void DisableStatusLedFtu()
     1050    {
     1051        fFtuStatus = -1;
     1052        fStatusFTULed->setIcon(QIcon(":/Resources/icons/gray circle 1.png"));
     1053        fStatusFTULabel->setText("All disabled");
     1054        fStatusFTULabel->setToolTip("All FTUs are disabled");
    10161055    }
    10171056
     
    10541093        fFtuAnswersCrate3->setValue(sdata.fNumBoardsCrate[3]);
    10551094
    1056         // Same: When error received: Needs decoding
     1095        DisableStatusLedFtu();
     1096
    10571097        for (int i=0; i<40; i++)
    10581098        {
    10591099            const bool active = sdata.IsActive(i);
    1060 
    1061             cout << i << ": " << active << " " << (int)sdata.fPing[i] << endl;
    10621100
    10631101            SetFtuLed(i, active ? sdata.fPing[i] : -1);
     
    11081146            fFtuWidget->setEnabled(enable);
    11091147            fRatesWidget->setEnabled(enable);
    1110         }
     1148
     1149            if (!enable)
     1150            {
     1151                fFtuStatus = -1;
     1152                fStatusFTULed->setIcon(QIcon(":/Resources/icons/gray circle 1.png"));
     1153                fStatusFTULabel->setText("Offline");
     1154                fStatusFTULabel->setToolTip("FTM is not online.");
     1155            }
     1156    }
    11111157
    11121158        if (server=="FAD_CONTROL")
     
    15481594        fDimFtmStaticData    ("FTM_CONTROL/STATIC_DATA",     (void*)NULL, 0, this),
    15491595        fDimFtmDynamicData   ("FTM_CONTROL/DYNAMIC_DATA",    (void*)NULL, 0, this)
    1550 
    1551 
    1552     {
     1596    {
     1597        fTriggerWidget->setEnabled(false);
     1598        fFtuWidget->setEnabled(false);
     1599        fRatesWidget->setEnabled(false);
     1600        fLoggerWidget->setEnabled(false);
     1601
     1602        fChatSend->setEnabled(false);
     1603        fChatMessage->setEnabled(false);
     1604
    15531605        DimClient::sendCommand("CHAT/MSG", "GUI online.");
    15541606        // + MessageDimRX
     
    15651617        fDim.push_back(&fDimLoggerNumSubs);
    15661618        fDim.push_back(&fDimDNS);
    1567 
    1568         fTriggerWidget->setEnabled(false);
    1569         fFtuWidget->setEnabled(false);
    1570         fRatesWidget->setEnabled(false);
    1571         fLoggerWidget->setEnabled(false);
    15721619
    15731620        // --------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.