|
@@ -32,37 +32,28 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
public enum EFEMModule
|
|
public enum EFEMModule
|
|
{
|
|
{
|
|
- LP1,LP2,LP3,Aligner1,PUF1,PUF2,SRD1,SRD2,Dummy1,Dummy2
|
|
|
|
|
|
+ LP1,LP2,Aligner1,PUF1,PUF2,SRD1,SRD2,Dummy1,Dummy2,VPW1,VPW2,PlatingCell1,PlatingCell2,PlatingCell3,PlatingCell4
|
|
}
|
|
}
|
|
public enum EFEMBlade
|
|
public enum EFEMBlade
|
|
{
|
|
{
|
|
- Blade1
|
|
|
|
|
|
+ Blade1,Blade2
|
|
}
|
|
}
|
|
|
|
|
|
internal class EfemViewModel:BindableBase
|
|
internal class EfemViewModel:BindableBase
|
|
{
|
|
{
|
|
#region 私有字段
|
|
#region 私有字段
|
|
- private bool m_puf1IsInstalled;
|
|
|
|
- private bool m_puf2IsInstalled;
|
|
|
|
private bool m_srd1IsInstalled;
|
|
private bool m_srd1IsInstalled;
|
|
private bool m_srd2IsInstalled;
|
|
private bool m_srd2IsInstalled;
|
|
- private bool m_puf1IsInRobotStation;
|
|
|
|
- private bool m_puf2IsInRobotStation;
|
|
|
|
private bool _isAlignerVacuumOn;
|
|
private bool _isAlignerVacuumOn;
|
|
private bool _isRobotVacuumOn;
|
|
private bool _isRobotVacuumOn;
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
private ModuleInfo m_LP1ModuleInfo;
|
|
private ModuleInfo m_LP1ModuleInfo;
|
|
private ModuleInfo m_LP2ModuleInfo;
|
|
private ModuleInfo m_LP2ModuleInfo;
|
|
- private ModuleInfo m_LP3ModuleInfo;
|
|
|
|
private ModuleInfo m_EFEMModuleInfo;
|
|
private ModuleInfo m_EFEMModuleInfo;
|
|
private ModuleInfo m_srd1ModuleInfo;//upper
|
|
private ModuleInfo m_srd1ModuleInfo;//upper
|
|
private ModuleInfo m_srd2ModuleInfo;
|
|
private ModuleInfo m_srd2ModuleInfo;
|
|
|
|
|
|
- private ModuleInfo m_puf1ModuleInfo;
|
|
|
|
- private ModuleInfo m_puf2ModuleInfo;
|
|
|
|
-
|
|
|
|
private List<EFEMModule> m_EFEMModules = new List<EFEMModule>();
|
|
private List<EFEMModule> m_EFEMModules = new List<EFEMModule>();
|
|
private List<EFEMModule> m_PUFModules = new List<EFEMModule>();
|
|
private List<EFEMModule> m_PUFModules = new List<EFEMModule>();
|
|
private EFEMBlade m_PickSelectedBlade;
|
|
private EFEMBlade m_PickSelectedBlade;
|
|
@@ -71,48 +62,38 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
private EFEMBlade m_RetractSelectedBlade;
|
|
private EFEMBlade m_RetractSelectedBlade;
|
|
private ObservableCollection<int> m_PlaceSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_PlaceSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_PickSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_PickSoltItemsSource = new ObservableCollection<int>();
|
|
- private ObservableCollection<int> m_PUFPlaceSoltItemsSource = new ObservableCollection<int>();
|
|
|
|
- private ObservableCollection<int> m_PUFPickSoltItemsSource = new ObservableCollection<int>();
|
|
|
|
private ObservableCollection<int> m_ExtendSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_ExtendSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_RetractSoltItemsSource = new ObservableCollection<int>();
|
|
private ObservableCollection<int> m_RetractSoltItemsSource = new ObservableCollection<int>();
|
|
|
|
+
|
|
private int m_PickSoltSelectedIndex;
|
|
private int m_PickSoltSelectedIndex;
|
|
private int m_PlaceSoltSelectedIndex;
|
|
private int m_PlaceSoltSelectedIndex;
|
|
- private int m_PUFPickSoltSelectedIndex;
|
|
|
|
- private int m_PUFPlaceSoltSelectedIndex;
|
|
|
|
private int m_ExtendSoltSelectedIndex;
|
|
private int m_ExtendSoltSelectedIndex;
|
|
private int m_RetractSoltSelectedIndex;
|
|
private int m_RetractSoltSelectedIndex;
|
|
private EFEMModule m_PickSelectedModule;
|
|
private EFEMModule m_PickSelectedModule;
|
|
private EFEMModule m_PlaceSelectedModule;
|
|
private EFEMModule m_PlaceSelectedModule;
|
|
private EFEMModule m_ExtendSelectedModule;
|
|
private EFEMModule m_ExtendSelectedModule;
|
|
private EFEMModule m_RetractSelectedModule;
|
|
private EFEMModule m_RetractSelectedModule;
|
|
- private EFEMModule m_PUFPickSelectedModule;
|
|
|
|
- private EFEMModule m_PUFPlaceSelectedModule;
|
|
|
|
private WaferInfo m_BladeAWafer;
|
|
private WaferInfo m_BladeAWafer;
|
|
private WaferInfo m_BladeBWafer;
|
|
private WaferInfo m_BladeBWafer;
|
|
|
|
|
|
- private WaferInfo m_puf1Wafer;
|
|
|
|
- private WaferInfo m_puf2Wafer;
|
|
|
|
-
|
|
|
|
private WaferInfo m_srd1Wafer;
|
|
private WaferInfo m_srd1Wafer;
|
|
private WaferInfo m_srd2Wafer;
|
|
private WaferInfo m_srd2Wafer;
|
|
|
|
|
|
private WaferInfo m_Aligner1Wafer;
|
|
private WaferInfo m_Aligner1Wafer;
|
|
|
|
+ private WaferInfo m_VPW1Wafer;
|
|
|
|
+ private WaferInfo m_VPW2Wafer;
|
|
|
|
|
|
private string m_LP1Status;
|
|
private string m_LP1Status;
|
|
private string m_LP2Status;
|
|
private string m_LP2Status;
|
|
- private string m_LP3Status;
|
|
|
|
|
|
|
|
private string _setLP1IDValue;
|
|
private string _setLP1IDValue;
|
|
private string _setLP2IDValue;
|
|
private string _setLP2IDValue;
|
|
- private string _setLP3IDValue;
|
|
|
|
|
|
|
|
private int _setLP1CycleValue;
|
|
private int _setLP1CycleValue;
|
|
private int _setLP2CycleValue;
|
|
private int _setLP2CycleValue;
|
|
- private int _setLP3CycleValue;
|
|
|
|
|
|
|
|
private bool _isLp1Unable;
|
|
private bool _isLp1Unable;
|
|
private bool _isLp2Unable;
|
|
private bool _isLp2Unable;
|
|
- private bool _isLp3Unable;
|
|
|
|
|
|
|
|
private List<string> m_RtDataKeys=new List<string>();
|
|
private List<string> m_RtDataKeys=new List<string>();
|
|
private Dictionary<string, object> m_RtDataValues;
|
|
private Dictionary<string, object> m_RtDataValues;
|
|
@@ -135,7 +116,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
|
|
|
|
private bool _isLp1HasNoJob;
|
|
private bool _isLp1HasNoJob;
|
|
private bool _isLp2HasNoJob;
|
|
private bool _isLp2HasNoJob;
|
|
- private bool _isLp3HasNoJob;
|
|
|
|
|
|
|
|
private bool _isHomeAllEnable;
|
|
private bool _isHomeAllEnable;
|
|
|
|
|
|
@@ -160,11 +140,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return m_LP2ModuleInfo; }
|
|
get { return m_LP2ModuleInfo; }
|
|
set { SetProperty(ref m_LP2ModuleInfo, value); }
|
|
set { SetProperty(ref m_LP2ModuleInfo, value); }
|
|
}
|
|
}
|
|
- public ModuleInfo LP3ModuleInfo
|
|
|
|
- {
|
|
|
|
- get { return m_LP3ModuleInfo; }
|
|
|
|
- set { SetProperty(ref m_LP3ModuleInfo, value); }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public bool IsLP1Unable
|
|
public bool IsLP1Unable
|
|
{
|
|
{
|
|
get { return _isLp1Unable; }
|
|
get { return _isLp1Unable; }
|
|
@@ -175,11 +151,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return _isLp2Unable; }
|
|
get { return _isLp2Unable; }
|
|
set { SetProperty(ref _isLp2Unable, value); }
|
|
set { SetProperty(ref _isLp2Unable, value); }
|
|
}
|
|
}
|
|
- public bool IsLP3Unable
|
|
|
|
- {
|
|
|
|
- get { return _isLp3Unable; }
|
|
|
|
- set { SetProperty(ref _isLp3Unable, value); }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public bool IsLP1HasNoJob
|
|
public bool IsLP1HasNoJob
|
|
{
|
|
{
|
|
get { return _isLp1HasNoJob; }
|
|
get { return _isLp1HasNoJob; }
|
|
@@ -190,11 +162,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return _isLp2HasNoJob; }
|
|
get { return _isLp2HasNoJob; }
|
|
set { SetProperty(ref _isLp2HasNoJob, value); }
|
|
set { SetProperty(ref _isLp2HasNoJob, value); }
|
|
}
|
|
}
|
|
- public bool IsLP3HasNoJob
|
|
|
|
- {
|
|
|
|
- get { return _isLp3HasNoJob; }
|
|
|
|
- set { SetProperty(ref _isLp3HasNoJob, value); }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public ModuleInfo EFEMModuleInfo
|
|
public ModuleInfo EFEMModuleInfo
|
|
{
|
|
{
|
|
get { return m_EFEMModuleInfo; }
|
|
get { return m_EFEMModuleInfo; }
|
|
@@ -242,18 +210,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
set { SetProperty(ref m_PlaceSoltItemsSource, value); }
|
|
set { SetProperty(ref m_PlaceSoltItemsSource, value); }
|
|
}
|
|
}
|
|
|
|
|
|
- public ObservableCollection<int> PUFPickSoltItemsSource
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPickSoltItemsSource; }
|
|
|
|
- set { SetProperty(ref m_PUFPickSoltItemsSource, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public ObservableCollection<int> PUFPlaceSoltItemsSource
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPlaceSoltItemsSource; }
|
|
|
|
- set { SetProperty(ref m_PUFPlaceSoltItemsSource, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public ObservableCollection<int> ExtendSoltItemsSource
|
|
public ObservableCollection<int> ExtendSoltItemsSource
|
|
{
|
|
{
|
|
get { return m_ExtendSoltItemsSource; }
|
|
get { return m_ExtendSoltItemsSource; }
|
|
@@ -274,16 +230,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return m_PlaceSoltSelectedIndex; }
|
|
get { return m_PlaceSoltSelectedIndex; }
|
|
set { SetProperty(ref m_PlaceSoltSelectedIndex, value); }
|
|
set { SetProperty(ref m_PlaceSoltSelectedIndex, value); }
|
|
}
|
|
}
|
|
- public int PUFPickSoltSelectedIndex
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPickSoltSelectedIndex; }
|
|
|
|
- set { SetProperty(ref m_PUFPickSoltSelectedIndex, value); }
|
|
|
|
- }
|
|
|
|
- public int PUFPlaceSoltSelectedIndex
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPlaceSoltSelectedIndex; }
|
|
|
|
- set { SetProperty(ref m_PUFPlaceSoltSelectedIndex, value); }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public int ExtendSoltSelectedIndex
|
|
public int ExtendSoltSelectedIndex
|
|
{
|
|
{
|
|
get { return m_ExtendSoltSelectedIndex; }
|
|
get { return m_ExtendSoltSelectedIndex; }
|
|
@@ -304,16 +251,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return m_PlaceSelectedModule; }
|
|
get { return m_PlaceSelectedModule; }
|
|
set { SetProperty(ref m_PlaceSelectedModule, value); }
|
|
set { SetProperty(ref m_PlaceSelectedModule, value); }
|
|
}
|
|
}
|
|
- public EFEMModule PUFPickSelectedModule
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPickSelectedModule; }
|
|
|
|
- set { SetProperty(ref m_PUFPickSelectedModule, value); }
|
|
|
|
- }
|
|
|
|
- public EFEMModule PUFPlaceSelectedModule
|
|
|
|
- {
|
|
|
|
- get { return m_PUFPlaceSelectedModule; }
|
|
|
|
- set { SetProperty(ref m_PUFPlaceSelectedModule, value); }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public EFEMModule ExtendSelectedModule
|
|
public EFEMModule ExtendSelectedModule
|
|
{
|
|
{
|
|
get { return m_ExtendSelectedModule; }
|
|
get { return m_ExtendSelectedModule; }
|
|
@@ -334,29 +272,15 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return m_Aligner1Wafer; }
|
|
get { return m_Aligner1Wafer; }
|
|
set { SetProperty(ref m_Aligner1Wafer, value); }
|
|
set { SetProperty(ref m_Aligner1Wafer, value); }
|
|
}
|
|
}
|
|
-
|
|
|
|
- public WaferInfo Puf1Wafer
|
|
|
|
|
|
+ public WaferInfo VPW1Wafer
|
|
{
|
|
{
|
|
- get { return m_puf1Wafer; }
|
|
|
|
- set { SetProperty(ref m_puf1Wafer, value); }
|
|
|
|
|
|
+ get { return m_VPW1Wafer; }
|
|
|
|
+ set { SetProperty(ref m_VPW1Wafer, value); }
|
|
}
|
|
}
|
|
-
|
|
|
|
- public WaferInfo Puf2Wafer
|
|
|
|
|
|
+ public WaferInfo VPW2Wafer
|
|
{
|
|
{
|
|
- get { return m_puf2Wafer; }
|
|
|
|
- set { SetProperty(ref m_puf2Wafer, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public bool Puf1IsInstalled
|
|
|
|
- {
|
|
|
|
- get { return m_puf1IsInstalled; }
|
|
|
|
- set { SetProperty(ref m_puf1IsInstalled, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public bool Puf2IsInstalled
|
|
|
|
- {
|
|
|
|
- get { return m_puf2IsInstalled; }
|
|
|
|
- set { SetProperty(ref m_puf2IsInstalled, value); }
|
|
|
|
|
|
+ get { return m_VPW2Wafer; }
|
|
|
|
+ set { SetProperty(ref m_VPW2Wafer, value); }
|
|
}
|
|
}
|
|
|
|
|
|
public bool Srd1IsInstalled
|
|
public bool Srd1IsInstalled
|
|
@@ -371,28 +295,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
set { SetProperty(ref m_srd2IsInstalled, value); }
|
|
set { SetProperty(ref m_srd2IsInstalled, value); }
|
|
}
|
|
}
|
|
|
|
|
|
- public ModuleInfo Puf1ModuleInfo
|
|
|
|
- {
|
|
|
|
- get { return m_puf1ModuleInfo; }
|
|
|
|
- set { SetProperty(ref m_puf1ModuleInfo, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public ModuleInfo Puf2ModuleInfo
|
|
|
|
- {
|
|
|
|
- get { return m_puf2ModuleInfo; }
|
|
|
|
- set { SetProperty(ref m_puf2ModuleInfo, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public bool Puf1IsInRobotStation
|
|
|
|
- {
|
|
|
|
- get { return m_puf1IsInRobotStation; }
|
|
|
|
- set { SetProperty(ref m_puf1IsInRobotStation, value); }
|
|
|
|
- }
|
|
|
|
- public bool Puf2IsInRobotStation
|
|
|
|
- {
|
|
|
|
- get { return m_puf2IsInRobotStation; }
|
|
|
|
- set { SetProperty(ref m_puf2IsInRobotStation, value); }
|
|
|
|
- }
|
|
|
|
public bool IsAlignerVacuumOn
|
|
public bool IsAlignerVacuumOn
|
|
{
|
|
{
|
|
get { return _isAlignerVacuumOn; }
|
|
get { return _isAlignerVacuumOn; }
|
|
@@ -413,11 +315,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
get { return m_LP2Status; }
|
|
get { return m_LP2Status; }
|
|
set { SetProperty(ref m_LP2Status, value); }
|
|
set { SetProperty(ref m_LP2Status, value); }
|
|
}
|
|
}
|
|
- public string LP3Status
|
|
|
|
- {
|
|
|
|
- get { return m_LP3Status; }
|
|
|
|
- set { SetProperty(ref m_LP3Status, value); }
|
|
|
|
- }
|
|
|
|
|
|
|
|
public string SetLP1IDValue
|
|
public string SetLP1IDValue
|
|
{
|
|
{
|
|
@@ -447,12 +344,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
set { SetProperty(ref _setLP2CycleValue, value); }
|
|
set { SetProperty(ref _setLP2CycleValue, value); }
|
|
}
|
|
}
|
|
|
|
|
|
- public int SetLP3CycleValue
|
|
|
|
- {
|
|
|
|
- get { return _setLP3CycleValue; }
|
|
|
|
- set { SetProperty(ref _setLP3CycleValue, value); }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public Dictionary<string, object> RtDataValues
|
|
public Dictionary<string, object> RtDataValues
|
|
{
|
|
{
|
|
get { return m_RtDataValues; }
|
|
get { return m_RtDataValues; }
|
|
@@ -585,10 +476,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
public DelegateCommand RetractCommand =>
|
|
public DelegateCommand RetractCommand =>
|
|
_RetractCommand ?? (_RetractCommand = new DelegateCommand(OnRetract));
|
|
_RetractCommand ?? (_RetractCommand = new DelegateCommand(OnRetract));
|
|
|
|
|
|
- private DelegateCommand<object> _PUFModuleChangeCommand;
|
|
|
|
- public DelegateCommand<object> PUFModuleChangeCommand =>
|
|
|
|
- _PUFModuleChangeCommand ?? (_PUFModuleChangeCommand = new DelegateCommand<object>(OnPUFModuleChange));
|
|
|
|
-
|
|
|
|
private DelegateCommand<object> _ModuleChangeCommand;
|
|
private DelegateCommand<object> _ModuleChangeCommand;
|
|
public DelegateCommand<object> ModuleChangeCommand =>
|
|
public DelegateCommand<object> ModuleChangeCommand =>
|
|
_ModuleChangeCommand ?? (_ModuleChangeCommand = new DelegateCommand<object>(OnModuleChange));
|
|
_ModuleChangeCommand ?? (_ModuleChangeCommand = new DelegateCommand<object>(OnModuleChange));
|
|
@@ -610,14 +497,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
public DelegateCommand SetRobotSpeedCommand =>
|
|
public DelegateCommand SetRobotSpeedCommand =>
|
|
_SetRobotSpeedCommand ?? (_SetRobotSpeedCommand = new DelegateCommand(OnSetRobotSpeed));
|
|
_SetRobotSpeedCommand ?? (_SetRobotSpeedCommand = new DelegateCommand(OnSetRobotSpeed));
|
|
|
|
|
|
- private DelegateCommand<object> _PUFPickCommand;
|
|
|
|
- public DelegateCommand<object> PUFPickCommand =>
|
|
|
|
- _PUFPickCommand ?? (_PUFPickCommand = new DelegateCommand<object>(OnPUFPick));
|
|
|
|
-
|
|
|
|
- private DelegateCommand<object> _PUFPlaceCommand;
|
|
|
|
- public DelegateCommand<object> PUFPlaceCommand =>
|
|
|
|
- _PUFPlaceCommand ?? (_PUFPlaceCommand = new DelegateCommand<object>(OnPUFPlace));
|
|
|
|
-
|
|
|
|
|
|
|
|
private DelegateCommand _HomeAllCommand;
|
|
private DelegateCommand _HomeAllCommand;
|
|
public DelegateCommand HomeAllCommand =>
|
|
public DelegateCommand HomeAllCommand =>
|
|
@@ -692,11 +571,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
public DelegateCommand<object> LP2WriteIDCommand =>
|
|
public DelegateCommand<object> LP2WriteIDCommand =>
|
|
_LP2WriteIDCommand ?? (_LP2WriteIDCommand = new DelegateCommand<object>(OnLP2WriteID));
|
|
_LP2WriteIDCommand ?? (_LP2WriteIDCommand = new DelegateCommand<object>(OnLP2WriteID));
|
|
|
|
|
|
- private DelegateCommand<object> _LP3WriteIDCommand;
|
|
|
|
- public DelegateCommand<object> LP3WriteIDCommand =>
|
|
|
|
- _LP3WriteIDCommand ?? (_LP3WriteIDCommand = new DelegateCommand<object>(OnLP3WriteID));
|
|
|
|
-
|
|
|
|
-
|
|
|
|
private DelegateCommand<object> _LPClampCommand;
|
|
private DelegateCommand<object> _LPClampCommand;
|
|
public DelegateCommand<object> LPClampCommand =>
|
|
public DelegateCommand<object> LPClampCommand =>
|
|
_LPClampCommand ?? (_LPClampCommand = new DelegateCommand<object>(OnLPClamp));
|
|
_LPClampCommand ?? (_LPClampCommand = new DelegateCommand<object>(OnLPClamp));
|
|
@@ -742,8 +616,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
private ICommand _lP2CycleCommand;
|
|
private ICommand _lP2CycleCommand;
|
|
public ICommand LP2CycleCommand => _lP2CycleCommand ?? (_lP2CycleCommand = new DelegateCommand<object>(OnLP2CycleAction));
|
|
public ICommand LP2CycleCommand => _lP2CycleCommand ?? (_lP2CycleCommand = new DelegateCommand<object>(OnLP2CycleAction));
|
|
|
|
|
|
- private ICommand _lP3CycleCommand;
|
|
|
|
- public ICommand LP3CycleCommand => _lP3CycleCommand ?? (_lP3CycleCommand = new DelegateCommand<object>(OnLP3CycleAction));
|
|
|
|
private DelegateCommand _doorUnlockCommand;
|
|
private DelegateCommand _doorUnlockCommand;
|
|
public DelegateCommand DoorUnlockCommand =>
|
|
public DelegateCommand DoorUnlockCommand =>
|
|
_doorUnlockCommand ?? (_doorUnlockCommand = new DelegateCommand(OnDoorUnlock));
|
|
_doorUnlockCommand ?? (_doorUnlockCommand = new DelegateCommand(OnDoorUnlock));
|
|
@@ -774,8 +646,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
if (allModulesDictionary != null)
|
|
if (allModulesDictionary != null)
|
|
{
|
|
{
|
|
List<string> allModules = CommonFunction.GetValue<List<string>>(allModulesDictionary, "System.InstalledModules");
|
|
List<string> allModules = CommonFunction.GetValue<List<string>>(allModulesDictionary, "System.InstalledModules");
|
|
- Puf1IsInstalled = allModules.Contains("PUF1");
|
|
|
|
- Puf2IsInstalled = allModules.Contains("PUF2");
|
|
|
|
|
|
|
|
Srd1IsInstalled = allModules.Contains("SRD1");
|
|
Srd1IsInstalled = allModules.Contains("SRD1");
|
|
Srd2IsInstalled = allModules.Contains("SRD2");
|
|
Srd2IsInstalled = allModules.Contains("SRD2");
|
|
@@ -787,7 +657,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
timer.Start();
|
|
timer.Start();
|
|
EFEMModules.Add(EFEMModule.LP1);
|
|
EFEMModules.Add(EFEMModule.LP1);
|
|
EFEMModules.Add(EFEMModule.LP2);
|
|
EFEMModules.Add(EFEMModule.LP2);
|
|
- EFEMModules.Add(EFEMModule.LP3);
|
|
|
|
EFEMModules.Add(EFEMModule.Aligner1);
|
|
EFEMModules.Add(EFEMModule.Aligner1);
|
|
EFEMModules.Add(EFEMModule.PUF1);
|
|
EFEMModules.Add(EFEMModule.PUF1);
|
|
EFEMModules.Add(EFEMModule.PUF2);
|
|
EFEMModules.Add(EFEMModule.PUF2);
|
|
@@ -795,14 +664,14 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
EFEMModules.Add(EFEMModule.SRD2);
|
|
EFEMModules.Add(EFEMModule.SRD2);
|
|
EFEMModules.Add(EFEMModule.Dummy1);
|
|
EFEMModules.Add(EFEMModule.Dummy1);
|
|
EFEMModules.Add(EFEMModule.Dummy2);
|
|
EFEMModules.Add(EFEMModule.Dummy2);
|
|
-
|
|
|
|
- PUFModules.Add(EFEMModule.PUF1);
|
|
|
|
- PUFModules.Add(EFEMModule.PUF2);
|
|
|
|
-
|
|
|
|
|
|
+ EFEMModules.Add(EFEMModule.VPW1);
|
|
|
|
+ EFEMModules.Add(EFEMModule.VPW2);
|
|
|
|
+ EFEMModules.Add(EFEMModule.PlatingCell1);
|
|
|
|
+ EFEMModules.Add(EFEMModule.PlatingCell2);
|
|
|
|
+ EFEMModules.Add(EFEMModule.PlatingCell3);
|
|
|
|
+ EFEMModules.Add(EFEMModule.PlatingCell4);
|
|
OnModuleChange("Pick");
|
|
OnModuleChange("Pick");
|
|
OnModuleChange("Place");
|
|
OnModuleChange("Place");
|
|
- OnPUFModuleChange("Pick");
|
|
|
|
- OnPUFModuleChange("Place");
|
|
|
|
|
|
|
|
Init();
|
|
Init();
|
|
|
|
|
|
@@ -810,39 +679,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
#region 命令方法
|
|
#region 命令方法
|
|
- private void OnPUFModuleChange(object obj)
|
|
|
|
- {
|
|
|
|
- var value = obj.ToString();
|
|
|
|
- switch (value)
|
|
|
|
- {
|
|
|
|
- case "Pick":
|
|
|
|
- PUFPickSoltItemsSource.Clear();
|
|
|
|
- switch (PUFPickSelectedModule)
|
|
|
|
- {
|
|
|
|
- case EFEMModule.PUF1:
|
|
|
|
- case EFEMModule.PUF2:
|
|
|
|
- PUFPickSoltItemsSource.Add(1);
|
|
|
|
- PUFPickSoltItemsSource.Add(2);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- PUFPickSoltSelectedIndex = 0;
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case "Place":
|
|
|
|
- PUFPlaceSoltItemsSource.Clear();
|
|
|
|
- switch (PUFPlaceSelectedModule)
|
|
|
|
- {
|
|
|
|
- case EFEMModule.PUF1:
|
|
|
|
- case EFEMModule.PUF2:
|
|
|
|
- PUFPlaceSoltItemsSource.Add(1);
|
|
|
|
- PUFPlaceSoltItemsSource.Add(2);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- PUFPlaceSoltSelectedIndex = 0;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
private void OnModuleChange(object obj)
|
|
private void OnModuleChange(object obj)
|
|
{
|
|
{
|
|
var value = obj.ToString();
|
|
var value = obj.ToString();
|
|
@@ -852,11 +688,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
PickSoltItemsSource.Clear();
|
|
PickSoltItemsSource.Clear();
|
|
switch (PickSelectedModule)
|
|
switch (PickSelectedModule)
|
|
{
|
|
{
|
|
- case EFEMModule.PUF1:
|
|
|
|
- case EFEMModule.PUF2:
|
|
|
|
- PickSoltItemsSource.Add(1);
|
|
|
|
- PickSoltItemsSource.Add(2);
|
|
|
|
- break;
|
|
|
|
case EFEMModule.Dummy1:
|
|
case EFEMModule.Dummy1:
|
|
case EFEMModule.Dummy2:
|
|
case EFEMModule.Dummy2:
|
|
for (int i = 1; i < 17; i++)
|
|
for (int i = 1; i < 17; i++)
|
|
@@ -866,7 +697,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
break;
|
|
break;
|
|
case EFEMModule.LP1:
|
|
case EFEMModule.LP1:
|
|
case EFEMModule.LP2:
|
|
case EFEMModule.LP2:
|
|
- case EFEMModule.LP3:
|
|
|
|
|
|
|
|
for (int i = 1; i < 26; i++)
|
|
for (int i = 1; i < 26; i++)
|
|
{
|
|
{
|
|
@@ -900,8 +730,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
break;
|
|
break;
|
|
case EFEMModule.LP1:
|
|
case EFEMModule.LP1:
|
|
case EFEMModule.LP2:
|
|
case EFEMModule.LP2:
|
|
- case EFEMModule.LP3:
|
|
|
|
-
|
|
|
|
for (int i = 1; i < 26; i++)
|
|
for (int i = 1; i < 26; i++)
|
|
{
|
|
{
|
|
PlaceSoltItemsSource.Add(i);
|
|
PlaceSoltItemsSource.Add(i);
|
|
@@ -950,21 +778,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName.EfemRobot}.{EfemOperation.Place}", moveItems);
|
|
InvokeClient.Instance.Service.DoOperation($"{ModuleName.EfemRobot}.{EfemOperation.Place}", moveItems);
|
|
}
|
|
}
|
|
|
|
|
|
- private void OnPUFPick(object obj)
|
|
|
|
- {
|
|
|
|
- var moduleName = (ModuleName)Enum.Parse(typeof(ModuleName), PUFPickSelectedModule.ToString(), true);
|
|
|
|
- var PufSlot = PUFPickSoltSelectedIndex == 0 ? "SideA" : "SideB";
|
|
|
|
-
|
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{moduleName}.GotoRobotPositionForPick", PufSlot);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- private void OnPUFPlace(object obj)
|
|
|
|
- {
|
|
|
|
- var moduleName = (ModuleName)Enum.Parse(typeof(ModuleName), PUFPlaceSelectedModule.ToString(), true);
|
|
|
|
- var PufSlot = PUFPlaceSoltSelectedIndex == 0 ? "SideA" : "SideB";
|
|
|
|
-
|
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{moduleName}.GotoRobotPositionForPlace", PufSlot);
|
|
|
|
- }
|
|
|
|
private void OnHomeAll()
|
|
private void OnHomeAll()
|
|
{
|
|
{
|
|
InvokeClient.Instance.Service.DoOperation($"EFEM.{EfemOperation.Home}");
|
|
InvokeClient.Instance.Service.DoOperation($"EFEM.{EfemOperation.Home}");
|
|
@@ -1149,31 +962,12 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
InvokeClient.Instance.Service.DoOperation($"{obj.ToString()}.CycleLoadUnload", SetLP2CycleValue);
|
|
InvokeClient.Instance.Service.DoOperation($"{obj.ToString()}.CycleLoadUnload", SetLP2CycleValue);
|
|
}
|
|
}
|
|
|
|
|
|
- private void OnLP3CycleAction(object obj)
|
|
|
|
- {
|
|
|
|
- InvokeClient.Instance.Service.DoOperation($"{obj.ToString()}.CycleLoadUnload", SetLP3CycleValue);
|
|
|
|
- }
|
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
#region 私有方法
|
|
#region 私有方法
|
|
private void Timer_Tick(object sender, EventArgs e)
|
|
private void Timer_Tick(object sender, EventArgs e)
|
|
{
|
|
{
|
|
- if (Puf1IsInstalled)
|
|
|
|
- {
|
|
|
|
- if (ModuleManager.ModuleInfos["PUF1"].WaferManager.Wafers.Count != 0)
|
|
|
|
- {
|
|
|
|
- Puf1Wafer = ModuleManager.ModuleInfos["PUF1"].WaferManager.Wafers[0];
|
|
|
|
- }
|
|
|
|
- Puf1ModuleInfo = ModuleManager.ModuleInfos["PUF1"];
|
|
|
|
- }
|
|
|
|
- if (Puf2IsInstalled)
|
|
|
|
- {
|
|
|
|
- if (ModuleManager.ModuleInfos["PUF2"].WaferManager.Wafers.Count != 0)
|
|
|
|
- {
|
|
|
|
- Puf2Wafer = ModuleManager.ModuleInfos["PUF2"].WaferManager.Wafers[0];
|
|
|
|
- }
|
|
|
|
- Puf2ModuleInfo = ModuleManager.ModuleInfos["PUF2"];
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
if (Srd1IsInstalled)
|
|
if (Srd1IsInstalled)
|
|
{
|
|
{
|
|
if (ModuleManager.ModuleInfos["SRD1"].WaferManager.Wafers.Count != 0)
|
|
if (ModuleManager.ModuleInfos["SRD1"].WaferManager.Wafers.Count != 0)
|
|
@@ -1192,7 +986,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
}
|
|
}
|
|
LP1ModuleInfo = ModuleManager.ModuleInfos["LP1"];
|
|
LP1ModuleInfo = ModuleManager.ModuleInfos["LP1"];
|
|
LP2ModuleInfo = ModuleManager.ModuleInfos["LP2"];
|
|
LP2ModuleInfo = ModuleManager.ModuleInfos["LP2"];
|
|
- LP3ModuleInfo = ModuleManager.ModuleInfos["LP3"];
|
|
|
|
EFEMModuleInfo = ModuleManager.ModuleInfos["EfemRobot"];
|
|
EFEMModuleInfo = ModuleManager.ModuleInfos["EfemRobot"];
|
|
if (ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers.Count != 0)
|
|
if (ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers.Count != 0)
|
|
{
|
|
{
|
|
@@ -1202,20 +995,24 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
Aligner1Wafer = ModuleManager.ModuleInfos["Aligner1"].WaferManager.Wafers[0];
|
|
Aligner1Wafer = ModuleManager.ModuleInfos["Aligner1"].WaferManager.Wafers[0];
|
|
}
|
|
}
|
|
|
|
+ if (ModuleManager.ModuleInfos["VPW1"].WaferManager.Wafers.Count != 0)
|
|
|
|
+ {
|
|
|
|
+ VPW1Wafer = ModuleManager.ModuleInfos["VPW1"].WaferManager.Wafers[0];
|
|
|
|
+ }
|
|
|
|
+ if (ModuleManager.ModuleInfos["VPW2"].WaferManager.Wafers.Count != 0)
|
|
|
|
+ {
|
|
|
|
+ VPW2Wafer = ModuleManager.ModuleInfos["VPW2"].WaferManager.Wafers[0];
|
|
|
|
+ }
|
|
|
|
+
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
if(RtDataValues!=null)
|
|
if(RtDataValues!=null)
|
|
{
|
|
{
|
|
IsHomeAllEnable = !CommonFunction.GetValue<bool>(RtDataValues, "System.IsAutoMode");
|
|
IsHomeAllEnable = !CommonFunction.GetValue<bool>(RtDataValues, "System.IsAutoMode");
|
|
-
|
|
|
|
- Puf1IsInRobotStation = CommonFunction.GetValue<bool>(RtDataValues, "PUF1.IsInRobotStation");
|
|
|
|
- Puf2IsInRobotStation = CommonFunction.GetValue<bool>(RtDataValues, "PUF2.IsInRobotStation");
|
|
|
|
|
|
|
|
ControlJobInfo lp1Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP1.CurrentControlJob");
|
|
ControlJobInfo lp1Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP1.CurrentControlJob");
|
|
IsLP1HasNoJob = lp1Cj == null ? true : false;
|
|
IsLP1HasNoJob = lp1Cj == null ? true : false;
|
|
ControlJobInfo lp2Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP2.CurrentControlJob");
|
|
ControlJobInfo lp2Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP2.CurrentControlJob");
|
|
IsLP2HasNoJob = lp2Cj == null ? true : false;
|
|
IsLP2HasNoJob = lp2Cj == null ? true : false;
|
|
- ControlJobInfo lp3Cj = CommonFunction.GetValue<ControlJobInfo>(RtDataValues, "LP3.CurrentControlJob");
|
|
|
|
- IsLP3HasNoJob = lp3Cj == null ? true : false;
|
|
|
|
|
|
|
|
VacuumValue = CommonFunction.GetValue<double>(RtDataValues, "EFEM.VacuumValue");
|
|
VacuumValue = CommonFunction.GetValue<double>(RtDataValues, "EFEM.VacuumValue");
|
|
DoorUnlock = CommonFunction.GetValue<bool>(RtDataValues, "EFEM.DoorUnlock");
|
|
DoorUnlock = CommonFunction.GetValue<bool>(RtDataValues, "EFEM.DoorUnlock");
|
|
@@ -1229,8 +1026,7 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
Dummy2WaferCount = Dummy2ModuleInfo.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
Dummy2WaferCount = Dummy2ModuleInfo.WaferManager.Wafers.Where(x => x.WaferStatus != 0).Count();
|
|
|
|
|
|
IsLP1Unable = (bool)QueryDataClient.Instance.Service.GetConfig("EFEM.IsLoadPort1Unable");
|
|
IsLP1Unable = (bool)QueryDataClient.Instance.Service.GetConfig("EFEM.IsLoadPort1Unable");
|
|
- IsLP2Unable = (bool)QueryDataClient.Instance.Service.GetConfig("EFEM.IsLoadPort2Unable");
|
|
|
|
- IsLP3Unable = (bool)QueryDataClient.Instance.Service.GetConfig("EFEM.IsLoadPort3Unable");
|
|
|
|
|
|
+ IsLP2Unable = (bool)QueryDataClient.Instance.Service.GetConfig("EFEM.IsLoadPort2Unable");
|
|
}
|
|
}
|
|
private void Init()
|
|
private void Init()
|
|
{
|
|
{
|
|
@@ -1238,28 +1034,22 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.Status");
|
|
m_RtDataKeys.Add("LP1.Status");
|
|
m_RtDataKeys.Add("LP2.Status");
|
|
m_RtDataKeys.Add("LP2.Status");
|
|
- m_RtDataKeys.Add("LP3.Status");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.IsLoaded");
|
|
m_RtDataKeys.Add("LP1.IsLoaded");
|
|
m_RtDataKeys.Add("LP2.IsLoaded");
|
|
m_RtDataKeys.Add("LP2.IsLoaded");
|
|
- m_RtDataKeys.Add("LP3.IsLoaded");
|
|
|
|
-
|
|
|
|
|
|
+
|
|
m_RtDataKeys.Add("LP1.CarrierId");
|
|
m_RtDataKeys.Add("LP1.CarrierId");
|
|
m_RtDataKeys.Add("LP2.CarrierId");
|
|
m_RtDataKeys.Add("LP2.CarrierId");
|
|
- m_RtDataKeys.Add("LP3.CarrierId");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.IsClamped");
|
|
m_RtDataKeys.Add("LP1.IsClamped");
|
|
m_RtDataKeys.Add("LP2.IsClamped");
|
|
m_RtDataKeys.Add("LP2.IsClamped");
|
|
- m_RtDataKeys.Add("LP3.IsClamped");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.IsDocked");
|
|
m_RtDataKeys.Add("LP1.IsDocked");
|
|
- m_RtDataKeys.Add("LP2.IsDocked");
|
|
|
|
- m_RtDataKeys.Add("LP3.IsDocked");
|
|
|
|
|
|
+ m_RtDataKeys.Add("LP2.IsDocked");;
|
|
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.IsDoorOpened");
|
|
m_RtDataKeys.Add("LP1.IsDoorOpened");
|
|
m_RtDataKeys.Add("LP2.IsDoorOpened");
|
|
m_RtDataKeys.Add("LP2.IsDoorOpened");
|
|
- m_RtDataKeys.Add("LP3.IsDoorOpened");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("TM.LLATSlitDoor.IsClosed");
|
|
m_RtDataKeys.Add("TM.LLATSlitDoor.IsClosed");
|
|
m_RtDataKeys.Add("TM.LLBTSlitDoor.IsClosed");
|
|
m_RtDataKeys.Add("TM.LLBTSlitDoor.IsClosed");
|
|
@@ -1269,7 +1059,6 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.CassettePlaced");
|
|
m_RtDataKeys.Add("LP1.CassettePlaced");
|
|
m_RtDataKeys.Add("LP2.CassettePlaced");
|
|
m_RtDataKeys.Add("LP2.CassettePlaced");
|
|
- m_RtDataKeys.Add("LP3.CassettePlaced");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("Dummy1.CassettePlaced");
|
|
m_RtDataKeys.Add("Dummy1.CassettePlaced");
|
|
m_RtDataKeys.Add("Dummy2.CassettePlaced");
|
|
m_RtDataKeys.Add("Dummy2.CassettePlaced");
|
|
@@ -1279,11 +1068,9 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.CurrentControlJob");
|
|
m_RtDataKeys.Add("LP1.CurrentControlJob");
|
|
m_RtDataKeys.Add("LP2.CurrentControlJob");
|
|
m_RtDataKeys.Add("LP2.CurrentControlJob");
|
|
- m_RtDataKeys.Add("LP3.CurrentControlJob");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("LP1.WaferSize");
|
|
m_RtDataKeys.Add("LP1.WaferSize");
|
|
m_RtDataKeys.Add("LP2.WaferSize");
|
|
m_RtDataKeys.Add("LP2.WaferSize");
|
|
- m_RtDataKeys.Add("LP3.WaferSize");
|
|
|
|
|
|
|
|
m_RtDataKeys.Add("Dummy1.WaferSize");
|
|
m_RtDataKeys.Add("Dummy1.WaferSize");
|
|
m_RtDataKeys.Add("Dummy2.WaferSize");
|
|
m_RtDataKeys.Add("Dummy2.WaferSize");
|
|
@@ -1385,15 +1172,11 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
//await Task.Delay(1000);
|
|
//await Task.Delay(1000);
|
|
if(robotAction == RobotAction.Placing)
|
|
if(robotAction == RobotAction.Placing)
|
|
{
|
|
{
|
|
- if (waferRobotTAction == WaferRobotTAction.LP1 || waferRobotTAction == WaferRobotTAction.PUF1)
|
|
|
|
|
|
+ if (waferRobotTAction == WaferRobotTAction.LP1)
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Left_Place;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Left_Place;
|
|
}
|
|
}
|
|
- else if (waferRobotTAction == WaferRobotTAction.LP3)
|
|
|
|
- {
|
|
|
|
- CurrentRobotPosition = EFEM.RobotPosition.Right_Place;
|
|
|
|
- }
|
|
|
|
- else if (waferRobotTAction == WaferRobotTAction.LP2 || waferRobotTAction == WaferRobotTAction.PUF2)
|
|
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.LP2)
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Middle_Place;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Middle_Place;
|
|
}
|
|
}
|
|
@@ -1409,6 +1192,14 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Dummy_Place;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Dummy_Place;
|
|
}
|
|
}
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.VPW1 )
|
|
|
|
+ {
|
|
|
|
+ CurrentRobotPosition = EFEM.RobotPosition.VPW1;
|
|
|
|
+ }
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.VPW2)
|
|
|
|
+ {
|
|
|
|
+ CurrentRobotPosition = EFEM.RobotPosition.VPW2;
|
|
|
|
+ }
|
|
else
|
|
else
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Origin;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Origin;
|
|
@@ -1416,15 +1207,11 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- if (waferRobotTAction == WaferRobotTAction.LP1 || waferRobotTAction == WaferRobotTAction.PUF1)
|
|
|
|
|
|
+ if (waferRobotTAction == WaferRobotTAction.LP1)
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Left;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Left;
|
|
}
|
|
}
|
|
- else if (waferRobotTAction == WaferRobotTAction.LP3)
|
|
|
|
- {
|
|
|
|
- CurrentRobotPosition = EFEM.RobotPosition.Right;
|
|
|
|
- }
|
|
|
|
- else if (waferRobotTAction == WaferRobotTAction.LP2 || waferRobotTAction == WaferRobotTAction.PUF2)
|
|
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.LP2)
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Middle;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Middle;
|
|
}
|
|
}
|
|
@@ -1440,6 +1227,14 @@ namespace PunkHPX8_MainPages.ViewModels
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Dummy;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Dummy;
|
|
}
|
|
}
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.VPW1)
|
|
|
|
+ {
|
|
|
|
+ CurrentRobotPosition = EFEM.RobotPosition.VPW1;
|
|
|
|
+ }
|
|
|
|
+ else if (waferRobotTAction == WaferRobotTAction.VPW2)
|
|
|
|
+ {
|
|
|
|
+ CurrentRobotPosition = EFEM.RobotPosition.VPW2;
|
|
|
|
+ }
|
|
else
|
|
else
|
|
{
|
|
{
|
|
CurrentRobotPosition = EFEM.RobotPosition.Origin;
|
|
CurrentRobotPosition = EFEM.RobotPosition.Origin;
|