Changeset 10953 for trunk/FACT++/src


Ignore:
Timestamp:
06/09/11 16:23:48 (14 years ago)
Author:
tbretz
Message:
Added the possibility to disable all patches/pixels except one.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/ftmctrl.cc

    r10880 r10953  
    898898    }
    899899
    900     bool EnablePixel(uint16_t idx, bool enable)
     900    bool EnablePixel(int16_t idx, bool enable)
     901    {
     902        if (idx<-1 || idx>FTM::StaticData::kMaxPixelIdx)
     903            return false;
     904
     905        if (idx==-1)
     906            for (int i=0; i<FTM::StaticData::kMaxPixelIdx; i++)
     907                fStaticData.EnablePixel(idx, enable);
     908        else
     909            fStaticData.EnablePixel(idx, enable);
     910
     911        CmdSendStatDat();
     912
     913        return true;
     914    }
     915
     916    bool DisableAllPixelsExcept(uint16_t idx)
    901917    {
    902918        if (idx>FTM::StaticData::kMaxPixelIdx)
    903919            return false;
    904920
    905         cout << "ENABLE " << idx << " " << enable << endl;
    906         fStaticData.EnablePixel(idx, enable);
     921        for (int i=0; i<FTM::StaticData::kMaxPixelIdx; i++)
     922            fStaticData.EnablePixel(i, i==idx);
    907923
    908924        CmdSendStatDat();
     
    911927    }
    912928
     929    bool DisableAllPatchesExcept(uint16_t idx)
     930    {
     931        if (idx>159)
     932            return false;
     933
     934        for (int i=0; i<FTM::StaticData::kMaxPixelIdx; i++)
     935            fStaticData.EnablePixel(i, i/9==idx);
     936
     937        CmdSendStatDat();
     938
     939        return true;
     940    }
     941
    913942    bool TogglePixel(uint16_t idx)
    914943    {
    915944        if (idx>FTM::StaticData::kMaxPixelIdx)
    916945            return false;
    917 
    918         cout << "TOGGLE " << idx << endl;
    919946
    920947        fStaticData.EnablePixel(idx, !fStaticData.Enabled(idx));
     
    13791406            return T::kSM_FatalError;
    13801407
    1381         fFTM.EnablePixel(evt.GetUShort(), b);
     1408        if (!fFTM.EnablePixel(evt.GetUShort(), b))
     1409            T::Warn("EnablePixel -  Value out of range.");
     1410
     1411        return T::GetCurrentState();
     1412    }
     1413
     1414    int DisableAllPixelsExcept(const EventImp &evt)
     1415    {
     1416        if (!CheckEventSize(evt.GetSize(), "DisableAllPixelsExcept", 2))
     1417            return T::kSM_FatalError;
     1418
     1419        if (!fFTM.DisableAllPixelsExcept(evt.GetUShort()))
     1420            T::Warn("DisableAllPixelsExcept -  Value out of range.");
     1421
     1422        return T::GetCurrentState();
     1423    }
     1424
     1425    int DisableAllPatchesExcept(const EventImp &evt)
     1426    {
     1427        if (!CheckEventSize(evt.GetSize(), "DisableAllPatchesExcept", 2))
     1428            return T::kSM_FatalError;
     1429
     1430        if (!fFTM.DisableAllPatchesExcept(evt.GetUShort()))
     1431            T::Warn("DisableAllPatchesExcept -  Value out of range.");
    13821432
    13831433        return T::GetCurrentState();
     
    13891439            return T::kSM_FatalError;
    13901440
    1391         fFTM.TogglePixel(evt.GetUShort());
     1441        if (!fFTM.TogglePixel(evt.GetUShort()))
     1442            T::Warn("TogglePixel -  Value out of range.");
    13921443
    13931444        return T::GetCurrentState();
     
    15491600        AddEvent("DISABLE_PIXEL", "S:1", kStateIdle)
    15501601            (boost::bind(&StateMachineFTM::EnablePixel, this, _1, false))
    1551             ("");
     1602            ("(-1 or all)");
    15521603
    15531604        AddEvent("ENABLE_PIXEL", "S:1", kStateIdle)
    15541605            (boost::bind(&StateMachineFTM::EnablePixel, this, _1, true))
     1606            ("(-1 or all)");
     1607
     1608        AddEvent("DISABLE_ALL_PIXELS_EXCEPT", "S:1", kStateIdle)
     1609            (boost::bind(&StateMachineFTM::DisableAllPixelsExcept, this, _1))
     1610            ("");
     1611
     1612        AddEvent("DISABLE_ALL_PATCHES_EXCEPT", "S:1", kStateIdle)
     1613            (boost::bind(&StateMachineFTM::DisableAllPatchesExcept, this, _1))
    15551614            ("");
    15561615
Note: See TracChangeset for help on using the changeset viewer.