Procházet zdrojové kódy

fix the RouteManager instance initialize bug.

sangwq před 1 rokem
rodič
revize
d49b8f65dd

+ 1 - 1
Venus/Venus_RT/Devices/JetKepler2200APM.cs

@@ -639,7 +639,7 @@ namespace Venus_RT.Devices
         {
             if (open)
             {
-                if (Singleton<RouteManager>.Instance.IsATMMode)
+                if (RouteManager.IsATMMode)
                 {
                     if (!IsATM)
                     {

+ 1 - 1
Venus/Venus_RT/Devices/JetKepler2300PM.cs

@@ -690,7 +690,7 @@ namespace Venus_RT.Devices
         {
             if (open)
             {
-                if (Singleton<RouteManager>.Instance.IsATMMode)
+                if (RouteManager.IsATMMode)
                 {
                     if (!IsATM)
                     {

+ 1 - 1
Venus/Venus_RT/Devices/JetVenusPM.cs

@@ -657,7 +657,7 @@ namespace Venus_RT.Devices
         {
             if (open)
             {
-                if (Singleton<RouteManager>.Instance.IsATMMode)
+                if (RouteManager.IsATMMode)
                 {
                     if (!IsATM)
                     {

+ 2 - 2
Venus/Venus_RT/Devices/TM/JetTM.cs

@@ -377,7 +377,7 @@ namespace Venus_RT.Devices
                 return true;
             });
 
-            _TMVacAtmMode.TurnValve(Singleton<RouteManager>.Instance.IsATMMode, out string _);
+            _TMVacAtmMode.TurnValve(RouteManager.IsATMMode, out string _);
 
         }
 
@@ -700,7 +700,7 @@ namespace Venus_RT.Devices
 
             if (open)
             {
-                if (Singleton<RouteManager>.Instance.IsATMMode)
+                if (RouteManager.IsATMMode)
                 {
                     if (!IsTMATM)
                     {

+ 1 - 1
Venus/Venus_RT/Modules/AutoCycle.cs

@@ -286,7 +286,7 @@ namespace Venus_RT.Modules
                     return;
                 }
 
-                if (!Singleton<RouteManager>.Instance.IsATMMode && !CheckSequenceRecipeFileValid(pj.Sequence, out reason))
+                if (!RouteManager.IsATMMode && !CheckSequenceRecipeFileValid(pj.Sequence, out reason))
                 {
                     LOG.Write(eEvent.WARN_ROUTER, ModuleName.System, $"recipe file not valid in the sequence, {reason}");
                     _faCallback.JobCreateFailed(module, lotId, jobId, "");

+ 4 - 4
Venus/Venus_RT/Modules/LLs/LLEntity.cs

@@ -377,7 +377,7 @@ namespace Venus_RT.Modules
 
         private bool FnStartPrepareTM(object[] param)
         {
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
                 return true;
 
             return _pumpingRoutine.Start() == RState.Running;
@@ -385,7 +385,7 @@ namespace Venus_RT.Modules
 
         private bool FnPreparaTMTimeout(object[] param)
         {
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
             {
                 if (fsm.ElapsedTime > 10000)
                 {
@@ -416,7 +416,7 @@ namespace Venus_RT.Modules
 
         private bool FnStartPrepareEFEM(object[] param)
         {
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
                 return true;
 
             return _ventingRoutine.Start() == RState.Running;
@@ -424,7 +424,7 @@ namespace Venus_RT.Modules
 
         private bool FnPrepareEFEMTimeout(object[] param)
         {
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
             {
                 if (fsm.ElapsedTime > 10000)
                 {

+ 1 - 1
Venus/Venus_RT/Modules/PMs/LLPickRoutine.cs

@@ -53,7 +53,7 @@ namespace Venus_RT.Modules.PMs
                 return RState.Failed;
             }
 
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
             {
                 if (!_chamber.IsATM || !_chamber.IsATMLoadlock)
                 {

+ 2 - 2
Venus/Venus_RT/Modules/PMs/LLPlaceRoutine.cs

@@ -47,7 +47,7 @@ namespace Venus_RT.Modules.PMs
                 return RState.Failed;
             }
 
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
             {
                 if (!_chamber.IsATM || !_chamber.IsATMLoadlock)
                 {
@@ -115,7 +115,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool OpenFastPump()
         {
-            if (!Singleton<RouteManager>.Instance.IsATMMode)
+            if (!RouteManager.IsATMMode)
                 _chamber.OpenValve(ValveType.FastPump, true);
 
             return true;

+ 8 - 4
Venus/Venus_RT/Modules/RouteManager.cs

@@ -122,11 +122,16 @@ namespace Venus_RT.Modules
             }
         }
 
-        public bool IsATMMode
+        public static bool IsATMMode
         {
             get
             {
-                return _isATMMode;
+                if(_isATMMode == -1)
+                {
+                    _isATMMode = SC.GetValue<bool>("System.IsATMMode") ? 1 : 0;
+                }
+
+                return _isATMMode == 1;
             }
         }
 
@@ -136,7 +141,7 @@ namespace Venus_RT.Modules
         private ReturnAllWafer _returnWafer;
 
         private bool _isWaitUnload;
-        private bool _isATMMode;
+        private static int _isATMMode = -1;
 
         public RouteManager()
         {
@@ -168,7 +173,6 @@ namespace Venus_RT.Modules
 
             fsm = new StateMachine<RouteManager>(Name, (int)RtState.Init, 200);
 
-            _isATMMode = SC.GetValue<bool>("System.IsATMMode");
             SubscribeOperation();
             SubscribeDataVariable();
         }

+ 2 - 2
Venus/Venus_RT/Modules/Schedulers/SchedulerPM.cs

@@ -215,7 +215,7 @@ namespace Venus_RT.Scheduler
             _task = TaskType.Process;
             LogTaskStart(_task, $"recipe: {recipeName}, clean: {isCleanRecipe}, with wafer: {withWafer}");
 
-            if (Singleton<RouteManager>.Instance.IsATMMode)
+            if (RouteManager.IsATMMode)
             {
                 int time = SC.GetValue<int>("System.ATMCyclePMDelayTime");
                 _timerProcess.Start(time * 1000);
@@ -268,7 +268,7 @@ namespace Venus_RT.Scheduler
                 case TaskType.IdleCleanProcess:
                 case TaskType.PreJobProcess:
                 case TaskType.CompleteJobProcess:
-                    if (Singleton<RouteManager>.Instance.IsATMMode)
+                    if (RouteManager.IsATMMode)
                     {
                         ret = _timerProcess.IsTimeout() && _entity.IsIdle;