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 EtchingStation1PageVM : ObservableValidator, IDisposable { [ObservableProperty] private BinaryValveControlVM vacuumValveControlEtching1Vm; [ObservableProperty] private BinaryValveControlVM doorValveControlEtching1Vm; [ObservableProperty] private BinaryValveControlVM chuckUnlockValveLeftEtching1Vm; [ObservableProperty] private BinaryValveControlVM chuckUnlockValveRightEtching1Vm; [ObservableProperty] private BinaryValveControlVM chuckEjectValveFrontEtching1Vm; [ObservableProperty] private BinaryValveControlVM chuckEjectValveBackEtching1Vm; [ObservableProperty] private HMIControlButtonVM? chuckUnlockCmdButtonEtching1Vm; [ObservableProperty] private HMIControlButtonVM? chuckLockCmdButtonEtching1Vm; [ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching1Vm; private readonly string? _variableName; private readonly IAdsManager? _adsManager; public EtchingStation1PageVM() { VacuumValveControlEtching1Vm = new BinaryValveControlVM(); DoorValveControlEtching1Vm = new BinaryValveControlVM(); ChuckUnlockValveLeftEtching1Vm = new BinaryValveControlVM(); ChuckUnlockValveRightEtching1Vm = new BinaryValveControlVM(); ChuckEjectValveFrontEtching1Vm = new BinaryValveControlVM(); ChuckEjectValveBackEtching1Vm = new BinaryValveControlVM(); ChuckUnlockCmdButtonEtching1Vm = new HMIControlButtonVM(); ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM(); ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM(); } public EtchingStation1PageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; VacuumValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stVacuumValve"); DoorValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stDoorValve"); ChuckUnlockValveLeftEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockLeft"); ChuckUnlockValveRightEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockRight"); ChuckEjectValveFrontEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectFront"); ChuckEjectValveBackEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectBack"); ChuckUnlockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockCmd"); ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckLockCmd"); ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectCmd"); } public void Dispose() { VacuumValveControlEtching1Vm.Dispose(); DoorValveControlEtching1Vm.Dispose(); ChuckUnlockValveLeftEtching1Vm.Dispose(); ChuckUnlockValveRightEtching1Vm.Dispose(); ChuckEjectValveFrontEtching1Vm.Dispose(); ChuckEjectValveBackEtching1Vm.Dispose(); ChuckUnlockCmdButtonEtching1Vm?.Dispose(); ChuckUnlockCmdButtonEtching1Vm = null; ChuckLockCmdButtonEtching1Vm?.Dispose(); ChuckLockCmdButtonEtching1Vm = null; ChuckLockCmdButtonEtching1Vm?.Dispose(); ChuckEjectCmdButtonEtching1Vm = null; } } }