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 Common; 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; [ObservableProperty] private PackMLControlVM? etching2PackMLControlVm; 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(); Etching2PackMLControlVm = new(); Etching2PackMLControlVm.STitle = "Ätzer 2"; } public EtchingStation2PageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; VacuumValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stVacuumValve"); DoorValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stDoorValve"); ChuckUnlockValveLeftEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockLeft"); ChuckUnlockValveRightEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockRight"); ChuckEjectValveFrontEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectFront"); ChuckEjectValveBackEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectBack"); ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockCmd"); ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckLockCmd"); ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectCmd"); Etching2PackMLControlVm = new(_adsManager, _variableName + ".stEtcher2.stStationCmds"); Etching2PackMLControlVm.STitle = "Ätzer 2"; } 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; } }