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; namespace InfineonHMI { public sealed partial class NIOStationPageVM : ObservableValidator, IDisposable { private readonly string? _variableName; private readonly IAdsManager? _adsManager; [ObservableProperty] private BinaryValveControlVM clampDiagValveVm; [ObservableProperty] private BinaryValveControlVM clampAcrossValveVm; [ObservableProperty] private HMIControlButtonVM clampCmdButtonVm; [ObservableProperty] private HMIControlButtonVM unclampCmdButtonVm; public NIOStationPageVM() { ClampDiagValveVm = new BinaryValveControlVM(); ClampAcrossValveVm = new BinaryValveControlVM(); ClampCmdButtonVm = new HMIControlButtonVM(); UnclampCmdButtonVm = new HMIControlButtonVM(); } public NIOStationPageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; ClampDiagValveVm = new BinaryValveControlVM(_adsManager, _variableName + ".stClampDiagValve"); ClampAcrossValveVm = new BinaryValveControlVM(_adsManager, _variableName + ".stClampAcrossValve"); ClampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stClampCmd"); UnclampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + "stUnclampCmd"); } public void Dispose() { ClampDiagValveVm.Dispose(); ClampAcrossValveVm.Dispose(); ClampCmdButtonVm.Dispose(); UnclampCmdButtonVm.Dispose(); } } }