public RelayTestPointUpDown(RelayTestPointSettings settings, PressureUnitsEnum pressureUnits, double marginCoefficient = 1) { PercentRange = (int)settings.TestPoint * 100; RangeMin_Pa = settings.RangeMin; RangeMax_Pa = settings.RangeMax; ClassPrecision = settings.ClassPrecision; Units = pressureUnits; MarginCoefficient = marginCoefficient; SP = new Pressure(settings.DeviceSP, pressureUnits); Hysteresis = new Pressure(settings.Hysteresis, pressureUnits); }
public RelayTestPointUpDown[] GetTestPoints(RelayTestPointSettings settings, bool absolutePressure, PressureUnitsEnum pressureUnits, double marginCoefficient, CancellationToken cancellationToken) { SendsettingsToDevice(settings.DeviceSP, settings.Hysteresis); results = new RelayTestPointUpDown[stateRelayReader.StateRelay.Length]; for (int i = 0; i < results.Length; i++) { results[i] = new RelayTestPointUpDown(settings, pressureUnits, marginCoefficient); } GetUpperPointsAsync(settings, absolutePressure, pressureUnits, marginCoefficient, cancellationToken); GetDownPointsAsync(settings, absolutePressure, pressureUnits, marginCoefficient, cancellationToken); return(results); }
private async void GetDownPointsAsync(RelayTestPointSettings setpoints, bool absolutePressure, PressureUnitsEnum pressureUnits, double marginCoefficient, CancellationToken cancellationToken) { // Устанавливаем верхнюю уставку (потом давление будет плавно изменяться от верхней уставки к нижней) SetPressure(setpoints.PsysUpwardSP, setpoints.RangeMin, setpoints.RangeMax, absolutePressure, cancellationToken); CheckStateRelays(true, cancellationToken); // Записываем уставку с ограничением изменения по скорости StartSmothSetPressure(setpoints.PsysDownwardSP, setpoints.RangeMin, setpoints.RangeMax, absolutePressure, setpoints.PsysRate, cancellationToken); double?[] pressures = await GetSwitchPressureValuesAsync(true, false, absolutePressure, setpoints.PressureLimitUpward, cancellationToken); for (int i = 0; i < pressures.Length; i++) { results[i].AddPointDown(pressures[i]); } }
private void AddRelayTestPoint(double point, CancellationToken cancellationToken, IProgress <int> progress) { var settings = new RelayTestPointSettings(point, rangeMin_Pa, rangeMax_Pa, classPrecision); RelayTestPointUpDown[] relaysTestPoint = relayTestTools.GetTestPoints(settings, absoluteType, pressureUnits, marginCoefficient, cancellationToken); if (RelayTestResults == null) { RelayTestResults = new RelayTestResults[relaysTestPoint.Length]; } for (int i = 0; i < relaysTestPoint.Length; i++) { if (RelayTestResults[i] == null) { RelayTestResults[i] = new RelayTestResults(); } RelayTestResults[i].Add(relaysTestPoint[i]); } UpdResultsEvent?.Invoke(this, new EventArgs()); progressValue += deltaProgress; progress.Report((int)progressValue); waitContinue?.Invoke(cancellationToken); }