Changeset 13455


Ignore:
Timestamp:
04/26/12 10:54:49 (13 years ago)
Author:
tbretz
Message:
Make sure that the same time is distributed with the voltage and current service; send a flag which tells if the nominal and current values are identical as QoS
File:
1 edited

Legend:

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

    r13340 r13455  
    6969    vector<int16_t>  fCurrent;     // Current in ADC units (12bit = 5mA)
    7070
    71     virtual void UpdateA()
    72     {
    73     }
    74 
    75     virtual void UpdateV()
     71    virtual void UpdateAV()
     72    {
     73    }
     74
     75    virtual void UpdateV(const Time = Time())
    7676    {
    7777    }
     
    373373        // Check if new values have been received
    374374        if (cmd==kCmdRead || cmd==kCmdChannelSet || cmd==kExpertChannelSet)
    375         {
    376             UpdateV();
    377             UpdateA();
    378         }
     375            UpdateAV();
    379376
    380377        // ----- Take action depending on what is going on -----
     
    14921489    DimDescribedService fDimGapd;
    14931490
    1494     void UpdateA()
    1495     {
     1491    void UpdateAV()
     1492    {
     1493        const Time now;
     1494        fDimCurrent.setTime(now);
    14961495        fDimCurrent.Update(fCurrent);
    1497     }
    1498 
    1499     void UpdateV()
    1500     {
     1496
     1497        UpdateV(now);
     1498    }
     1499
     1500    void UpdateV(const Time now=Time())
     1501    {
     1502        const bool rc = !memcmp(fDacActual.data(), fDacTarget.data(), kNumChannels*2);
     1503
    15011504        vector<uint16_t> val(2*kNumChannels);
    15021505        memcpy(val.data(),              fDacActual.data(), kNumChannels*2);
    15031506        memcpy(val.data()+kNumChannels, fDacTarget.data(), kNumChannels*2);
     1507        fDimDac.setTime(now);
     1508        fDimDac.setQuality(rc);
    15041509        fDimDac.Update(val);
    15051510
     
    15071512        for (float ch=0; ch<kNumChannels; ch++)
    15081513            volt[ch] = fDacActual[ch]*90./4096 - fChannelCalibration[ch];
     1514        fDimVolt.setTime(now);
     1515        fDimVolt.setQuality(rc);
    15091516        fDimVolt.Update(volt);
    15101517    }
Note: See TracChangeset for help on using the changeset viewer.