|
@@ -18,16 +18,22 @@ using System.Windows.Threading;
|
|
using Venus_Core;
|
|
using Venus_Core;
|
|
using Venus_MainPages.Unity;
|
|
using Venus_MainPages.Unity;
|
|
using Venus_Themes.CustomControls;
|
|
using Venus_Themes.CustomControls;
|
|
-using static Venus_Themes.CustomControls.SERobot;
|
|
|
|
|
|
+using static Venus_Themes.CustomControls.DERobot;
|
|
|
|
|
|
namespace Venus_MainPages.ViewModels
|
|
namespace Venus_MainPages.ViewModels
|
|
{
|
|
{
|
|
public class VenusDETMViewModel : BindableBase
|
|
public class VenusDETMViewModel : BindableBase
|
|
{
|
|
{
|
|
|
|
+ public enum DeTMModule
|
|
|
|
+ {
|
|
|
|
+ PMA, PMB, PMC, PMD, LP1, LP2, Aligner1
|
|
|
|
+ }
|
|
|
|
+ public enum DeTMBlade
|
|
|
|
+ {
|
|
|
|
+ Blade1, Blade2
|
|
|
|
+ }
|
|
#region 私有字段
|
|
#region 私有字段
|
|
- public double m_Alignerangle;
|
|
|
|
|
|
|
|
- private ModuleInfo m_VCEModuleInfo;
|
|
|
|
private ModuleInfo m_AlignerModuleInfo;
|
|
private ModuleInfo m_AlignerModuleInfo;
|
|
private ModuleInfo m_TMModuleInfo;
|
|
private ModuleInfo m_TMModuleInfo;
|
|
|
|
|
|
@@ -35,6 +41,8 @@ namespace Venus_MainPages.ViewModels
|
|
private WaferInfo m_PMAWafer;
|
|
private WaferInfo m_PMAWafer;
|
|
private WaferInfo m_PMBWafer;
|
|
private WaferInfo m_PMBWafer;
|
|
private WaferInfo m_PMCWafer;
|
|
private WaferInfo m_PMCWafer;
|
|
|
|
+ private WaferInfo m_PMDWafer;
|
|
|
|
+
|
|
public WaferInfo m_RobotUpperWafer;
|
|
public WaferInfo m_RobotUpperWafer;
|
|
public WaferInfo m_RobotLowerWafer;
|
|
public WaferInfo m_RobotLowerWafer;
|
|
public WaferInfo m_PAWafer;
|
|
public WaferInfo m_PAWafer;
|
|
@@ -43,20 +51,24 @@ namespace Venus_MainPages.ViewModels
|
|
private bool m_PMADoorIsOpen;
|
|
private bool m_PMADoorIsOpen;
|
|
private bool m_PMBDoorIsOpen;
|
|
private bool m_PMBDoorIsOpen;
|
|
private bool m_PMCDoorIsOpen;
|
|
private bool m_PMCDoorIsOpen;
|
|
- private bool m_VCEDoorIsOpen;
|
|
|
|
- private bool m_VCEOutDoorIsOpen;
|
|
|
|
|
|
+ private bool m_PMDDoorIsOpen;
|
|
|
|
|
|
|
|
+ private bool m_VCEADoorIsOpen;
|
|
|
|
+ private bool m_VCEBDoorIsOpen;
|
|
|
|
+ private bool m_VCEAOutDoorIsOpen;
|
|
|
|
+ private bool m_VCEBOutDoorIsOpen;
|
|
|
|
+ private bool m_IsAlignerOnRight;
|
|
//Pick、Place、Extend、Retract行下拉框内容
|
|
//Pick、Place、Extend、Retract行下拉框内容
|
|
- private SeTMModule m_PickSelectedModule;
|
|
|
|
- private SeTMModule m_PlaceSelectedModule;
|
|
|
|
- private SeTMModule m_ExtendSelectedModule;
|
|
|
|
- private SeTMModule m_RetractSelectedModule;
|
|
|
|
- private SeTMModule m_GotoSelectedModule;
|
|
|
|
- private SeTMBlade m_PickSelectedBlade;
|
|
|
|
- private SeTMBlade m_PlaceSelectedBlade;
|
|
|
|
- private SeTMBlade m_ExtendSelectedBlade;
|
|
|
|
- private SeTMBlade m_RetractSelectedBlade;
|
|
|
|
- private SeTMBlade m_GoToSelectedBlade;
|
|
|
|
|
|
+ private DeTMModule m_PickSelectedModule;
|
|
|
|
+ private DeTMModule m_PlaceSelectedModule;
|
|
|
|
+ private DeTMModule m_ExtendSelectedModule;
|
|
|
|
+ private DeTMModule m_RetractSelectedModule;
|
|
|
|
+ private DeTMModule m_GotoSelectedModule;
|
|
|
|
+ private DeTMBlade m_PickSelectedBlade;
|
|
|
|
+ private DeTMBlade m_PlaceSelectedBlade;
|
|
|
|
+ private DeTMBlade m_ExtendSelectedBlade;
|
|
|
|
+ private DeTMBlade m_RetractSelectedBlade;
|
|
|
|
+ private DeTMBlade m_GoToSelectedBlade;
|
|
|
|
|
|
|
|
|
|
//Pick、Place、Extend、Retract行下拉框关联
|
|
//Pick、Place、Extend、Retract行下拉框关联
|
|
@@ -71,22 +83,26 @@ namespace Venus_MainPages.ViewModels
|
|
|
|
|
|
|
|
|
|
//下拉框内容
|
|
//下拉框内容
|
|
- private List<SeTMModule> m_TMModules = new List<SeTMModule>();
|
|
|
|
|
|
+ private List<DeTMModule> m_TMModules = new List<DeTMModule>();
|
|
|
|
|
|
private bool m_PMAIsInstalled;
|
|
private bool m_PMAIsInstalled;
|
|
private bool m_PMBIsInstalled;
|
|
private bool m_PMBIsInstalled;
|
|
private bool m_PMCIsInstalled;
|
|
private bool m_PMCIsInstalled;
|
|
- private bool m_VCEIsInstalled;
|
|
|
|
|
|
+ private bool m_PMDIsInstalled;
|
|
|
|
+
|
|
|
|
+ private bool m_VCEAIsInstalled;
|
|
|
|
+ private bool m_VCEBIsInstalled;
|
|
|
|
+
|
|
private bool m_AlignerIsInstalled;
|
|
private bool m_AlignerIsInstalled;
|
|
private Dictionary<string, object> m_RtDataValues = new Dictionary<string, object>();
|
|
private Dictionary<string, object> m_RtDataValues = new Dictionary<string, object>();
|
|
private List<string> m_RtDataKeys = new List<string>();
|
|
private List<string> m_RtDataKeys = new List<string>();
|
|
|
|
|
|
//Robot动画
|
|
//Robot动画
|
|
- private SERobotTAction m_SERobotTAction;
|
|
|
|
- private SERobotTAction m_Robot1TAction;
|
|
|
|
- private SERobotXAction m_Robot1XAction;
|
|
|
|
- private SERobotTAction m_Robot2TAction;
|
|
|
|
- private SERobotXAction m_Robot2XAction;
|
|
|
|
|
|
+ private DERobotTAction m_DERobotTAction;
|
|
|
|
+ private DERobotTAction m_Robot1TAction;
|
|
|
|
+ private DERobotXAction m_Robot1XAction;
|
|
|
|
+ private DERobotTAction m_Robot2TAction;
|
|
|
|
+ private DERobotXAction m_Robot2XAction;
|
|
public RobotMoveInfo m_robotMoveInfo;
|
|
public RobotMoveInfo m_robotMoveInfo;
|
|
//Cycle
|
|
//Cycle
|
|
private List<string> m_OriginalCycle = new List<string>();
|
|
private List<string> m_OriginalCycle = new List<string>();
|
|
@@ -96,17 +112,13 @@ namespace Venus_MainPages.ViewModels
|
|
private bool m_PMAIsCycle;
|
|
private bool m_PMAIsCycle;
|
|
private bool m_PMBIsCycle;
|
|
private bool m_PMBIsCycle;
|
|
private bool m_PMCIsCycle;
|
|
private bool m_PMCIsCycle;
|
|
|
|
+ private bool m_PMDIsCycle;
|
|
|
|
|
|
private int m_CycleCount;
|
|
private int m_CycleCount;
|
|
|
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
#region 属性
|
|
#region 属性
|
|
- public double Alignerangle
|
|
|
|
- {
|
|
|
|
- get { return m_Alignerangle; }
|
|
|
|
- set { SetProperty(ref m_Alignerangle, value); }
|
|
|
|
- }
|
|
|
|
public WaferInfo PMAWafer
|
|
public WaferInfo PMAWafer
|
|
{
|
|
{
|
|
get { return m_PMAWafer; }
|
|
get { return m_PMAWafer; }
|
|
@@ -122,6 +134,11 @@ namespace Venus_MainPages.ViewModels
|
|
get { return m_PMCWafer; }
|
|
get { return m_PMCWafer; }
|
|
set { SetProperty(ref m_PMCWafer, value); }
|
|
set { SetProperty(ref m_PMCWafer, value); }
|
|
}
|
|
}
|
|
|
|
+ public WaferInfo PMDWafer
|
|
|
|
+ {
|
|
|
|
+ get { return m_PMDWafer; }
|
|
|
|
+ set { SetProperty(ref m_PMDWafer, value); }
|
|
|
|
+ }
|
|
public WaferInfo RobotUpperWafer
|
|
public WaferInfo RobotUpperWafer
|
|
{
|
|
{
|
|
get { return m_RobotUpperWafer; }
|
|
get { return m_RobotUpperWafer; }
|
|
@@ -138,9 +155,13 @@ namespace Venus_MainPages.ViewModels
|
|
get { return m_PAWafer; }
|
|
get { return m_PAWafer; }
|
|
set { SetProperty(ref m_PAWafer, value); }
|
|
set { SetProperty(ref m_PAWafer, value); }
|
|
}
|
|
}
|
|
- public bool VCEDoorIsOpen { get => m_VCEDoorIsOpen; set => SetProperty(ref m_VCEDoorIsOpen, value); }
|
|
|
|
- public bool VCEOutDoorIsOpen { get => m_VCEOutDoorIsOpen; set => SetProperty(ref m_VCEOutDoorIsOpen, value); }
|
|
|
|
|
|
+ public bool IsAligner1OnRight { get => m_IsAlignerOnRight; set => SetProperty(ref m_IsAlignerOnRight, value); }
|
|
|
|
|
|
|
|
+ public bool VCEADoorIsOpen { get => m_VCEADoorIsOpen; set => SetProperty(ref m_VCEADoorIsOpen, value); }
|
|
|
|
+ public bool VCEBDoorIsOpen { get => m_VCEBDoorIsOpen; set => SetProperty(ref m_VCEBDoorIsOpen, value); }
|
|
|
|
+ public bool VCEAOutDoorIsOpen { get => m_VCEAOutDoorIsOpen; set => SetProperty(ref m_VCEAOutDoorIsOpen, value); }
|
|
|
|
+ public bool VCEBOutDoorIsOpen { get => m_VCEBOutDoorIsOpen; set => SetProperty(ref m_VCEBOutDoorIsOpen, value); }
|
|
|
|
+ public bool PMDDoorIsOpen { get => m_PMDDoorIsOpen; set => SetProperty(ref m_PMDDoorIsOpen, value); }
|
|
|
|
|
|
public bool PMCDoorIsOpen
|
|
public bool PMCDoorIsOpen
|
|
{
|
|
{
|
|
@@ -161,14 +182,7 @@ namespace Venus_MainPages.ViewModels
|
|
get { return m_PMBDoorIsOpen; }
|
|
get { return m_PMBDoorIsOpen; }
|
|
set { SetProperty(ref m_PMBDoorIsOpen, value); }
|
|
set { SetProperty(ref m_PMBDoorIsOpen, value); }
|
|
}
|
|
}
|
|
- public ModuleInfo VCEModuleInfo
|
|
|
|
- {
|
|
|
|
- get { return m_VCEModuleInfo; }
|
|
|
|
- set
|
|
|
|
- {
|
|
|
|
- SetProperty(ref m_VCEModuleInfo, value);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
public ModuleInfo AlignerModuleInfo
|
|
public ModuleInfo AlignerModuleInfo
|
|
{
|
|
{
|
|
get { return m_AlignerModuleInfo; }
|
|
get { return m_AlignerModuleInfo; }
|
|
@@ -198,10 +212,26 @@ namespace Venus_MainPages.ViewModels
|
|
get { return m_PMCIsInstalled; }
|
|
get { return m_PMCIsInstalled; }
|
|
set { SetProperty(ref m_PMCIsInstalled, value); }
|
|
set { SetProperty(ref m_PMCIsInstalled, value); }
|
|
}
|
|
}
|
|
- public bool VCEIsInstalled
|
|
|
|
|
|
+ public bool PMDIsInstalled
|
|
|
|
+ {
|
|
|
|
+ get { return m_PMDIsInstalled; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref m_PMDIsInstalled, value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ public bool VCEAIsInstalled
|
|
{
|
|
{
|
|
- get { return m_VCEIsInstalled; }
|
|
|
|
- set { SetProperty(ref m_VCEIsInstalled, value); }
|
|
|
|
|
|
+ get { return m_VCEAIsInstalled; }
|
|
|
|
+ set { SetProperty(ref m_VCEAIsInstalled, value); }
|
|
|
|
+ }
|
|
|
|
+ public bool VCEBIsInstalled
|
|
|
|
+ {
|
|
|
|
+ get { return m_VCEBIsInstalled; }
|
|
|
|
+ set
|
|
|
|
+ {
|
|
|
|
+ SetProperty(ref m_VCEBIsInstalled, value);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
public bool AlignerIsInstalled
|
|
public bool AlignerIsInstalled
|
|
{
|
|
{
|
|
@@ -209,34 +239,34 @@ namespace Venus_MainPages.ViewModels
|
|
set { SetProperty(ref m_AlignerIsInstalled, value); }
|
|
set { SetProperty(ref m_AlignerIsInstalled, value); }
|
|
}
|
|
}
|
|
|
|
|
|
- public List<SeTMModule> TMModules
|
|
|
|
|
|
+ public List<DeTMModule> TMModules
|
|
{
|
|
{
|
|
get { return m_TMModules; }
|
|
get { return m_TMModules; }
|
|
set { SetProperty(ref m_TMModules, value); }
|
|
set { SetProperty(ref m_TMModules, value); }
|
|
}
|
|
}
|
|
|
|
|
|
//Module属性
|
|
//Module属性
|
|
- public SeTMModule PickSelectedModule
|
|
|
|
|
|
+ public DeTMModule PickSelectedModule
|
|
{
|
|
{
|
|
get { return m_PickSelectedModule; }
|
|
get { return m_PickSelectedModule; }
|
|
set { SetProperty(ref m_PickSelectedModule, value); }
|
|
set { SetProperty(ref m_PickSelectedModule, value); }
|
|
}
|
|
}
|
|
- public SeTMModule PlaceSelectedModule
|
|
|
|
|
|
+ public DeTMModule PlaceSelectedModule
|
|
{
|
|
{
|
|
get { return m_PlaceSelectedModule; }
|
|
get { return m_PlaceSelectedModule; }
|
|
set { SetProperty(ref m_PlaceSelectedModule, value); }
|
|
set { SetProperty(ref m_PlaceSelectedModule, value); }
|
|
}
|
|
}
|
|
- public SeTMModule ExtendSelectedModule
|
|
|
|
|
|
+ public DeTMModule ExtendSelectedModule
|
|
{
|
|
{
|
|
get { return m_ExtendSelectedModule; }
|
|
get { return m_ExtendSelectedModule; }
|
|
set { SetProperty(ref m_ExtendSelectedModule, value); }
|
|
set { SetProperty(ref m_ExtendSelectedModule, value); }
|
|
}
|
|
}
|
|
- public SeTMModule RetractSelectedModule
|
|
|
|
|
|
+ public DeTMModule RetractSelectedModule
|
|
{
|
|
{
|
|
get { return m_RetractSelectedModule; }
|
|
get { return m_RetractSelectedModule; }
|
|
set { SetProperty(ref m_RetractSelectedModule, value); }
|
|
set { SetProperty(ref m_RetractSelectedModule, value); }
|
|
}
|
|
}
|
|
- public SeTMModule GotoSelectedModule
|
|
|
|
|
|
+ public DeTMModule GotoSelectedModule
|
|
{
|
|
{
|
|
get { return m_GotoSelectedModule; }
|
|
get { return m_GotoSelectedModule; }
|
|
set { SetProperty(ref m_GotoSelectedModule, value); }
|
|
set { SetProperty(ref m_GotoSelectedModule, value); }
|
|
@@ -250,27 +280,27 @@ namespace Venus_MainPages.ViewModels
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//Blade属性
|
|
//Blade属性
|
|
- public SeTMBlade PickSelectedBlade
|
|
|
|
|
|
+ public DeTMBlade PickSelectedBlade
|
|
{
|
|
{
|
|
get { return m_PickSelectedBlade; }
|
|
get { return m_PickSelectedBlade; }
|
|
set { SetProperty(ref m_PickSelectedBlade, value); }
|
|
set { SetProperty(ref m_PickSelectedBlade, value); }
|
|
}
|
|
}
|
|
- public SeTMBlade PlaceSelectedBlade
|
|
|
|
|
|
+ public DeTMBlade PlaceSelectedBlade
|
|
{
|
|
{
|
|
get { return m_PlaceSelectedBlade; }
|
|
get { return m_PlaceSelectedBlade; }
|
|
set { SetProperty(ref m_PlaceSelectedBlade, value); }
|
|
set { SetProperty(ref m_PlaceSelectedBlade, value); }
|
|
}
|
|
}
|
|
- public SeTMBlade ExtendSelectedBlade
|
|
|
|
|
|
+ public DeTMBlade ExtendSelectedBlade
|
|
{
|
|
{
|
|
get { return m_ExtendSelectedBlade; }
|
|
get { return m_ExtendSelectedBlade; }
|
|
set { SetProperty(ref m_ExtendSelectedBlade, value); }
|
|
set { SetProperty(ref m_ExtendSelectedBlade, value); }
|
|
}
|
|
}
|
|
- public SeTMBlade RetractSelectedBlade
|
|
|
|
|
|
+ public DeTMBlade RetractSelectedBlade
|
|
{
|
|
{
|
|
get { return m_RetractSelectedBlade; }
|
|
get { return m_RetractSelectedBlade; }
|
|
set { SetProperty(ref m_RetractSelectedBlade, value); }
|
|
set { SetProperty(ref m_RetractSelectedBlade, value); }
|
|
}
|
|
}
|
|
- public SeTMBlade GoToSelectedBlade
|
|
|
|
|
|
+ public DeTMBlade GoToSelectedBlade
|
|
{
|
|
{
|
|
get { return m_GoToSelectedBlade; }
|
|
get { return m_GoToSelectedBlade; }
|
|
set { SetProperty(ref m_GoToSelectedBlade, value); }
|
|
set { SetProperty(ref m_GoToSelectedBlade, value); }
|
|
@@ -317,27 +347,27 @@ namespace Venus_MainPages.ViewModels
|
|
set { SetProperty(ref m_RetractSoltSelectedIndex, value); }
|
|
set { SetProperty(ref m_RetractSoltSelectedIndex, value); }
|
|
}
|
|
}
|
|
//Robot动作
|
|
//Robot动作
|
|
- public SERobotTAction SERobotTAction
|
|
|
|
|
|
+ public DERobotTAction DERobotTAction
|
|
{
|
|
{
|
|
- get { return m_SERobotTAction; }
|
|
|
|
- set { SetProperty(ref m_SERobotTAction, value); }
|
|
|
|
|
|
+ get { return m_DERobotTAction; }
|
|
|
|
+ set { SetProperty(ref m_DERobotTAction, value); }
|
|
}
|
|
}
|
|
- public SERobotTAction Robot1TAction
|
|
|
|
|
|
+ public DERobotTAction Robot1TAction
|
|
{
|
|
{
|
|
get { return m_Robot1TAction; }
|
|
get { return m_Robot1TAction; }
|
|
set { SetProperty(ref m_Robot1TAction, value); }
|
|
set { SetProperty(ref m_Robot1TAction, value); }
|
|
}
|
|
}
|
|
- public SERobotXAction Robot1XAction
|
|
|
|
|
|
+ public DERobotXAction Robot1XAction
|
|
{
|
|
{
|
|
get { return m_Robot1XAction; }
|
|
get { return m_Robot1XAction; }
|
|
set { SetProperty(ref m_Robot1XAction, value); }
|
|
set { SetProperty(ref m_Robot1XAction, value); }
|
|
}
|
|
}
|
|
- public SERobotTAction Robot2TAction
|
|
|
|
|
|
+ public DERobotTAction Robot2TAction
|
|
{
|
|
{
|
|
get { return m_Robot2TAction; }
|
|
get { return m_Robot2TAction; }
|
|
set { SetProperty(ref m_Robot2TAction, value); }
|
|
set { SetProperty(ref m_Robot2TAction, value); }
|
|
}
|
|
}
|
|
- public SERobotXAction Robot2XAction
|
|
|
|
|
|
+ public DERobotXAction Robot2XAction
|
|
{
|
|
{
|
|
get { return m_Robot2XAction; }
|
|
get { return m_Robot2XAction; }
|
|
set { SetProperty(ref m_Robot2XAction, value); }
|
|
set { SetProperty(ref m_Robot2XAction, value); }
|
|
@@ -348,7 +378,7 @@ namespace Venus_MainPages.ViewModels
|
|
set
|
|
set
|
|
{
|
|
{
|
|
RobotMoveInfoChanged(m_robotMoveInfo, value);
|
|
RobotMoveInfoChanged(m_robotMoveInfo, value);
|
|
- m_robotMoveInfo = value;
|
|
|
|
|
|
+ SetProperty(ref m_robotMoveInfo, value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//Cycle
|
|
//Cycle
|
|
@@ -382,6 +412,11 @@ namespace Venus_MainPages.ViewModels
|
|
get { return m_PMCIsCycle; }
|
|
get { return m_PMCIsCycle; }
|
|
set { SetProperty(ref m_PMCIsCycle, value); }
|
|
set { SetProperty(ref m_PMCIsCycle, value); }
|
|
}
|
|
}
|
|
|
|
+ public bool PMDIsCycle
|
|
|
|
+ {
|
|
|
|
+ get { return m_PMDIsCycle; }
|
|
|
|
+ set { SetProperty(ref m_PMDIsCycle, value); }
|
|
|
|
+ }
|
|
public int CycleCount
|
|
public int CycleCount
|
|
{
|
|
{
|
|
get { return m_CycleCount; }
|
|
get { return m_CycleCount; }
|
|
@@ -440,38 +475,41 @@ namespace Venus_MainPages.ViewModels
|
|
string allModules = QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules").ToString();
|
|
string allModules = QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules").ToString();
|
|
PMAIsInstalled = allModules.Contains("PMA");
|
|
PMAIsInstalled = allModules.Contains("PMA");
|
|
PMBIsInstalled = allModules.Contains("PMB");
|
|
PMBIsInstalled = allModules.Contains("PMB");
|
|
- //PMCIsInstalled = allModules.Contains("PMC");
|
|
|
|
- PMCIsInstalled = true;
|
|
|
|
- //VCEIsInstalled = allModules.Contains("VCE1");
|
|
|
|
- VCEIsInstalled = true;
|
|
|
|
- AlignerIsInstalled = true;
|
|
|
|
|
|
+ PMCIsInstalled = allModules.Contains("PMC");
|
|
|
|
+ PMDIsInstalled = allModules.Contains("PMD");
|
|
|
|
+ VCEAIsInstalled = allModules.Contains("VCEA");
|
|
|
|
+ VCEBIsInstalled = allModules.Contains("VCEB");
|
|
|
|
+ AlignerIsInstalled = allModules.Contains("Aligner");
|
|
|
|
+ IsAligner1OnRight = true;
|
|
if (PMAIsInstalled == true)
|
|
if (PMAIsInstalled == true)
|
|
{
|
|
{
|
|
- TMModules.Add(SeTMModule.PMA);
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.PMA);
|
|
}
|
|
}
|
|
if (PMBIsInstalled == true)
|
|
if (PMBIsInstalled == true)
|
|
{
|
|
{
|
|
- TMModules.Add(SeTMModule.PMB);
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.PMB);
|
|
}
|
|
}
|
|
if (PMCIsInstalled == true)
|
|
if (PMCIsInstalled == true)
|
|
{
|
|
{
|
|
- TMModules.Add(SeTMModule.PMC);
|
|
|
|
- m_Alignerangle = 270;
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.PMC);
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ if (PMDIsInstalled == true)
|
|
{
|
|
{
|
|
- m_Alignerangle = 180;
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.PMD);
|
|
|
|
+ IsAligner1OnRight = false;
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (VCEIsInstalled == true)
|
|
|
|
|
|
+ if (VCEAIsInstalled == true)
|
|
|
|
+ {
|
|
|
|
+ TMModules.Add(DeTMModule.LP1);
|
|
|
|
+ }
|
|
|
|
+ if (VCEBIsInstalled == true)
|
|
{
|
|
{
|
|
- TMModules.Add(SeTMModule.VCE1);
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.LP2);
|
|
}
|
|
}
|
|
if (AlignerIsInstalled == true)
|
|
if (AlignerIsInstalled == true)
|
|
{
|
|
{
|
|
- TMModules.Add(SeTMModule.Aligner1);
|
|
|
|
|
|
+ TMModules.Add(DeTMModule.Aligner1);
|
|
}
|
|
}
|
|
-
|
|
|
|
PickSoltItemsSource.Add(1);
|
|
PickSoltItemsSource.Add(1);
|
|
PlaceSoltItemsSource.Add(1);
|
|
PlaceSoltItemsSource.Add(1);
|
|
ExtendSoltItemsSource.Add(1);
|
|
ExtendSoltItemsSource.Add(1);
|
|
@@ -481,11 +519,12 @@ namespace Venus_MainPages.ViewModels
|
|
addDataKeys();
|
|
addDataKeys();
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
|
|
|
|
- VCEDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCESlitDoorClosed");
|
|
|
|
PMADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMASlitDoorClosed");
|
|
PMADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMASlitDoorClosed");
|
|
PMBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMBSlitDoorClosed");
|
|
PMBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMBSlitDoorClosed");
|
|
PMCDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMCSlitDoorClosed");
|
|
PMCDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMCSlitDoorClosed");
|
|
- VCEOutDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "VCE1.VCEOutDoorClosed");
|
|
|
|
|
|
+ PMDDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMDSlitDoorClosed");
|
|
|
|
+ VCEADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCEASlitDoorClosed");
|
|
|
|
+ VCEBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCEBSlitDoorClosed");
|
|
DispatcherTimer timer = new DispatcherTimer();
|
|
DispatcherTimer timer = new DispatcherTimer();
|
|
timer.Interval = TimeSpan.FromSeconds(0.5);
|
|
timer.Interval = TimeSpan.FromSeconds(0.5);
|
|
timer.Tick += Timer_Tick;
|
|
timer.Tick += Timer_Tick;
|
|
@@ -497,16 +536,19 @@ namespace Venus_MainPages.ViewModels
|
|
#region 命令方法
|
|
#region 命令方法
|
|
private void addDataKeys()
|
|
private void addDataKeys()
|
|
{
|
|
{
|
|
- m_RtDataKeys.Add($"TM.VCESlitDoorClosed");
|
|
|
|
|
|
+ m_RtDataKeys.Add($"TM.VCEASlitDoorClosed");
|
|
|
|
+ m_RtDataKeys.Add($"TM.VCEBSlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMASlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMASlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMBSlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMBSlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMCSlitDoorClosed");
|
|
m_RtDataKeys.Add($"TM.PMCSlitDoorClosed");
|
|
- m_RtDataKeys.Add($"VCE1.VCEOutDoorClosed");
|
|
|
|
|
|
+ m_RtDataKeys.Add($"TM.PMDSlitDoorClosed");
|
|
|
|
+ m_RtDataKeys.Add($"LP1.CassettePlaced");
|
|
|
|
+ m_RtDataKeys.Add($"LP2.CassettePlaced");
|
|
m_RtDataKeys.Add($"PMA.ChamberPressure");
|
|
m_RtDataKeys.Add($"PMA.ChamberPressure");
|
|
m_RtDataKeys.Add($"PMB.ChamberPressure");
|
|
m_RtDataKeys.Add($"PMB.ChamberPressure");
|
|
m_RtDataKeys.Add($"PMC.ChamberPressure");
|
|
m_RtDataKeys.Add($"PMC.ChamberPressure");
|
|
|
|
+ m_RtDataKeys.Add($"PMD.ChamberPressure");
|
|
m_RtDataKeys.Add($"TM.VCEPressure.Value");
|
|
m_RtDataKeys.Add($"TM.VCEPressure.Value");
|
|
- m_RtDataKeys.Add($"VCE1.CassetteArrive");
|
|
|
|
m_RtDataKeys.Add($"TMCycle.CycleIndex");
|
|
m_RtDataKeys.Add($"TMCycle.CycleIndex");
|
|
}
|
|
}
|
|
//模块选择根据obj选择下拉框内容
|
|
//模块选择根据obj选择下拉框内容
|
|
@@ -590,7 +632,7 @@ namespace Venus_MainPages.ViewModels
|
|
var selectedHand = (Hand)Enum.Parse(typeof(Hand), PickSelectedBlade.ToString(), true);
|
|
var selectedHand = (Hand)Enum.Parse(typeof(Hand), PickSelectedBlade.ToString(), true);
|
|
MoveItem moveItem = new MoveItem(moduleName, PickSoltItemsSource[PickSoltSelectedIndex] - 1, ModuleName.TMRobot, 0, selectedHand);
|
|
MoveItem moveItem = new MoveItem(moduleName, PickSoltItemsSource[PickSoltSelectedIndex] - 1, ModuleName.TMRobot, 0, selectedHand);
|
|
moveItems.Enqueue(moveItem);
|
|
moveItems.Enqueue(moveItem);
|
|
- if ((int)PickSelectedModule < TMModules.Count - 2)
|
|
|
|
|
|
+ if ((int)PickSelectedModule < TMModules.Count - 3)
|
|
{
|
|
{
|
|
InvokeClient.Instance.Service.DoOperation($"TM.PMPick", moveItems);
|
|
InvokeClient.Instance.Service.DoOperation($"TM.PMPick", moveItems);
|
|
}
|
|
}
|
|
@@ -607,7 +649,7 @@ namespace Venus_MainPages.ViewModels
|
|
var selectedHand = (Hand)Enum.Parse(typeof(Hand), PlaceSelectedBlade.ToString(), true);
|
|
var selectedHand = (Hand)Enum.Parse(typeof(Hand), PlaceSelectedBlade.ToString(), true);
|
|
MoveItem moveItem = new MoveItem(ModuleName.TMRobot, 0, moduleName, PlaceSoltItemsSource[PlaceSoltSelectedIndex] - 1, selectedHand);
|
|
MoveItem moveItem = new MoveItem(ModuleName.TMRobot, 0, moduleName, PlaceSoltItemsSource[PlaceSoltSelectedIndex] - 1, selectedHand);
|
|
moveItems.Enqueue(moveItem);
|
|
moveItems.Enqueue(moveItem);
|
|
- if ((int)PlaceSelectedModule < TMModules.Count - 2)
|
|
|
|
|
|
+ if ((int)PlaceSelectedModule < TMModules.Count - 3)
|
|
{
|
|
{
|
|
InvokeClient.Instance.Service.DoOperation($"TM.PMPlace", moveItems);
|
|
InvokeClient.Instance.Service.DoOperation($"TM.PMPlace", moveItems);
|
|
}
|
|
}
|
|
@@ -657,7 +699,7 @@ namespace Venus_MainPages.ViewModels
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<string> stations = new List<string>();
|
|
List<string> stations = new List<string>();
|
|
- stations.Add("VCE1");
|
|
|
|
|
|
+ stations.Add("VCEA");
|
|
stations.Add("Aligner1");
|
|
stations.Add("Aligner1");
|
|
if (PMAIsCycle == true)
|
|
if (PMAIsCycle == true)
|
|
{
|
|
{
|
|
@@ -671,7 +713,11 @@ namespace Venus_MainPages.ViewModels
|
|
{
|
|
{
|
|
stations.Add("PMC");
|
|
stations.Add("PMC");
|
|
}
|
|
}
|
|
- stations.Add("VCE1");
|
|
|
|
|
|
+ if (PMDIsCycle == true)
|
|
|
|
+ {
|
|
|
|
+ stations.Add("PMD");
|
|
|
|
+ }
|
|
|
|
+ stations.Add("VCEA");
|
|
InvokeClient.Instance.Service.DoOperation("System.SETMCycle", stations.ToArray(), CycleCount);
|
|
InvokeClient.Instance.Service.DoOperation("System.SETMCycle", stations.ToArray(), CycleCount);
|
|
|
|
|
|
}
|
|
}
|
|
@@ -688,11 +734,6 @@ namespace Venus_MainPages.ViewModels
|
|
private void Timer_Tick(object sender, EventArgs e)
|
|
private void Timer_Tick(object sender, EventArgs e)
|
|
{
|
|
{
|
|
TMModuleInfo = ModuleManager.ModuleInfos["TMRobot"];
|
|
TMModuleInfo = ModuleManager.ModuleInfos["TMRobot"];
|
|
- if (VCEIsInstalled)
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (PMAIsInstalled == true)
|
|
if (PMAIsInstalled == true)
|
|
{
|
|
{
|
|
ModuleInfo PMAModuleInfo = ModuleManager.ModuleInfos["PMA"];
|
|
ModuleInfo PMAModuleInfo = ModuleManager.ModuleInfos["PMA"];
|
|
@@ -708,13 +749,18 @@ namespace Venus_MainPages.ViewModels
|
|
ModuleInfo PMCModuleInfo = ModuleManager.ModuleInfos["PMC"];
|
|
ModuleInfo PMCModuleInfo = ModuleManager.ModuleInfos["PMC"];
|
|
PMCWafer = PMCModuleInfo.WaferManager.Wafers[0];
|
|
PMCWafer = PMCModuleInfo.WaferManager.Wafers[0];
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ if (PMDIsInstalled == true)
|
|
|
|
+ {
|
|
|
|
+ ModuleInfo PMDModuleInfo = ModuleManager.ModuleInfos["PMC"];
|
|
|
|
+ PMDWafer = PMDModuleInfo.WaferManager.Wafers[0];
|
|
|
|
+ }
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
|
|
- VCEDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCESlitDoorClosed");
|
|
|
|
PMADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMASlitDoorClosed");
|
|
PMADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMASlitDoorClosed");
|
|
PMBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMBSlitDoorClosed");
|
|
PMBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMBSlitDoorClosed");
|
|
PMCDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMCSlitDoorClosed");
|
|
PMCDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMCSlitDoorClosed");
|
|
- VCEOutDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "VCE1.VCEOutDoorClosed");
|
|
|
|
|
|
+ PMDDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.PMDSlitDoorClosed");
|
|
|
|
+ VCEADoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCEASlitDoorClosed");
|
|
|
|
+ VCEBDoorIsOpen = !CommonFunction.GetValue<bool>(RtDataValues, "TM.VCEBSlitDoorClosed");
|
|
RobotMoveInfo = (RobotMoveInfo)QueryDataClient.Instance.Service.GetData("TM.RobotMoveAction");
|
|
RobotMoveInfo = (RobotMoveInfo)QueryDataClient.Instance.Service.GetData("TM.RobotMoveAction");
|
|
PAWafer = ModuleManager.ModuleInfos["Aligner1"].WaferManager.Wafers[0];
|
|
PAWafer = ModuleManager.ModuleInfos["Aligner1"].WaferManager.Wafers[0];
|
|
RobotUpperWafer = TMModuleInfo.WaferManager.Wafers[0];
|
|
RobotUpperWafer = TMModuleInfo.WaferManager.Wafers[0];
|
|
@@ -744,26 +790,16 @@ namespace Venus_MainPages.ViewModels
|
|
var values = RobotTarget.Split('.');
|
|
var values = RobotTarget.Split('.');
|
|
var arm = values[0];
|
|
var arm = values[0];
|
|
var module = values[1];
|
|
var module = values[1];
|
|
- if (arm == "ArmA")
|
|
|
|
- {
|
|
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot1TAction)
|
|
|
|
- {
|
|
|
|
- Robot1TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- else if (arm == "ArmB")
|
|
|
|
|
|
+ var DERobotTAction = (DERobotTAction)Enum.Parse(typeof(DERobotTAction), module, true);
|
|
|
|
+ if (DERobotTAction != Robot1TAction || DERobotTAction != Robot2TAction)
|
|
{
|
|
{
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot2TAction)
|
|
|
|
- {
|
|
|
|
- Robot2TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
|
|
+ Robot1TAction = DERobotTAction;
|
|
|
|
+ Robot2TAction = DERobotTAction;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
- #region Aligner1、VCE1 Pick、Place
|
|
|
|
|
|
+ #region Aligner1、VCE Pick、Place
|
|
else if ((oldValue.Action == RobotAction.None || oldValue.ArmTarget != newValue.ArmTarget) && (newValue.Action == RobotAction.Placing || newValue.Action == RobotAction.Picking))
|
|
else if ((oldValue.Action == RobotAction.None || oldValue.ArmTarget != newValue.ArmTarget) && (newValue.Action == RobotAction.Placing || newValue.Action == RobotAction.Picking))
|
|
{
|
|
{
|
|
var TMRobotMoveActionBladeTarget = newValue.BladeTarget;
|
|
var TMRobotMoveActionBladeTarget = newValue.BladeTarget;
|
|
@@ -778,60 +814,62 @@ namespace Venus_MainPages.ViewModels
|
|
var values = RobotTarget.Split('.');
|
|
var values = RobotTarget.Split('.');
|
|
var arm = values[0];
|
|
var arm = values[0];
|
|
var module = values[1];
|
|
var module = values[1];
|
|
- //if (module == "VPA")
|
|
|
|
- //{
|
|
|
|
- // module = PMCIsInstalled ? "VPA" : "VPARight";
|
|
|
|
- //}
|
|
|
|
|
|
+ if (module == "Aligner1")
|
|
|
|
+ {
|
|
|
|
+ module = IsAligner1OnRight ? "PMD" : "Aligner1";
|
|
|
|
+ }
|
|
|
|
+ var DERobotTAction = (DERobotTAction)Enum.Parse(typeof(DERobotTAction), module, true);
|
|
|
|
+ if (DERobotTAction != Robot1TAction || DERobotTAction != Robot2TAction)
|
|
|
|
+ {
|
|
|
|
+ Robot1TAction = DERobotTAction;
|
|
|
|
+ Robot2TAction = DERobotTAction;
|
|
|
|
+ }
|
|
if (arm == "ArmA")
|
|
if (arm == "ArmA")
|
|
{
|
|
{
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot1TAction)
|
|
|
|
- {
|
|
|
|
- Robot1TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
await Task.Delay(600);
|
|
await Task.Delay(600);
|
|
-
|
|
|
|
- if (module == "VCE1")
|
|
|
|
|
|
+ if (module == "VCEA" || module == "VCEB")
|
|
{
|
|
{
|
|
- Robot1XAction = SERobotXAction.ToVCE;
|
|
|
|
|
|
+ Robot1XAction = DERobotXAction.ToVCE;
|
|
|
|
+ while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
|
|
|
|
+ {
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ }
|
|
|
|
+ Robot1XAction = DERobotXAction.FromVCE;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- Robot1XAction = SERobotXAction.Extend;
|
|
|
|
- }
|
|
|
|
- while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
|
|
|
|
- {
|
|
|
|
- await Task.Delay(100);
|
|
|
|
|
|
+ Robot1XAction = DERobotXAction.Extend;
|
|
|
|
+ while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[0].WaferStatus == 0))
|
|
|
|
+ {
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ }
|
|
|
|
+ Robot1XAction = DERobotXAction.Retract;
|
|
}
|
|
}
|
|
- Robot1XAction = SERobotXAction.Retract;
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
else if (arm == "ArmB")
|
|
else if (arm == "ArmB")
|
|
{
|
|
{
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot2TAction)
|
|
|
|
- {
|
|
|
|
- Robot2TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- //await Task.Delay(100);
|
|
|
|
- }
|
|
|
|
await Task.Delay(600);
|
|
await Task.Delay(600);
|
|
- if (module == "VCE1")
|
|
|
|
|
|
+ if (module == "VCEA" || module == "VCEB")
|
|
{
|
|
{
|
|
- Robot2XAction = SERobotXAction.ToVCE2;
|
|
|
|
|
|
+ Robot2XAction = DERobotXAction.ToVCE2;
|
|
|
|
+ while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
|
|
|
|
+ {
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ }
|
|
|
|
+ Robot2XAction = DERobotXAction.FromVCE2;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- Robot2XAction = SERobotXAction.Extend2;
|
|
|
|
- }
|
|
|
|
- while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
|
|
|
|
- {
|
|
|
|
- await Task.Delay(100);
|
|
|
|
|
|
+ Robot2XAction = DERobotXAction.Extend2;
|
|
|
|
+ while ((newValue.Action == RobotAction.Placing && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus != 0) || (newValue.Action == RobotAction.Picking && ModuleManager.ModuleInfos["TMRobot"].WaferManager.Wafers[1].WaferStatus == 0))
|
|
|
|
+ {
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ }
|
|
|
|
+ Robot2XAction = DERobotXAction.Retract2;
|
|
}
|
|
}
|
|
- Robot2XAction = SERobotXAction.Retract2;
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
@@ -850,35 +888,21 @@ namespace Venus_MainPages.ViewModels
|
|
var values = RobotTarget.Split('.');
|
|
var values = RobotTarget.Split('.');
|
|
var arm = values[0];
|
|
var arm = values[0];
|
|
var module = values[1];
|
|
var module = values[1];
|
|
|
|
+ var DERobotTAction = (DERobotTAction)Enum.Parse(typeof(DERobotTAction), module, true);
|
|
|
|
+ if (DERobotTAction != Robot1TAction || DERobotTAction != Robot2TAction)
|
|
|
|
+ {
|
|
|
|
+ Robot1TAction = DERobotTAction;
|
|
|
|
+ Robot2TAction = DERobotTAction;
|
|
|
|
+ }
|
|
if (arm == "ArmA")
|
|
if (arm == "ArmA")
|
|
{
|
|
{
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot1TAction)
|
|
|
|
- {
|
|
|
|
- Robot1TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- // await Task.Delay(100);
|
|
|
|
- }
|
|
|
|
await Task.Delay(600);
|
|
await Task.Delay(600);
|
|
-
|
|
|
|
- Robot1XAction = SERobotXAction.Extend;
|
|
|
|
|
|
+ Robot1XAction = DERobotXAction.Extend;
|
|
}
|
|
}
|
|
else if (arm == "ArmB")
|
|
else if (arm == "ArmB")
|
|
{
|
|
{
|
|
- var SERobotTAction = (SERobotTAction)Enum.Parse(typeof(SERobotTAction), module, true);
|
|
|
|
- if (SERobotTAction != Robot2TAction)
|
|
|
|
- {
|
|
|
|
- Robot2TAction = SERobotTAction;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- // await Task.Delay(100);
|
|
|
|
- }
|
|
|
|
await Task.Delay(600);
|
|
await Task.Delay(600);
|
|
-
|
|
|
|
- Robot2XAction = SERobotXAction.Extend2;
|
|
|
|
|
|
+ Robot2XAction = DERobotXAction.Extend2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -895,35 +919,39 @@ namespace Venus_MainPages.ViewModels
|
|
}
|
|
}
|
|
var values = RobotTarget.Split('.');
|
|
var values = RobotTarget.Split('.');
|
|
var arm = values[0];
|
|
var arm = values[0];
|
|
|
|
+ var module = values[1];
|
|
|
|
+
|
|
if (arm == "ArmA")
|
|
if (arm == "ArmA")
|
|
{
|
|
{
|
|
- Robot1XAction = SERobotXAction.Retract;
|
|
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ Robot1XAction = DERobotXAction.Retract;
|
|
}
|
|
}
|
|
else if (arm == "ArmB")
|
|
else if (arm == "ArmB")
|
|
{
|
|
{
|
|
- Robot2XAction = SERobotXAction.Retract2;
|
|
|
|
|
|
+ await Task.Delay(100);
|
|
|
|
+ Robot2XAction = DERobotXAction.Retract2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
#endregion
|
|
#region Home
|
|
#region Home
|
|
else if (oldValue.Action == RobotAction.None && newValue.Action == RobotAction.Homing)
|
|
else if (oldValue.Action == RobotAction.None && newValue.Action == RobotAction.Homing)
|
|
{
|
|
{
|
|
- if (Robot1XAction == SERobotXAction.Extend)
|
|
|
|
|
|
+ if (Robot1XAction == DERobotXAction.Extend)
|
|
{
|
|
{
|
|
- Robot1XAction = SERobotXAction.Retract;
|
|
|
|
|
|
+ Robot1XAction = DERobotXAction.Retract;
|
|
}
|
|
}
|
|
- if (Robot2XAction == SERobotXAction.Extend2)
|
|
|
|
|
|
+ if (Robot2XAction == DERobotXAction.Extend2)
|
|
{
|
|
{
|
|
- Robot2XAction = SERobotXAction.Retract2;
|
|
|
|
|
|
+ Robot2XAction = DERobotXAction.Retract2;
|
|
}
|
|
}
|
|
await Task.Delay(2000);
|
|
await Task.Delay(2000);
|
|
- if (Robot1TAction != SERobotTAction.T_Origin)
|
|
|
|
|
|
+ if (Robot1TAction != DERobotTAction.T_Origin)
|
|
{
|
|
{
|
|
- Robot1TAction = SERobotTAction.T_Origin;
|
|
|
|
|
|
+ Robot1TAction = DERobotTAction.T_Origin;
|
|
}
|
|
}
|
|
- if (Robot2TAction != SERobotTAction.T_Origin)
|
|
|
|
|
|
+ if (Robot2TAction != DERobotTAction.T_Origin)
|
|
{
|
|
{
|
|
- Robot2TAction = SERobotTAction.T_Origin;
|
|
|
|
|
|
+ Robot2TAction = DERobotTAction.T_Origin;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|