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 UniperHMI.Model; using System.Windows; namespace UniperHMI { public sealed partial class HotCoolPlatePageVM : ObservableValidator, IDisposable { private const string sPieceOnHotplate1 = "_adsVariable_hotPlatePiece1"; private const string sPieceOnHotplate2 = "_adsVariable_hotPlatePiece2"; private const string sPieceOnHotplate3 = "_adsVariable_hotPlatePiece3"; private const string sPieceOnHotplate4 = "_adsVariable_hotPlatePiece4"; private const string sPieceOnHotplate5 = "_adsVariable_hotPlatePiece5"; private const string sPieceOnHotplate6 = "_adsVariable_hotPlatePiece6"; private const string sPieceOnHotplate7 = "_adsVariable_hotPlatePiece7"; private const string sPieceOnHotplate8 = "_adsVariable_hotPlatePiece8"; private const string sPieceOnHotplate9 = "_adsVariable_hotPlatePiece9"; private const string sHotplateTargetTemp = "_adsVariable_hotPlateTargetTemp"; private const string sHotplateActualTemp = "_adsVariable_hotPlateActualTemp"; private const string sPieceOnCoolplate1 = "_adsVariable_CoolPlatePiece1"; private const string sPieceOnCoolplate2 = "_adsVariable_CoolPlatePiece2"; private const string sPieceOnCoolplate3 = "_adsVariable_CoolPlatePiece3"; private const string sPieceOnCoolplate4 = "_adsVariable_CoolPlatePiece4"; private const string sPieceOnCoolplate5 = "_adsVariable_CoolPlatePiece5"; private const string sPieceOnCoolplate6 = "_adsVariable_CoolPlatePiece6"; private const string sPieceOnCoolplate7 = "_adsVariable_CoolPlatePiece7"; private const string sPieceOnCoolplate8 = "_adsVariable_CoolPlatePiece8"; private const string sPieceOnCoolplate9 = "_adsVariable_CoolPlatePiece9"; private const string sCoolplateTargetTemp = "_adsVariable_coolPlateTargetTemp"; private const string sCoolplateActualTemp = "_adsVariable_coolPlateActualTemp"; private readonly IAdsManager? _adsManager; [ObservableProperty] private double hotPlateTargetTemperature; [ObservableProperty] private double hotPlateActualTemperature; [ObservableProperty] private double coolPlateTargetTemperature; [ObservableProperty] private double coolPlateActualTemperature; [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() { } public HotCoolPlatePageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _adsManager.Register(sHotplateActualTemp, HotplateTempChanged); _adsManager.Register(sCoolplateActualTemp, CoolplateTempChanged); _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 HotplateTempChanged(object? sender, ValueChangedEventArgs e) { HotPlateActualTemperature = (double)e.Value; } private void CoolplateTempChanged(object? sender, ValueChangedEventArgs e) { HotPlateActualTemperature = (double)e.Value; } 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() { _adsManager?.Deregister(sHotplateActualTemp, HotplateTempChanged); _adsManager?.Deregister(sCoolplateActualTemp, CoolplateTempChanged); _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); } } }