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);
}
}
}
}