|
|
|
|
@@ -4,491 +4,490 @@ using HMIToolkit;
|
|
|
|
|
using TwinCAT.TypeSystem;
|
|
|
|
|
using Heisig.HMI.AdsManager;
|
|
|
|
|
|
|
|
|
|
namespace InfineonHMI
|
|
|
|
|
namespace InfineonHMI;
|
|
|
|
|
|
|
|
|
|
public sealed partial class UnitDetailsControlVM : ObservableObject, IDisposable
|
|
|
|
|
{
|
|
|
|
|
public sealed partial class UnitDetailsControlVM : ObservableObject, IDisposable
|
|
|
|
|
{
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private float rVoltage;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private float rVoltage;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private E_COMPONENT_STATUS status;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private E_COMPONENT_STATUS status;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressureNegolytSegmentInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressureNegolytSegmentInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressureNegolytTankInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressureNegolytTankInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM temperatureNegolytTankInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM temperatureNegolytTankInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressurePosolytSegmentInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressurePosolytSegmentInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressurePosolytTankInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM pressurePosolytTankInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM temperaturePosolytTankInVM;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private AnalogValueVM temperaturePosolytTankInVM;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canOpenBothValves;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canOpenBothValves;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canCloseBothValves;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canCloseBothValves;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackOpenValves;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackOpenValves;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackCloseValves;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackCloseValves;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canStartBothPumps;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canStartBothPumps;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canStopBothPumps;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private bool canStopBothPumps;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackStartPumps;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackStartPumps;
|
|
|
|
|
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackStopPumps;
|
|
|
|
|
[ObservableProperty]
|
|
|
|
|
private short feedbackStopPumps;
|
|
|
|
|
|
|
|
|
|
private float _posolytPumpOnSpeed;
|
|
|
|
|
private float _negolytPumpOnSpeed;
|
|
|
|
|
private float _posolytPumpOnSpeed;
|
|
|
|
|
private float _negolytPumpOnSpeed;
|
|
|
|
|
|
|
|
|
|
private float valveWindowHorizontalPosition;
|
|
|
|
|
private float valveWindowHorizontalPosition;
|
|
|
|
|
|
|
|
|
|
private readonly BinaryValveControlVM _valveNegolytVM;
|
|
|
|
|
private readonly BinaryValveControlVM _valvePosolytVM;
|
|
|
|
|
private readonly AnalogMotorControlVM _pumpNegolytVM;
|
|
|
|
|
private readonly AnalogMotorControlVM _pumpPosolytVM;
|
|
|
|
|
private readonly BinaryValveControlVM _valveNegolytVM;
|
|
|
|
|
private readonly BinaryValveControlVM _valvePosolytVM;
|
|
|
|
|
private readonly AnalogMotorControlVM _pumpNegolytVM;
|
|
|
|
|
private readonly AnalogMotorControlVM _pumpPosolytVM;
|
|
|
|
|
|
|
|
|
|
private BinaryValveWindow? _windowValveNegolyt;
|
|
|
|
|
private BinaryValveWindow? _windowValvePosolyt;
|
|
|
|
|
private BinaryValveWindow? _windowValveNegolyt;
|
|
|
|
|
private BinaryValveWindow? _windowValvePosolyt;
|
|
|
|
|
|
|
|
|
|
private AnalogMotorWindow? _windowPumpNegolyt;
|
|
|
|
|
private AnalogMotorWindow? _windowPumpPosolyt;
|
|
|
|
|
private AnalogMotorWindow? _windowPumpNegolyt;
|
|
|
|
|
private AnalogMotorWindow? _windowPumpPosolyt;
|
|
|
|
|
|
|
|
|
|
private readonly IAdsManager? _adsManager;
|
|
|
|
|
private readonly string _variableName;
|
|
|
|
|
private readonly IAdsManager? _adsManager;
|
|
|
|
|
private readonly string _variableName;
|
|
|
|
|
|
|
|
|
|
public UnitDetailsControlVM()
|
|
|
|
|
{
|
|
|
|
|
Status = E_COMPONENT_STATUS.OFF;
|
|
|
|
|
rVoltage = 0.0f;
|
|
|
|
|
_variableName = "";
|
|
|
|
|
public UnitDetailsControlVM()
|
|
|
|
|
{
|
|
|
|
|
Status = E_COMPONENT_STATUS.OFF;
|
|
|
|
|
rVoltage = 0.0f;
|
|
|
|
|
_variableName = "";
|
|
|
|
|
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM = new AnalogValueVM();
|
|
|
|
|
PressureNegolytTankInVM = new AnalogValueVM();
|
|
|
|
|
TemperatureNegolytTankInVM = new AnalogValueVM();
|
|
|
|
|
_valveNegolytVM = new BinaryValveControlVM();
|
|
|
|
|
_pumpNegolytVM = new AnalogMotorControlVM();
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM = new AnalogValueVM();
|
|
|
|
|
PressureNegolytTankInVM = new AnalogValueVM();
|
|
|
|
|
TemperatureNegolytTankInVM = new AnalogValueVM();
|
|
|
|
|
_valveNegolytVM = new BinaryValveControlVM();
|
|
|
|
|
_pumpNegolytVM = new AnalogMotorControlVM();
|
|
|
|
|
|
|
|
|
|
_windowValveNegolyt = null;
|
|
|
|
|
_windowValveNegolyt = null;
|
|
|
|
|
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM = new AnalogValueVM();
|
|
|
|
|
PressurePosolytTankInVM = new AnalogValueVM();
|
|
|
|
|
TemperaturePosolytTankInVM = new AnalogValueVM();
|
|
|
|
|
_valvePosolytVM = new BinaryValveControlVM();
|
|
|
|
|
_pumpPosolytVM = new AnalogMotorControlVM();
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM = new AnalogValueVM();
|
|
|
|
|
PressurePosolytTankInVM = new AnalogValueVM();
|
|
|
|
|
TemperaturePosolytTankInVM = new AnalogValueVM();
|
|
|
|
|
_valvePosolytVM = new BinaryValveControlVM();
|
|
|
|
|
_pumpPosolytVM = new AnalogMotorControlVM();
|
|
|
|
|
|
|
|
|
|
_windowValvePosolyt = null;
|
|
|
|
|
_windowValvePosolyt = null;
|
|
|
|
|
|
|
|
|
|
valveWindowHorizontalPosition = 10;
|
|
|
|
|
valveWindowHorizontalPosition = 10;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public UnitDetailsControlVM(IAdsManager adsManager, string variableName)
|
|
|
|
|
{
|
|
|
|
|
_adsManager = adsManager;
|
|
|
|
|
_variableName = variableName;
|
|
|
|
|
public UnitDetailsControlVM(IAdsManager adsManager, string variableName)
|
|
|
|
|
{
|
|
|
|
|
_adsManager = adsManager;
|
|
|
|
|
_variableName = variableName;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Status = E_COMPONENT_STATUS.OFF;
|
|
|
|
|
rVoltage = 0.0f;
|
|
|
|
|
Status = E_COMPONENT_STATUS.OFF;
|
|
|
|
|
rVoltage = 0.0f;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM = new AnalogValueVM(_adsManager, _variableName + ".stP21", true);
|
|
|
|
|
PressureNegolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stP22", true);
|
|
|
|
|
TemperatureNegolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stT21", true);
|
|
|
|
|
_valveNegolytVM = new BinaryValveControlVM(_adsManager, _variableName + ".stNS22");
|
|
|
|
|
_valveNegolytVM.OpenButton.FeedbackChanged += OnValveNegolytOpenFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.FeedbackChanged += OnValveNegolytCloseFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.OpenButton.ReleaseChanged += OnValveNegolytOpenReleaseChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.ReleaseChanged += OnValveNegolytCloseReleaseChanged;
|
|
|
|
|
_pumpNegolytVM = new AnalogMotorControlVM(_adsManager, _variableName + ".stNS21");
|
|
|
|
|
_pumpNegolytVM.StartButton.FeedbackChanged += OnPumpNegolytStartFeedbackChanged;
|
|
|
|
|
_pumpNegolytVM.StopButton.FeedbackChanged += OnPumpNegolytStopFeedbackChanged;
|
|
|
|
|
_pumpNegolytVM.StartButton.ReleaseChanged += OnPumpNegolytStartReleaseChanged;
|
|
|
|
|
_pumpNegolytVM.StopButton.ReleaseChanged += OnPumpNegolytStopReleaseChanged;
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM = new AnalogValueVM(_adsManager, _variableName + ".stP21", true);
|
|
|
|
|
PressureNegolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stP22", true);
|
|
|
|
|
TemperatureNegolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stT21", true);
|
|
|
|
|
_valveNegolytVM = new BinaryValveControlVM(_adsManager, _variableName + ".stNS22");
|
|
|
|
|
_valveNegolytVM.OpenButton.FeedbackChanged += OnValveNegolytOpenFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.FeedbackChanged += OnValveNegolytCloseFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.OpenButton.ReleaseChanged += OnValveNegolytOpenReleaseChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.ReleaseChanged += OnValveNegolytCloseReleaseChanged;
|
|
|
|
|
_pumpNegolytVM = new AnalogMotorControlVM(_adsManager, _variableName + ".stNS21");
|
|
|
|
|
_pumpNegolytVM.StartButton.FeedbackChanged += OnPumpNegolytStartFeedbackChanged;
|
|
|
|
|
_pumpNegolytVM.StopButton.FeedbackChanged += OnPumpNegolytStopFeedbackChanged;
|
|
|
|
|
_pumpNegolytVM.StartButton.ReleaseChanged += OnPumpNegolytStartReleaseChanged;
|
|
|
|
|
_pumpNegolytVM.StopButton.ReleaseChanged += OnPumpNegolytStopReleaseChanged;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM = new AnalogValueVM(_adsManager, _variableName + ".stP11", true);
|
|
|
|
|
PressurePosolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stP12", true);
|
|
|
|
|
TemperaturePosolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stT11", true);
|
|
|
|
|
_valvePosolytVM = new BinaryValveControlVM(_adsManager, _variableName + ".stNS12");
|
|
|
|
|
_valvePosolytVM.OpenButton.FeedbackChanged += OnValvePosolytOpenFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.FeedbackChanged += OnValvePosolytCloseFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.OpenButton.ReleaseChanged += OnValvePosolytOpenReleaseChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.ReleaseChanged += OnValvePosolytCloseReleaseChanged;
|
|
|
|
|
_pumpPosolytVM = new AnalogMotorControlVM(_adsManager, _variableName + ".stNS11");
|
|
|
|
|
_pumpPosolytVM.StartButton.FeedbackChanged += OnPumpPosolytStartFeedbackChanged;
|
|
|
|
|
_pumpPosolytVM.StopButton.FeedbackChanged += OnPumpPosolytStopFeedbackChanged;
|
|
|
|
|
_pumpPosolytVM.StartButton.ReleaseChanged += OnPumpPosolytStartReleaseChanged;
|
|
|
|
|
_pumpPosolytVM.StopButton.ReleaseChanged += OnPumpPosolytStopReleaseChanged;
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM = new AnalogValueVM(_adsManager, _variableName + ".stP11", true);
|
|
|
|
|
PressurePosolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stP12", true);
|
|
|
|
|
TemperaturePosolytTankInVM = new AnalogValueVM(_adsManager, _variableName + ".stT11", true);
|
|
|
|
|
_valvePosolytVM = new BinaryValveControlVM(_adsManager, _variableName + ".stNS12");
|
|
|
|
|
_valvePosolytVM.OpenButton.FeedbackChanged += OnValvePosolytOpenFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.FeedbackChanged += OnValvePosolytCloseFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.OpenButton.ReleaseChanged += OnValvePosolytOpenReleaseChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.ReleaseChanged += OnValvePosolytCloseReleaseChanged;
|
|
|
|
|
_pumpPosolytVM = new AnalogMotorControlVM(_adsManager, _variableName + ".stNS11");
|
|
|
|
|
_pumpPosolytVM.StartButton.FeedbackChanged += OnPumpPosolytStartFeedbackChanged;
|
|
|
|
|
_pumpPosolytVM.StopButton.FeedbackChanged += OnPumpPosolytStopFeedbackChanged;
|
|
|
|
|
_pumpPosolytVM.StartButton.ReleaseChanged += OnPumpPosolytStartReleaseChanged;
|
|
|
|
|
_pumpPosolytVM.StopButton.ReleaseChanged += OnPumpPosolytStopReleaseChanged;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Current status
|
|
|
|
|
_adsManager.Register(_variableName + ".eStatus", StatusChanged);
|
|
|
|
|
_adsManager.Register(_variableName + ".rVoltage", VoltageChanged);
|
|
|
|
|
// Current status
|
|
|
|
|
_adsManager.Register(_variableName + ".eStatus", StatusChanged);
|
|
|
|
|
_adsManager.Register(_variableName + ".rVoltage", VoltageChanged);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Configured pump speed for on
|
|
|
|
|
_adsManager.Register("GVL_CONFIG.rPumpNegolytOnPower", NegolytPumpOnSpeedChanged);
|
|
|
|
|
_adsManager.Register("GVL_CONFIG.rPumpPosolytOnPower", PosolytPumpOnSpeedChanged);
|
|
|
|
|
// Configured pump speed for on
|
|
|
|
|
_adsManager.Register("GVL_CONFIG.rPumpNegolytOnPower", NegolytPumpOnSpeedChanged);
|
|
|
|
|
_adsManager.Register("GVL_CONFIG.rPumpPosolytOnPower", PosolytPumpOnSpeedChanged);
|
|
|
|
|
|
|
|
|
|
valveWindowHorizontalPosition = 10;
|
|
|
|
|
}
|
|
|
|
|
valveWindowHorizontalPosition = 10;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void NegolytPumpOnSpeedChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_negolytPumpOnSpeed = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
private void NegolytPumpOnSpeedChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_negolytPumpOnSpeed = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void PosolytPumpOnSpeedChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_posolytPumpOnSpeed = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
private void PosolytPumpOnSpeedChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_posolytPumpOnSpeed = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void VoltageChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
RVoltage = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
private void VoltageChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
RVoltage = (float)e.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
// Dispose all necessary view models
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM.Dispose();
|
|
|
|
|
PressureNegolytTankInVM.Dispose();
|
|
|
|
|
TemperatureNegolytTankInVM.Dispose();
|
|
|
|
|
_valveNegolytVM.OpenButton.FeedbackChanged -= OnValveNegolytOpenFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.FeedbackChanged -= OnValveNegolytCloseFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.OpenButton.ReleaseChanged -= OnValveNegolytOpenReleaseChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.ReleaseChanged -= OnValveNegolytCloseReleaseChanged;
|
|
|
|
|
_valveNegolytVM.Dispose();
|
|
|
|
|
_pumpNegolytVM.Dispose();
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
// Dispose all necessary view models
|
|
|
|
|
// Negolyt
|
|
|
|
|
PressureNegolytSegmentInVM.Dispose();
|
|
|
|
|
PressureNegolytTankInVM.Dispose();
|
|
|
|
|
TemperatureNegolytTankInVM.Dispose();
|
|
|
|
|
_valveNegolytVM.OpenButton.FeedbackChanged -= OnValveNegolytOpenFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.FeedbackChanged -= OnValveNegolytCloseFeedbackChanged;
|
|
|
|
|
_valveNegolytVM.OpenButton.ReleaseChanged -= OnValveNegolytOpenReleaseChanged;
|
|
|
|
|
_valveNegolytVM.CloseButton.ReleaseChanged -= OnValveNegolytCloseReleaseChanged;
|
|
|
|
|
_valveNegolytVM.Dispose();
|
|
|
|
|
_pumpNegolytVM.Dispose();
|
|
|
|
|
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM.Dispose();
|
|
|
|
|
PressurePosolytTankInVM.Dispose();
|
|
|
|
|
TemperaturePosolytTankInVM.Dispose();
|
|
|
|
|
_valvePosolytVM.OpenButton.FeedbackChanged -= OnValvePosolytOpenFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.FeedbackChanged -= OnValvePosolytCloseFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.OpenButton.ReleaseChanged -= OnValvePosolytOpenReleaseChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.ReleaseChanged -= OnValvePosolytCloseReleaseChanged;
|
|
|
|
|
_valvePosolytVM.Dispose();
|
|
|
|
|
_pumpPosolytVM.Dispose();
|
|
|
|
|
// Posolyt
|
|
|
|
|
PressurePosolytSegmentInVM.Dispose();
|
|
|
|
|
PressurePosolytTankInVM.Dispose();
|
|
|
|
|
TemperaturePosolytTankInVM.Dispose();
|
|
|
|
|
_valvePosolytVM.OpenButton.FeedbackChanged -= OnValvePosolytOpenFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.FeedbackChanged -= OnValvePosolytCloseFeedbackChanged;
|
|
|
|
|
_valvePosolytVM.OpenButton.ReleaseChanged -= OnValvePosolytOpenReleaseChanged;
|
|
|
|
|
_valvePosolytVM.CloseButton.ReleaseChanged -= OnValvePosolytCloseReleaseChanged;
|
|
|
|
|
_valvePosolytVM.Dispose();
|
|
|
|
|
_pumpPosolytVM.Dispose();
|
|
|
|
|
|
|
|
|
|
// Deregister variables
|
|
|
|
|
_adsManager?.Deregister(_variableName + ".eStatus", StatusChanged);
|
|
|
|
|
_adsManager?.Deregister(_variableName + ".rVoltage", VoltageChanged);
|
|
|
|
|
_adsManager?.Deregister("GVL_CONFIG.rPumpNegolytOnPower", NegolytPumpOnSpeedChanged);
|
|
|
|
|
_adsManager?.Deregister("GVL_CONFIG.rPumpPosolytOnPower", PosolytPumpOnSpeedChanged);
|
|
|
|
|
// Deregister variables
|
|
|
|
|
_adsManager?.Deregister(_variableName + ".eStatus", StatusChanged);
|
|
|
|
|
_adsManager?.Deregister(_variableName + ".rVoltage", VoltageChanged);
|
|
|
|
|
_adsManager?.Deregister("GVL_CONFIG.rPumpNegolytOnPower", NegolytPumpOnSpeedChanged);
|
|
|
|
|
_adsManager?.Deregister("GVL_CONFIG.rPumpPosolytOnPower", PosolytPumpOnSpeedChanged);
|
|
|
|
|
|
|
|
|
|
// Destroy windows
|
|
|
|
|
_windowValveNegolyt?.Close();
|
|
|
|
|
_windowValvePosolyt?.Close();
|
|
|
|
|
_windowPumpNegolyt?.Close();
|
|
|
|
|
_windowPumpPosolyt?.Close();
|
|
|
|
|
}
|
|
|
|
|
// Destroy windows
|
|
|
|
|
_windowValveNegolyt?.Close();
|
|
|
|
|
_windowValvePosolyt?.Close();
|
|
|
|
|
_windowPumpNegolyt?.Close();
|
|
|
|
|
_windowPumpPosolyt?.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void StatusChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Status = (E_COMPONENT_STATUS)((short)e.Value);
|
|
|
|
|
}
|
|
|
|
|
private void StatusChanged(object? sender, ValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Status = (E_COMPONENT_STATUS)((short)e.Value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void ShowValveNegolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowValveNegolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowValveNegolyt = new() { DataContext = _valveNegolytVM };
|
|
|
|
|
_windowValveNegolyt.Closed += WindowValveNegolyt_Closed;
|
|
|
|
|
_windowValveNegolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void ShowValveNegolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowValveNegolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowValveNegolyt = new() { DataContext = _valveNegolytVM };
|
|
|
|
|
_windowValveNegolyt.Closed += WindowValveNegolyt_Closed;
|
|
|
|
|
_windowValveNegolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void WindowValveNegolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowValveNegolyt!.Close();
|
|
|
|
|
_windowValveNegolyt = null;
|
|
|
|
|
}
|
|
|
|
|
private void WindowValveNegolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowValveNegolyt!.Close();
|
|
|
|
|
_windowValveNegolyt = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void ShowValvePosolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowValvePosolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowValvePosolyt = new() { DataContext = _valvePosolytVM };
|
|
|
|
|
_windowValvePosolyt.Closed += WindowValvePosolyt_Closed;
|
|
|
|
|
_windowValvePosolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void ShowValvePosolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowValvePosolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowValvePosolyt = new() { DataContext = _valvePosolytVM };
|
|
|
|
|
_windowValvePosolyt.Closed += WindowValvePosolyt_Closed;
|
|
|
|
|
_windowValvePosolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void WindowValvePosolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowValvePosolyt!.Close();
|
|
|
|
|
_windowValvePosolyt = null;
|
|
|
|
|
}
|
|
|
|
|
private void WindowValvePosolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowValvePosolyt!.Close();
|
|
|
|
|
_windowValvePosolyt = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
public void ShowPumpNegolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowPumpNegolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpNegolyt = new() { DataContext = _pumpNegolytVM };
|
|
|
|
|
_windowPumpNegolyt.Closed += WindowPumpNegolyt_Closed;
|
|
|
|
|
_windowPumpNegolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
public void ShowPumpNegolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowPumpNegolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpNegolyt = new() { DataContext = _pumpNegolytVM };
|
|
|
|
|
_windowPumpNegolyt.Closed += WindowPumpNegolyt_Closed;
|
|
|
|
|
_windowPumpNegolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void WindowPumpNegolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpNegolyt!.Close();
|
|
|
|
|
_windowPumpNegolyt = null;
|
|
|
|
|
}
|
|
|
|
|
private void WindowPumpNegolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpNegolyt!.Close();
|
|
|
|
|
_windowPumpNegolyt = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
public void ShowPumpPosolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowPumpPosolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpPosolyt = new() { DataContext = _pumpPosolytVM };
|
|
|
|
|
_windowPumpPosolyt.Closed += WindowPumpPosolyt_Closed;
|
|
|
|
|
_windowPumpPosolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
public void ShowPumpPosolyt()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager != null && _windowPumpPosolyt == null)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpPosolyt = new() { DataContext = _pumpPosolytVM };
|
|
|
|
|
_windowPumpPosolyt.Closed += WindowPumpPosolyt_Closed;
|
|
|
|
|
_windowPumpPosolyt.Show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void OpenBothValves()
|
|
|
|
|
{
|
|
|
|
|
_valveNegolytVM.OpenButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_valvePosolytVM.OpenButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void OpenBothValves()
|
|
|
|
|
{
|
|
|
|
|
_valveNegolytVM.OpenButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_valvePosolytVM.OpenButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void CloseBothValves()
|
|
|
|
|
{
|
|
|
|
|
_valveNegolytVM.CloseButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_valvePosolytVM.CloseButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void CloseBothValves()
|
|
|
|
|
{
|
|
|
|
|
_valveNegolytVM.CloseButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_valvePosolytVM.CloseButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValveNegolytOpenFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnValveNegolytOpenFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValvePosolytOpenFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnValvePosolytOpenFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateOpenFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_valveNegolytVM?.OpenButton.IFeedback == 1 && _valvePosolytVM?.OpenButton.IFeedback == 1)
|
|
|
|
|
FeedbackOpenValves = 1;
|
|
|
|
|
else if (_valveNegolytVM?.OpenButton.IFeedback == 0 && _valvePosolytVM?.OpenButton.IFeedback == 0)
|
|
|
|
|
FeedbackOpenValves = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackOpenValves = 2;
|
|
|
|
|
}
|
|
|
|
|
private void CalculateOpenFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_valveNegolytVM?.OpenButton.IFeedback == 1 && _valvePosolytVM?.OpenButton.IFeedback == 1)
|
|
|
|
|
FeedbackOpenValves = 1;
|
|
|
|
|
else if (_valveNegolytVM?.OpenButton.IFeedback == 0 && _valvePosolytVM?.OpenButton.IFeedback == 0)
|
|
|
|
|
FeedbackOpenValves = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackOpenValves = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValveNegolytCloseFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnValveNegolytCloseFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValvePosolytCloseFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnValvePosolytCloseFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateCloseFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_valveNegolytVM?.CloseButton.IFeedback == 1 && _valvePosolytVM?.CloseButton.IFeedback == 1)
|
|
|
|
|
FeedbackCloseValves = 1;
|
|
|
|
|
else if (_valveNegolytVM?.CloseButton.IFeedback == 0 && _valvePosolytVM?.CloseButton.IFeedback == 0)
|
|
|
|
|
FeedbackCloseValves = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackCloseValves = 2;
|
|
|
|
|
}
|
|
|
|
|
private void CalculateCloseFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_valveNegolytVM?.CloseButton.IFeedback == 1 && _valvePosolytVM?.CloseButton.IFeedback == 1)
|
|
|
|
|
FeedbackCloseValves = 1;
|
|
|
|
|
else if (_valveNegolytVM?.CloseButton.IFeedback == 0 && _valvePosolytVM?.CloseButton.IFeedback == 0)
|
|
|
|
|
FeedbackCloseValves = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackCloseValves = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValveNegolytOpenReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnValveNegolytOpenReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValvePosolytOpenReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnValvePosolytOpenReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateOpenRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateOpenRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_valvePosolytVM == null || _valveNegolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculateOpenRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_valvePosolytVM == null || _valveNegolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_valveNegolytVM.OpenButton.XRelease && _valvePosolytVM.OpenButton.XRelease)
|
|
|
|
|
CanOpenBothValves = true;
|
|
|
|
|
else
|
|
|
|
|
CanOpenBothValves = false;
|
|
|
|
|
}
|
|
|
|
|
if (_valveNegolytVM.OpenButton.XRelease && _valvePosolytVM.OpenButton.XRelease)
|
|
|
|
|
CanOpenBothValves = true;
|
|
|
|
|
else
|
|
|
|
|
CanOpenBothValves = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValveNegolytCloseReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnValveNegolytCloseReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValvePosolytCloseReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnValvePosolytCloseReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateCloseRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateCloseRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_valvePosolytVM == null || _valveNegolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculateCloseRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_valvePosolytVM == null || _valveNegolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_valveNegolytVM.CloseButton.XRelease && _valvePosolytVM.CloseButton.XRelease)
|
|
|
|
|
CanCloseBothValves = true;
|
|
|
|
|
else
|
|
|
|
|
CanCloseBothValves = false;
|
|
|
|
|
}
|
|
|
|
|
if (_valveNegolytVM.CloseButton.XRelease && _valvePosolytVM.CloseButton.XRelease)
|
|
|
|
|
CanCloseBothValves = true;
|
|
|
|
|
else
|
|
|
|
|
CanCloseBothValves = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void StartBothPumps()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager == null || _pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void StartBothPumps()
|
|
|
|
|
{
|
|
|
|
|
if (_adsManager == null || _pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
_pumpNegolytVM.Setpoint.RValue = _negolytPumpOnSpeed;
|
|
|
|
|
_pumpPosolytVM.Setpoint.RValue = _posolytPumpOnSpeed;
|
|
|
|
|
_pumpNegolytVM.Setpoint.RValue = _negolytPumpOnSpeed;
|
|
|
|
|
_pumpPosolytVM.Setpoint.RValue = _posolytPumpOnSpeed;
|
|
|
|
|
|
|
|
|
|
_pumpNegolytVM.StartButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_pumpPosolytVM.StartButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
_pumpNegolytVM.StartButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_pumpPosolytVM.StartButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void StopBothPumps()
|
|
|
|
|
{
|
|
|
|
|
_pumpNegolytVM.StopButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_pumpPosolytVM.StopButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
[RelayCommand]
|
|
|
|
|
private void StopBothPumps()
|
|
|
|
|
{
|
|
|
|
|
_pumpNegolytVM.StopButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
_pumpPosolytVM.StopButton?.ButtonClickedCommand.Execute(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateStartRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculateStartRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_pumpNegolytVM.StartButton.XRelease && _pumpPosolytVM.StartButton.XRelease)
|
|
|
|
|
CanStartBothPumps = true;
|
|
|
|
|
else
|
|
|
|
|
CanStartBothPumps = false;
|
|
|
|
|
}
|
|
|
|
|
if (_pumpNegolytVM.StartButton.XRelease && _pumpPosolytVM.StartButton.XRelease)
|
|
|
|
|
CanStartBothPumps = true;
|
|
|
|
|
else
|
|
|
|
|
CanStartBothPumps = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculatStopRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculatStopRelease()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_pumpNegolytVM.StopButton.XRelease && _pumpPosolytVM.StopButton.XRelease)
|
|
|
|
|
CanStopBothPumps = true;
|
|
|
|
|
else
|
|
|
|
|
CanStopBothPumps = false;
|
|
|
|
|
}
|
|
|
|
|
if (_pumpNegolytVM.StopButton.XRelease && _pumpPosolytVM.StopButton.XRelease)
|
|
|
|
|
CanStopBothPumps = true;
|
|
|
|
|
else
|
|
|
|
|
CanStopBothPumps = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateStartFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculateStartFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_pumpNegolytVM.StartButton.IFeedback == 1 && _pumpPosolytVM.StartButton.IFeedback == 1)
|
|
|
|
|
FeedbackStartPumps = 1;
|
|
|
|
|
else if (_pumpNegolytVM.StartButton.IFeedback == 0 && _pumpPosolytVM.StartButton.IFeedback == 0)
|
|
|
|
|
FeedbackStartPumps = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackStartPumps = 2;
|
|
|
|
|
}
|
|
|
|
|
if (_pumpNegolytVM.StartButton.IFeedback == 1 && _pumpPosolytVM.StartButton.IFeedback == 1)
|
|
|
|
|
FeedbackStartPumps = 1;
|
|
|
|
|
else if (_pumpNegolytVM.StartButton.IFeedback == 0 && _pumpPosolytVM.StartButton.IFeedback == 0)
|
|
|
|
|
FeedbackStartPumps = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackStartPumps = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CalculateStopFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
private void CalculateStopFeedback()
|
|
|
|
|
{
|
|
|
|
|
if (_pumpNegolytVM == null || _pumpPosolytVM == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
if (_pumpNegolytVM.StopButton.IFeedback == 1 && _pumpPosolytVM.StopButton.IFeedback == 1)
|
|
|
|
|
FeedbackStopPumps = 1;
|
|
|
|
|
else if (_pumpNegolytVM.StopButton.IFeedback == 0 && _pumpPosolytVM.StopButton.IFeedback == 0)
|
|
|
|
|
FeedbackStopPumps = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackStopPumps = 2;
|
|
|
|
|
if (_pumpNegolytVM.StopButton.IFeedback == 1 && _pumpPosolytVM.StopButton.IFeedback == 1)
|
|
|
|
|
FeedbackStopPumps = 1;
|
|
|
|
|
else if (_pumpNegolytVM.StopButton.IFeedback == 0 && _pumpPosolytVM.StopButton.IFeedback == 0)
|
|
|
|
|
FeedbackStopPumps = 0;
|
|
|
|
|
else
|
|
|
|
|
FeedbackStopPumps = 2;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpPosolytStopReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculatStopRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpPosolytStopReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculatStopRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpPosolytStartReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpPosolytStartReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpPosolytStopFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStopFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpPosolytStopFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStopFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpPosolytStartFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpPosolytStartFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpNegolytStopReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculatStopRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpNegolytStopReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculatStopRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpNegolytStartReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartRelease();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpNegolytStartReleaseChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartRelease();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpNegolytStopFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStopFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpNegolytStopFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStopFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnPumpNegolytStartFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartFeedback();
|
|
|
|
|
}
|
|
|
|
|
private void OnPumpNegolytStartFeedbackChanged(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CalculateStartFeedback();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void WindowPumpPosolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpPosolyt!.Close();
|
|
|
|
|
_windowPumpPosolyt = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private void WindowPumpPosolyt_Closed(object? sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_windowPumpPosolyt!.Close();
|
|
|
|
|
_windowPumpPosolyt = null;
|
|
|
|
|
}
|
|
|
|
|
}
|