Browse Source

update wafer holder task issue

chenkui 3 days ago
parent
commit
b0716031ba
1 changed files with 24 additions and 23 deletions
  1. 24 23
      CyberX8_RT/Dispatch/WaferHolderTaskManager.cs

+ 24 - 23
CyberX8_RT/Dispatch/WaferHolderTaskManager.cs

@@ -43,7 +43,7 @@ namespace CyberX8_RT.Dispatch
         /// </summary>
         public bool CreateWaferHolderTask(List<ProcessJobInfo> jobs)
         {
-            if (CheckEnableCreateWaferHolderTask())
+            if (!CheckEnableCreateWaferHolderTask())
             {
                 return false;
             }
@@ -253,39 +253,40 @@ namespace CyberX8_RT.Dispatch
         /// </summary>
         public void CreateDummyWaferHolderTask()
         {
+            if (!CheckEnableCreateWaferHolderTask())
+            {
+                return;
+            }
             List<WaferHolderInfo> waferHolderInfos = DummyWaferManager.Instance.LoadCompletedWaferHolderInfo();
 
             foreach (WaferHolderInfo waferHolderInfo in waferHolderInfos)
             {
                 if (CheckWaferHolderNotExist(waferHolderInfo))
                 {
-                    if (CheckEnableCreateWaferHolderTask())
+                    int waferTaskCount = 0;
+                    WaferInfo waferInfo = GetPreLoaderHasWafer();
+                    if (waferInfo == null)
                     {
-                        int waferTaskCount = 0;
-                        WaferInfo waferInfo = GetPreLoaderHasWafer();
-                        if (waferInfo == null)
+                        List<WaferInfo> waferInfos = DummyWaferManager.Instance.LoadDummyWafersByWaferHolder(waferHolderInfo);
+                        if (waferInfos.Count != 0)
                         {
-                            List<WaferInfo> waferInfos = DummyWaferManager.Instance.LoadDummyWafersByWaferHolder(waferHolderInfo);
-                            if (waferInfos.Count != 0)
+                            WaferHolderTask waferHolderTask = new WaferHolderTask(waferHolderInfo, null);
+                            waferHolderTask.OnTaskComplete += WaferHolderTask_OnTaskComplete;
+                            waferTaskCount = WaferTaskManager.Instance.CreateDummyWaferTask(waferInfos, waferHolderInfo.SequenceRecipe, waferHolderTask);                                
+                            if (waferTaskCount == 0)
                             {
-                                WaferHolderTask waferHolderTask = new WaferHolderTask(waferHolderInfo, null);
-                                waferHolderTask.OnTaskComplete += WaferHolderTask_OnTaskComplete;
-                                waferTaskCount = WaferTaskManager.Instance.CreateDummyWaferTask(waferInfos, waferHolderInfo.SequenceRecipe, waferHolderTask);                                
-                                if (waferTaskCount == 0)
-                                {
-                                    break;
-                                }
-
-                                _waferHolderTaskDic.TryAdd(waferHolderTask.ID, waferHolderTask);
-                                lock (_waferHolderTaskObject)
-                                {
-                                    _waferTaskList.Add(waferHolderTask);
-                                }
-                                LOG.WriteLog(eEvent.EV_SEQUENCE, "Scheduler", $"Create dummy wafer Shuttle {waferHolderInfo.Id} task");
-                                List<SchedulerSequence> sequences = SchedulerSequenceManager.Instance.AnalyseDummyWaferHolderAllSchedulerSequence(waferHolderInfo,0, waferTaskCount);
-                                waferHolderTask.InitialSchedulers(sequences);
                                 break;
                             }
+
+                            _waferHolderTaskDic.TryAdd(waferHolderTask.ID, waferHolderTask);
+                            lock (_waferHolderTaskObject)
+                            {
+                                _waferTaskList.Add(waferHolderTask);
+                            }
+                            LOG.WriteLog(eEvent.EV_SEQUENCE, "Scheduler", $"Create dummy wafer Shuttle {waferHolderInfo.Id} task");
+                            List<SchedulerSequence> sequences = SchedulerSequenceManager.Instance.AnalyseDummyWaferHolderAllSchedulerSequence(waferHolderInfo,0, waferTaskCount);
+                            waferHolderTask.InitialSchedulers(sequences);
+                            break;
                         }
                     }
                 }