using CommunityToolkit.Mvvm.ComponentModel; using HMIToolkit; using System.ComponentModel.DataAnnotations; using Heisig.HMI.AdsManager; using CommunityToolkit.Mvvm.Input; using TwinCAT.TypeSystem; using System.Collections.ObjectModel; using InfineonHMI.Model; using System.Windows; using Common; namespace InfineonHMI; public sealed partial class HotCoolPlatePageVM : ObservableValidator, IDisposable { private const string sPieceOnHotplate1 = ".stHotplate.stPiece1"; private const string sPieceOnHotplate2 = ".stHotplate.stPiece2"; private const string sPieceOnHotplate3 = ".stHotplate.stPiece3"; private const string sPieceOnHotplate4 = ".stHotplate.stPiece4"; private const string sPieceOnHotplate5 = ".stHotplate.stPiece5"; private const string sPieceOnHotplate6 = ".stHotplate.stPiece6"; private const string sPieceOnHotplate7 = ".stHotplate.stPiece7"; private const string sPieceOnHotplate8 = ".stHotplate.stPiece8"; private const string sPieceOnHotplate9 = ".stHotplate.stPiece9"; private const string sPieceOnCoolplate1 = ".stCoolplate.stPiece1"; private const string sPieceOnCoolplate2 = ".stCoolplate.stPiece2"; private const string sPieceOnCoolplate3 = ".stCoolplate.stPiece3"; private const string sPieceOnCoolplate4 = ".stCoolplate.stPiece4"; private const string sPieceOnCoolplate5 = ".stCoolplate.stPiece5"; private const string sPieceOnCoolplate6 = ".stCoolplate.stPiece6"; private const string sPieceOnCoolplate7 = ".stCoolplate.stPiece7"; private const string sPieceOnCoolplate8 = ".stCoolplate.stPiece8"; private const string sPieceOnCoolplate9 = ".stCoolplate.stPiece9"; private readonly IAdsManager? _adsManager; private readonly string? _variableName; [ObservableProperty] private PackMLControlVM? hotplatePackMLControlVm; [ObservableProperty] private PackMLControlVM? coolplatePackMLControlVm; [ObservableProperty] private AnalogValueVM hotPlateTargetTemperature; [ObservableProperty] private AnalogValueVM hotPlateActualTemperature; [ObservableProperty] private HMIControlButtonVM? enableHotPlateButtonVm; [ObservableProperty] private HMIControlButtonVM? disableHotPlateButtonVm; [ObservableProperty] private AnalogValueVM coolPlateTargetTemperature; [ObservableProperty] private AnalogValueVM coolPlateActualTemperature; [ObservableProperty] private HMIControlButtonVM? enableCoolPlateButtonVm; [ObservableProperty] private HMIControlButtonVM? disableCoolPlateButtonVm; [ObservableProperty] private Visibility hotPlateVisibility1; [ObservableProperty] private Visibility hotPlateVisibility2; [ObservableProperty] private Visibility hotPlateVisibility3; [ObservableProperty] private Visibility hotPlateVisibility4; [ObservableProperty] private Visibility hotPlateVisibility5; [ObservableProperty] private Visibility hotPlateVisibility6; [ObservableProperty] private Visibility hotPlateVisibility7; [ObservableProperty] private Visibility hotPlateVisibility8; [ObservableProperty] private Visibility hotPlateVisibility9; [ObservableProperty] private Visibility coolPlateVisibility1; [ObservableProperty] private Visibility coolPlateVisibility2; [ObservableProperty] private Visibility coolPlateVisibility3; [ObservableProperty] private Visibility coolPlateVisibility4; [ObservableProperty] private Visibility coolPlateVisibility5; [ObservableProperty] private Visibility coolPlateVisibility6; [ObservableProperty] private Visibility coolPlateVisibility7; [ObservableProperty] private Visibility coolPlateVisibility8; [ObservableProperty] private Visibility coolPlateVisibility9; public HotCoolPlatePageVM() { EnableHotPlateButtonVm = new HMIControlButtonVM(); DisableHotPlateButtonVm = new HMIControlButtonVM(); EnableCoolPlateButtonVm = new HMIControlButtonVM(); DisableCoolPlateButtonVm = new HMIControlButtonVM(); HotPlateActualTemperature = new AnalogValueVM(); HotPlateTargetTemperature = new AnalogValueVM(); CoolPlateActualTemperature = new AnalogValueVM(); CoolPlateTargetTemperature = new AnalogValueVM(); HotplatePackMLControlVm = new(); CoolplatePackMLControlVm = new(); HotplatePackMLControlVm.STitle = "Heizplatte"; CoolplatePackMLControlVm.STitle = "Kühlplatte"; } public HotCoolPlatePageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; EnableHotPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stHotplate.stEnableBtn"); DisableHotPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stHotplate.stDisableBtn"); EnableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stEnableBtn"); DisableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stDisableBtn"); HotPlateActualTemperature = new AnalogValueVM(_adsManager, _variableName + ".stHotplate.stPV", true); CoolPlateActualTemperature = new AnalogValueVM(_adsManager, _variableName + ".stCoolplate.stPV", true); HotPlateTargetTemperature = new AnalogValueVM(_adsManager, _variableName + ".stHotplate.stSetpoint", false); CoolPlateTargetTemperature = new AnalogValueVM(_adsManager, _variableName + ".stCoolplate.stSetpoint", false); HotplatePackMLControlVm = new(_adsManager, _variableName + ".stHotplate.stStationCmds"); CoolplatePackMLControlVm = new(_adsManager, _variableName + ".stCoolplate.stStationCmds"); HotplatePackMLControlVm.STitle = "Heizplatte"; CoolplatePackMLControlVm.STitle = "Kühlplatte"; _adsManager.Register(sPieceOnHotplate1, HotplatePiece1Changed); _adsManager.Register(sPieceOnHotplate2, HotplatePiece2Changed); _adsManager.Register(sPieceOnHotplate3, HotplatePiece3Changed); _adsManager.Register(sPieceOnHotplate4, HotplatePiece4Changed); _adsManager.Register(sPieceOnHotplate5, HotplatePiece5Changed); _adsManager.Register(sPieceOnHotplate6, HotplatePiece6Changed); _adsManager.Register(sPieceOnHotplate7, HotplatePiece7Changed); _adsManager.Register(sPieceOnHotplate8, HotplatePiece8Changed); _adsManager.Register(sPieceOnHotplate9, HotplatePiece9Changed); _adsManager.Register(sPieceOnCoolplate1, CoolplatePiece1Changed); _adsManager.Register(sPieceOnCoolplate2, CoolplatePiece2Changed); _adsManager.Register(sPieceOnCoolplate3, CoolplatePiece3Changed); _adsManager.Register(sPieceOnCoolplate4, CoolplatePiece4Changed); _adsManager.Register(sPieceOnCoolplate5, CoolplatePiece5Changed); _adsManager.Register(sPieceOnCoolplate6, CoolplatePiece6Changed); _adsManager.Register(sPieceOnCoolplate7, CoolplatePiece7Changed); _adsManager.Register(sPieceOnCoolplate8, CoolplatePiece8Changed); _adsManager.Register(sPieceOnCoolplate9, CoolplatePiece9Changed); } private void HotplatePiece1Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility1 = Visibility.Visible; } else { HotPlateVisibility1 = Visibility.Hidden; } } private void HotplatePiece2Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility2 = Visibility.Visible; } else { HotPlateVisibility2 = Visibility.Hidden; } } private void HotplatePiece3Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility3 = Visibility.Visible; } else { HotPlateVisibility3 = Visibility.Hidden; } } private void HotplatePiece4Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility4 = Visibility.Visible; } else { HotPlateVisibility4 = Visibility.Hidden; } } private void HotplatePiece5Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility5 = Visibility.Visible; } else { HotPlateVisibility5 = Visibility.Hidden; } } private void HotplatePiece6Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility6 = Visibility.Visible; } else { HotPlateVisibility6 = Visibility.Hidden; } } private void HotplatePiece7Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility7 = Visibility.Visible; } else { HotPlateVisibility7 = Visibility.Hidden; } } private void HotplatePiece8Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility8 = Visibility.Visible; } else { HotPlateVisibility8 = Visibility.Hidden; } } private void HotplatePiece9Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { HotPlateVisibility9 = Visibility.Visible; } else { HotPlateVisibility9 = Visibility.Hidden; } } private void CoolplatePiece1Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility1 = Visibility.Visible; } else { CoolPlateVisibility1 = Visibility.Hidden; } } private void CoolplatePiece2Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility2 = Visibility.Visible; } else { CoolPlateVisibility2 = Visibility.Hidden; } } private void CoolplatePiece3Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility3 = Visibility.Visible; } else { CoolPlateVisibility3 = Visibility.Hidden; } } private void CoolplatePiece4Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility4 = Visibility.Visible; } else { CoolPlateVisibility4 = Visibility.Hidden; } } private void CoolplatePiece5Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility5 = Visibility.Visible; } else { CoolPlateVisibility5 = Visibility.Hidden; } } private void CoolplatePiece6Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility6 = Visibility.Visible; } else { CoolPlateVisibility6 = Visibility.Hidden; } } private void CoolplatePiece7Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility7 = Visibility.Visible; } else { CoolPlateVisibility7 = Visibility.Hidden; } } private void CoolplatePiece8Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility8 = Visibility.Visible; } else { CoolPlateVisibility8 = Visibility.Hidden; } } private void CoolplatePiece9Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { CoolPlateVisibility9 = Visibility.Visible; } else { CoolPlateVisibility9 = Visibility.Hidden; } } public void Dispose() { HotPlateActualTemperature.Dispose(); HotPlateTargetTemperature.Dispose(); CoolPlateActualTemperature.Dispose(); CoolPlateTargetTemperature.Dispose(); EnableCoolPlateButtonVm?.Dispose(); EnableCoolPlateButtonVm = null; EnableHotPlateButtonVm?.Dispose(); EnableHotPlateButtonVm = null; DisableCoolPlateButtonVm?.Dispose(); DisableCoolPlateButtonVm = null; DisableHotPlateButtonVm?.Dispose(); DisableHotPlateButtonVm = null; _adsManager?.Deregister(sPieceOnHotplate1, HotplatePiece1Changed); _adsManager?.Deregister(sPieceOnHotplate2, HotplatePiece2Changed); _adsManager?.Deregister(sPieceOnHotplate3, HotplatePiece3Changed); _adsManager?.Deregister(sPieceOnHotplate4, HotplatePiece4Changed); _adsManager?.Deregister(sPieceOnHotplate5, HotplatePiece5Changed); _adsManager?.Deregister(sPieceOnHotplate6, HotplatePiece6Changed); _adsManager?.Deregister(sPieceOnHotplate7, HotplatePiece7Changed); _adsManager?.Deregister(sPieceOnHotplate8, HotplatePiece8Changed); _adsManager?.Deregister(sPieceOnHotplate9, HotplatePiece9Changed); _adsManager?.Deregister(sPieceOnCoolplate1, CoolplatePiece1Changed); _adsManager?.Deregister(sPieceOnCoolplate2, CoolplatePiece2Changed); _adsManager?.Deregister(sPieceOnCoolplate3, CoolplatePiece3Changed); _adsManager?.Deregister(sPieceOnCoolplate4, CoolplatePiece4Changed); _adsManager?.Deregister(sPieceOnCoolplate5, CoolplatePiece5Changed); _adsManager?.Deregister(sPieceOnCoolplate6, CoolplatePiece6Changed); _adsManager?.Deregister(sPieceOnCoolplate7, CoolplatePiece7Changed); _adsManager?.Deregister(sPieceOnCoolplate8, CoolplatePiece8Changed); _adsManager?.Deregister(sPieceOnCoolplate9, CoolplatePiece9Changed); } }