using Common; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Heisig.HMI.AdsManager; using HMIToolkit; using InfineonHMI.Model; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.Diagnostics; using TwinCAT.TypeSystem; 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; [ObservableProperty] private PackMLControlVM? etching1PackMLControlVm; 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(); Etching1PackMLControlVm = new(); Etching1PackMLControlVm.STitle = "Ätzer 1"; } public EtchingStation1PageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; VacuumValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stVacuumValve"); DoorValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stDoorValve"); ChuckUnlockValveLeftEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockLeft"); ChuckUnlockValveRightEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockRight"); ChuckEjectValveFrontEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectFront"); ChuckEjectValveBackEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectBack"); ChuckUnlockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockCmd"); ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckLockCmd"); ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectCmd"); Etching1PackMLControlVm = new(_adsManager, _variableName + ".stEtcher1.stStationCmds"); Etching1PackMLControlVm.STitle = "Ätzer 1"; } 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; } }