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 EtchingStation2PageVM : ObservableValidator, IDisposable { [ObservableProperty] private BinaryValveControlVM vacuumValveControlEtching2Vm; [ObservableProperty] private BinaryValveControlVM doorValveControlEtching2Vm; [ObservableProperty] private BinaryValveControlVM chuckUnlockValveLeftEtching2Vm; [ObservableProperty] private BinaryValveControlVM chuckUnlockValveRightEtching2Vm; [ObservableProperty] private BinaryValveControlVM chuckEjectValveFrontEtching2Vm; [ObservableProperty] private BinaryValveControlVM chuckEjectValveBackEtching2Vm; [ObservableProperty] private HMIControlButtonVM? chuckUnlockCmdButtonEtching2Vm; [ObservableProperty] private HMIControlButtonVM? chuckLockCmdButtonEtching2Vm; [ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching2Vm; private readonly string? _variableName; private readonly IAdsManager? _adsManager; public EtchingStation2PageVM() { VacuumValveControlEtching2Vm = new BinaryValveControlVM(); DoorValveControlEtching2Vm = new BinaryValveControlVM(); ChuckUnlockValveLeftEtching2Vm = new BinaryValveControlVM(); ChuckUnlockValveRightEtching2Vm = new BinaryValveControlVM(); ChuckEjectValveFrontEtching2Vm = new BinaryValveControlVM(); ChuckEjectValveBackEtching2Vm = new BinaryValveControlVM(); ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM(); ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM(); ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM(); } public EtchingStation2PageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; VacuumValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stVacuumValve"); DoorValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stDoorValve"); ChuckUnlockValveLeftEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockLeft"); ChuckUnlockValveRightEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockRight"); ChuckEjectValveFrontEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectFront"); ChuckEjectValveBackEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectBack"); ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockCmd"); ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckLockCmd"); ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectCmd"); } public void Dispose() { VacuumValveControlEtching2Vm.Dispose(); DoorValveControlEtching2Vm.Dispose(); ChuckUnlockValveLeftEtching2Vm.Dispose(); ChuckUnlockValveRightEtching2Vm.Dispose(); ChuckEjectValveFrontEtching2Vm.Dispose(); ChuckEjectValveBackEtching2Vm.Dispose(); ChuckUnlockCmdButtonEtching2Vm?.Dispose(); ChuckUnlockCmdButtonEtching2Vm = null; ChuckLockCmdButtonEtching2Vm?.Dispose(); ChuckLockCmdButtonEtching2Vm = null; ChuckLockCmdButtonEtching2Vm?.Dispose(); ChuckEjectCmdButtonEtching2Vm = null; } } }