|
@@ -23,8 +23,12 @@ namespace Venus_MainPages.ViewModels
|
|
|
private bool m_TabIsChecked=true;
|
|
|
private ModuleInfo m_LP1ModuleInfo;
|
|
|
private ModuleInfo m_LP2ModuleInfo;
|
|
|
+ private ModuleInfo m_LLAModuleInfo;
|
|
|
+ private ModuleInfo m_LLBModuleInfo;
|
|
|
|
|
|
private ModuleInfo m_LP3ModuleInfo;
|
|
|
+ private ModuleInfo m_EFEMModuleInfo;
|
|
|
+ private ModuleInfo m_TMModuleInfo;
|
|
|
private WaferRobotTAction m_Robot1TAction;
|
|
|
private WaferRobotXAction m_Robot1XAction;
|
|
|
private WaferRobotTAction m_Robot2TAction;
|
|
@@ -76,6 +80,28 @@ namespace Venus_MainPages.ViewModels
|
|
|
get { return m_LP1ModuleInfo; }
|
|
|
set { SetProperty(ref m_LP1ModuleInfo, value); }
|
|
|
}
|
|
|
+
|
|
|
+ public ModuleInfo LLAModuleInfo
|
|
|
+ {
|
|
|
+ get { return m_LLAModuleInfo; }
|
|
|
+ set { SetProperty(ref m_LLAModuleInfo, value); }
|
|
|
+ }
|
|
|
+ public ModuleInfo LLBModuleInfo
|
|
|
+ {
|
|
|
+ get { return m_LLBModuleInfo; }
|
|
|
+ set { SetProperty(ref m_LLBModuleInfo, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ public ModuleInfo EFEMModuleInfo
|
|
|
+ {
|
|
|
+ get { return m_EFEMModuleInfo; }
|
|
|
+ set { SetProperty(ref m_EFEMModuleInfo, value); }
|
|
|
+ }
|
|
|
+ public ModuleInfo TMModuleInfo
|
|
|
+ {
|
|
|
+ get { return m_TMModuleInfo; }
|
|
|
+ set { SetProperty(ref m_TMModuleInfo, value); }
|
|
|
+ }
|
|
|
public ModuleInfo LP2ModuleInfo
|
|
|
{
|
|
|
get { return m_LP2ModuleInfo; }
|
|
@@ -246,6 +272,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
get { return _lp3WaferAssociation; }
|
|
|
set { SetProperty(ref _lp3WaferAssociation, value); }
|
|
|
}
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 命令
|
|
@@ -333,6 +360,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
LLAIsInstalled = allModules.Contains("LLA");
|
|
|
LLBIsInstalled = allModules.Contains("LLB");
|
|
|
EFEMIsInstalled = allModules.Contains("EFEM");
|
|
|
+ TMIsInstalled = allModules.Contains("TM");
|
|
|
UIEvents.PMDoorRaiseChangedEvent += UIEvents_PMDoorRaiseChangedEvent;
|
|
|
|
|
|
UIEvents.LLTDoorRaiseChangedEvent += UIEvents_LLTDoorRaiseChangedEvent;
|
|
@@ -377,7 +405,9 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
private void OnStart(object obj)
|
|
|
{
|
|
|
- InvokeClient.Instance.Service.DoOperation("System.StartJob", obj.ToString());
|
|
|
+ var info = obj as WaferAssociationInfo;
|
|
|
+
|
|
|
+ InvokeClient.Instance.Service.DoOperation("System.StartJob", info.LotId);
|
|
|
}
|
|
|
private void OnStop(object obj)
|
|
|
{
|
|
@@ -404,7 +434,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
private void OnReturnAllWafer()
|
|
|
{
|
|
|
- InvokeClient.Instance.Service.DoOperation("System.Abort");
|
|
|
+
|
|
|
+ InvokeClient.Instance.Service.DoOperation("ReturnWafer");
|
|
|
}
|
|
|
private void OnSetSequence()
|
|
|
{
|
|
@@ -420,6 +451,8 @@ namespace Venus_MainPages.ViewModels
|
|
|
if (string.IsNullOrEmpty(jobId))
|
|
|
jobId = "CJ_Local_" + info.ModuleData.ModuleID;
|
|
|
info.LotId = jobId;
|
|
|
+ info.JobID = jobId;
|
|
|
+ info.JobStatus = "WaitingForStart";
|
|
|
info.LotIdSaved = true;
|
|
|
|
|
|
Dictionary<string, object> param = new Dictionary<string, object>()
|
|
@@ -430,7 +463,6 @@ namespace Venus_MainPages.ViewModels
|
|
|
{"AutoStart", true},
|
|
|
};
|
|
|
InvokeClient.Instance.Service.DoOperation("System.CreateJob", param);
|
|
|
-
|
|
|
}
|
|
|
private void OnEnableAuto()
|
|
|
{
|
|
@@ -449,14 +481,17 @@ namespace Venus_MainPages.ViewModels
|
|
|
LP1ModuleInfo = ModuleManager.ModuleInfos["LP1"];
|
|
|
LP2ModuleInfo = ModuleManager.ModuleInfos["LP2"];
|
|
|
LP3ModuleInfo = ModuleManager.ModuleInfos["LP3"];
|
|
|
-
|
|
|
+ EFEMModuleInfo = ModuleManager.ModuleInfos["EfemRobot"];
|
|
|
+ TMModuleInfo = ModuleManager.ModuleInfos["TMRobot"];
|
|
|
|
|
|
if (LLAIsInstalled == true)
|
|
|
{
|
|
|
+ LLAModuleInfo = ModuleManager.ModuleInfos["LLA"];
|
|
|
LLAWafer = ModuleManager.ModuleInfos["LLA"].WaferManager.Wafers.FirstOrDefault(x => x.WaferStatus != 0);
|
|
|
}
|
|
|
if (LLBIsInstalled == true)
|
|
|
{
|
|
|
+ LLBModuleInfo = ModuleManager.ModuleInfos["LLB"];
|
|
|
LLBWafer = ModuleManager.ModuleInfos["LLB"].WaferManager.Wafers.FirstOrDefault(x => x.WaferStatus != 0);
|
|
|
}
|
|
|
if (PMAIsInstalled == true)
|
|
@@ -618,6 +653,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
private void AssociateSequence(WaferAssociationInfo info, bool flag, int slot = -1)
|
|
|
{
|
|
|
List<WaferInfo> wafers = info.ModuleData.WaferManager.Wafers;
|
|
|
+
|
|
|
if (slot >= 0) //by wafer
|
|
|
{
|
|
|
int index = wafers.Count - slot - 1;
|
|
@@ -643,6 +679,19 @@ namespace Venus_MainPages.ViewModels
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ switch (info.ModuleData.ModuleID)
|
|
|
+ {
|
|
|
+ case "LP1":
|
|
|
+ LP1WaferAssociation = info;
|
|
|
+ break;
|
|
|
+ case "LP2":
|
|
|
+ LP2WaferAssociation = info;
|
|
|
+ break;
|
|
|
+ case "LP3":
|
|
|
+ LP3WaferAssociation = info;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
private bool HasWaferOnSlot(List<WaferInfo> wafers, int index)
|
|
|
{
|