Changeset 17520


Ignore:
Timestamp:
01/20/14 16:14:00 (11 years ago)
Author:
tbretz
Message:
Check humidity only when the lid is open, not when a run is started, this gives a warning otherwise at the start of each run. Fixed some minor display issues like the number of valid digits.
File:
1 edited

Legend:

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

    r17397 r17520  
    16321632
    16331633            max[idx] += v/4;
    1634         } */
    1635 
    1636         vector<float> max(1440);
     1634            } */
     1635
     1636        vector<float> val(1440);
    16371637        for (int i=0; i<1440; i++)
    1638             max[i] = dat[i%9==8 ? i-2 : i]/1000;
     1638            val[i] = dat[i%9==8 ? i-2 : i]/1000;
     1639
     1640        vector<float> sorted(val);
     1641        nth_element(sorted.begin(), sorted.begin()+3, sorted.end(),
     1642                    std::greater<float>());
    16391643
    16401644        const uint32_t trig = d.GetQoS() & FAD::EventHeader::kLPext;
     
    16451649        if (trig&FAD::EventHeader::kLPext)
    16461650            scale = 1;
    1647         if (trig==0 || (trig&FAD::EventHeader::kPedestal))
     1651        if (trig&FAD::EventHeader::kPedestal)
    16481652            scale = 0.25;
     1653        if (trig==0)
     1654            scale = max(0.25f, sorted[3]);
    16491655
    16501656        // assume it is drs-gain
     
    16521658        //    min = 0.75;
    16531659
    1654         WriteCam(d, "cam-fadcontrol-eventdata", max, scale, min);
     1660        WriteCam(d, "cam-fadcontrol-eventdata", val, scale, min);
    16551661
    16561662        return GetCurrentState();
     
    25112517                           "Average camera humidity exceed 60%");
    25122518
    2513         newerr |= SetError(!fMagicWeatherHist[kHum].empty() && fMagicWeatherHist[kHum].back()>98 && data_taking,
    2514                            "Outside humidity exceeds 98% during data-taking");
     2519        newerr |= SetError(!fMagicWeatherHist[kHum].empty() && fMagicWeatherHist[kHum].back()>98 && fDimLidControl.state()==Lid::State::kOpen,
     2520                           "Outside humidity exceeds 98% while lid is open");
    25152521        newerr |= SetError(!fMagicWeatherHist[kGusts].empty() && fMagicWeatherHist[kGusts].back()>50 && (fDimDriveControl.state()==Drive::State::kTracking||fDimDriveControl.state()==Drive::State::kOnTrack),
    25162522                           "Wind gusts exceed 50km/h during tracking");
     
    28442850            }
    28452851
    2846             if (fDimBiasControl.state()==BIAS::State::kVoltageOn)
    2847                 out << " (" << fFtmPatchThresholdMed << ')';
     2852            if (bias_on)
     2853                out << " (" << setprecision(4) << fFtmPatchThresholdMed << ')';
    28482854            out << '\n';
    28492855        }
     
    28592865
    28602866            string col = fBiasControlVoltageMed>3?HTML::kGreen:HTML::kWhite;
    2861             if (!fDimBiasControl.state()==BIAS::State::kVoltageOn)
     2867            if (bias_on)
    28622868            {
    28632869                if (fBiasControlCurrentMed>70 || fBiasControlCurrentMax>90)
     
    28892895                out << col << '\t';
    28902896                out << setprecision(fBiasControlCurrentMed<100?2:3);
    2891                 out << (bias_off ? 0 : fBiasControlCurrentMed) << '\t';
     2897                out << (bias_off ? 0 : (fBiasControlCurrentMed<10?fBiasControlCurrentMed:floor(fBiasControlCurrentMed))) << '\t';
    28922898                if (bias_oc)
    28932899                    out << "(OC) ";
     
    28972903                    {
    28982904                        out << setprecision(fBiasControlCurrentMax<100?2:3);
    2899                         out << (bias_off ? 0 : fBiasControlCurrentMax);
     2905                        out << (bias_off ? 0 : (fBiasControlCurrentMax<10?fBiasControlCurrentMax:floor(fBiasControlCurrentMax)));
    29002906                    }
    29012907                    else
     
    29032909                }
    29042910                out << '\t';
    2905                 out << setprecision(3);
    29062911            }
    29072912            if (cal && fDimFeedback.state()!=Feedback::State::kCalibrating)
    2908                 out << setprecision(2) << fBiasControlPowerTot << " W" << setprecision(3);
     2913                out << setprecision(2) << fBiasControlPowerTot << " W";
    29092914            else
    2910                 out << (bias_off ? 0 : fBiasControlVoltageMed) << " V";
     2915                out << setprecision(3) << (bias_off ? 0 : fBiasControlVoltageMed) << " V";
    29112916            out << '\n';
    29122917        }
Note: See TracChangeset for help on using the changeset viewer.