using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Collections.Generic; using Aitex.Core.UI.MVVM; using Aitex.Core.Utilities; using MECF.Framework.Simulator.Core.Commons; using CyberX8_Simulator.Devices; namespace CyberX8_Simulator.Views { /// /// Interaction logic for Simu_EfemView.xaml /// public partial class Simu_SunWayEfemView : UserControl { public Simu_SunWayEfemView() { InitializeComponent(); this.DataContext = new Simu_SunWayEfemViewModel(); this.Loaded += OnViewLoaded; } private void OnViewLoaded(object sender, RoutedEventArgs e) { (DataContext as TimerViewModelBase)?.Start(); } } class Simu_SunWayEfemViewModel : SocketDeviceViewModel { public string Title { get { return "EFEM Simulator"; } } public string WaferMap { get { return _sim.SlotMap; } } private bool _doorOpen; [IgnorePropertyChange] public bool DoorOpen { get { return _doorOpen; } set { _doorOpen = value; _sim.SetCassetteDoor(_doorOpen); } } private bool _Maintain; [IgnorePropertyChange] public bool Maintain { get { return _Maintain; } set { _Maintain = value; _sim.SetMaintain(_Maintain); } } private bool _Protrude1; [IgnorePropertyChange] public bool Protrude1 { get { return _Protrude1; } set { _Protrude1 = value; _sim.SetProtrude1(_Protrude1); } } private bool _Protrude2; [IgnorePropertyChange] public bool Protrude2 { get { return _Protrude2; } set { _Protrude2 = value; _sim.SetProtrude2(_Protrude2); } } private bool _VAC; [IgnorePropertyChange] public bool VAC { get { return _VAC; } set { _VAC = value; _sim.SetVAC(_VAC); } } private bool _AIR; [IgnorePropertyChange] public bool AIR { get { return _AIR; } set { _AIR = value; _sim.SetAIR(_AIR); } } private bool _doorOpen1; public bool DoorOpen1 { get { return _doorOpen1; } set { _doorOpen1 = value; _sim.IsDoorOpen1=value; } } private bool _doorOpen2; public bool DoorOpen2 { get { return _doorOpen2; } set { _doorOpen2 = value; _sim.IsDoorOpen2 = value; } } private bool _doorOpen3; public bool DoorOpen3 { get { return _doorOpen3; } set { _doorOpen3 = value; _sim.IsDoorOpen3 = value; } } private SunWayEfemSimulator _sim; public ICommand Place1Command { get; set; } public ICommand Remove1Command { get; set; } public ICommand Place2Command { get; set; } public ICommand Remove2Command { get; set; } public ICommand Place3Command { get; set; } public ICommand Remove3Command { get; set; } public ICommand ClearCommand { get; set; } public ICommand SetAllCommand { get; set; } public ICommand RandomCommand { get; set; } public ICommand RandomDummyCommand { get; set; } public Simu_SunWayEfemViewModel() : base("SunWayEfemSimuViewModel") { Place1Command = new DelegateCommand(Place1); Remove1Command = new DelegateCommand(Remove1); Place2Command = new DelegateCommand(Place2); Remove2Command = new DelegateCommand(Remove2); Place3Command = new DelegateCommand(Place3); Remove3Command = new DelegateCommand(Remove3); ClearCommand = new DelegateCommand(Clear); SetAllCommand = new DelegateCommand(SetAll); RandomCommand = new DelegateCommand(RandomGenerateWafer); RandomDummyCommand = new DelegateCommand(RandomDummyGenerateWafer); _sim = new SunWayEfemSimulator(); Init(_sim); } private void RandomGenerateWafer(string obj) { _sim.RandomWafer(); } private void RandomDummyGenerateWafer(string obj) { _sim.RandomDummyWafer(); } private void SetAll(string obj) { _sim.SetAllWafer(); } private void Clear(string obj) { _sim.ClearWafer(); } private void Remove1(string obj) { _sim.RemoveCarrier1(); } private void Place1(string obj) { _sim.PlaceCarrier1(); } private void Remove2(string obj) { _sim.RemoveCarrier2(); } private void Place2(string obj) { _sim.PlaceCarrier2(); } private void Remove3(string obj) { _sim.RemoveCarrier3(); } private void Place3(string obj) { _sim.PlaceCarrier3(); } private List _WaferSizeItems = new List() { "200", "300"}; public List WaferSizeItems { get { return _WaferSizeItems; } } private string _SelectedWaferSize; public string SelectedWaferSize { get { return _SelectedWaferSize; } set { _SelectedWaferSize = value; _sim.WaferSize =int.Parse(value); } } } }