Browse Source

1. Revise Job WaferInfo remain Bug;

niuyx 2 days ago
parent
commit
0adfb71380

+ 6 - 1
CyberX8_MainPages/Unity/WaferStatusHandler.cs

@@ -72,7 +72,12 @@ namespace CyberX8_MainPages.Unity
                         {
                             int index;
                             bool isCassettePresent = true;
-                            if (pair.Key.Contains("LP")) isCassettePresent = (bool)QueryDataClient.Instance.Service.GetData($"{pair.Key}.CassettePlaced");
+                            if (pair.Key.Contains("LP"))
+                            {
+                                isCassettePresent = (bool)QueryDataClient.Instance.Service.GetData($"{pair.Key}.CassettePlaced");
+                                if (!isCassettePresent) pair.Value.IsReset = true;
+                            }
+
                             for (int i = 0; i < mWafers.Count; i++)
                             {
                                 //status used in UI control

+ 35 - 3
CyberX8_MainPages/ViewModels/JobOperationViewModel.cs

@@ -503,6 +503,25 @@ namespace CyberX8_MainPages.ViewModels
             LP1WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP1"];
             LP2WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP2"];
             LP3WaferAssociation.ModuleData = ModuleManager.ModuleInfos["LP3"];
+
+            if (LP1WaferAssociation.ModuleData.WaferManager.IsReset)
+            {
+                ClearInfo(ref _lp1WaferAssociation);
+                _LP1SequenceNameBuffer = null;
+                LP1SequenceName = null;
+            }
+            if (LP2WaferAssociation.ModuleData.WaferManager.IsReset)
+            {
+                ClearInfo(ref _lp2WaferAssociation);
+                _LP2SequenceNameBuffer = null;
+                LP2SequenceName = null;
+            }
+            if (LP3WaferAssociation.ModuleData.WaferManager.IsReset)
+            {
+                ClearInfo(ref _lp3WaferAssociation);
+                _LP3SequenceNameBuffer = null;
+                LP3SequenceName = null;
+            }
         }
         /// <summary>
         /// 隐藏
@@ -584,7 +603,7 @@ namespace CyberX8_MainPages.ViewModels
                 LP1WaferAssociation.CycleNumber = 1;
                 LP1WaferAssociation.IsEnableCycle = false;
                 AssociateSequence(LP1WaferAssociation, false);
-
+                LP1WaferAssociation.ModuleData.WaferManager.IsReset = false;
             }
             _isLP2CassettePlaced = CommonFunction.GetValue<bool>(RtDataValues, "LP2.CassettePlaced");
             if (!_isLP2CassettePlaced && LP2WaferCount == 0)
@@ -598,7 +617,7 @@ namespace CyberX8_MainPages.ViewModels
                 LP2WaferAssociation.CycleNumber = 1;
                 LP2WaferAssociation.IsEnableCycle = false;
                 AssociateSequence(LP2WaferAssociation, false);
-
+                LP2WaferAssociation.ModuleData.WaferManager.IsReset = false;
             }
             _isLP3CassettePlaced = CommonFunction.GetValue<bool>(RtDataValues, "LP3.CassettePlaced");
             if (!_isLP3CassettePlaced && LP3WaferCount == 0)
@@ -612,7 +631,7 @@ namespace CyberX8_MainPages.ViewModels
                 LP3WaferAssociation.CycleNumber = 1;
                 LP3WaferAssociation.IsEnableCycle = false;
                 AssociateSequence(LP3WaferAssociation, false);
-
+                LP3WaferAssociation.ModuleData.WaferManager.IsReset = false;
             }
             LP1WaferAssociation.SequenceType = LP1RecipeMode ? "Production" : "Engineering";
             LP2WaferAssociation.SequenceType = LP2RecipeMode ? "Production" : "Engineering";
@@ -1026,6 +1045,19 @@ namespace CyberX8_MainPages.ViewModels
                     break;
             }
         }
+        /// <summary>
+        /// 清除信息
+        /// </summary>
+        /// <param name="info"></param>
+        private void ClearInfo(ref WaferAssociationInfo info)
+        {
+            info.LotId = "";
+            info.JobID = "";
+            info.SequenceName = "";
+            info.CycleNumber = 1;
+            info.IsEnableCycle = false;
+            info.ModuleData.WaferManager.IsReset = false;
+        }
         #endregion
     }
 }

+ 19 - 2
Framework/ClientBase/OpenSEMI.ClientBase/ModuleWaferManager.cs

@@ -13,7 +13,8 @@ namespace OpenSEMI.ClientBase
 
 		private List<WaferInfo> wafers;
 
-		public List<WaferInfo> Wafers
+        private bool isReset;
+        public List<WaferInfo> Wafers
 		{
 			get
 			{
@@ -58,7 +59,23 @@ namespace OpenSEMI.ClientBase
 			}
 		}
 
-		public ModuleWaferManager(string _mod)
+        public bool IsReset
+        {
+            get
+            {
+                return isReset;
+            }
+            set
+            {
+                if (isReset != value)
+                {
+                    isReset = value;
+                    RaisePropertyChangedEventImmediately("IsReset");
+                }
+            }
+        }
+
+        public ModuleWaferManager(string _mod)
 		{
 			ModuleID = _mod;
 			wafers = new List<WaferInfo>();