コード例 #1
0
        private void FastWeightCalibrationHandler(object o, EventArgs eventArgs)
        {
            if (_adcList.Count < _calibrationParams.EntryCount)
            {
                _adcList.Add((double[])CurrAdcVals.Clone());
            }
            else
            {
                ParseDone -= FastWeightCalibrationHandler;
                for (int i = 0; i < 4; i++)
                {
                    var aver = _adcList.Average(val => val[i]);
                    double koef = _calibrationParams.Weight / aver;
                    WeightKoefs[i] = koef;   
                }

                if (CalibrationDone != null) CalibrationDone.Invoke(null, null);
                _adcList.Clear();
                _calibrationParams = null;
            }  
        }
コード例 #2
0
 public override void Calibrate(CalibrationParams calibParams, params object[] pObjects)
 {
     StopMeasurement();
     if (calibParams == null)
     {
         _zeroCorrection = false;
         _startupCalib = (bool)pObjects[0];
         _zeroCalibrationCount = (int) pObjects[1];
         ParseDone += ZeroCalibrationHandler;
     }
     else
     {
         if (!(bool) pObjects[0])
         {
             ParseDone += WeightCalibrationHandler;
             _calibrationParams = calibParams;
             _periodBuf = ExchangeConfig.Period;
             ExchangeConfig.Period = _calibrationParams.Period;
         }
         else
         {
             ParseDone += FastWeightCalibrationHandler;
             _calibrationParams = calibParams;
         }
     }
     StartMeasurement();
 }
コード例 #3
0
 private void WeightCalibrationHandler(object o, EventArgs eventArgs)
 {
     if (_adcList.Count < _calibrationParams.EntryCount)
     {
         _adcList.Add((double[]) CurrAdcVals.Clone());
     }
     else
     {
         ParseDone -= WeightCalibrationHandler;
         var aver=_adcList.Average(val => val[_calibrationParams.TenzNumber]);
         double koef = _calibrationParams.Weight/aver;
         WeightKoefs[_calibrationParams.TenzNumber] = koef;
         if (CalibrationDone != null) CalibrationDone.Invoke(null, null);
         _adcList.Clear();
         _calibrationParams = null;
         ExchangeConfig.Period = _periodBuf;
     }
 }
コード例 #4
0
ファイル: CDevice.cs プロジェクト: DrStein2013/Stability
 public virtual void Calibrate(CalibrationParams calibParams, params object[] pObjects)
 {
     throw new NotImplementedException();
 }