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; } }
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(); }
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; } }
public virtual void Calibrate(CalibrationParams calibParams, params object[] pObjects) { throw new NotImplementedException(); }