| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- using Aitex.Core.RT.Routine;
 
- using Aitex.Core.RT.SCCore;
 
- using Venus_RT.Devices;
 
- using MECF.Framework.Common.Routine;
 
- using MECF.Framework.Common.Equipment;
 
- using Venus_Core;
 
- using Aitex.Core.RT.Log;
 
- using Venus_RT.Modules.PMs;
 
- namespace Venus_RT.Modules.TM
 
- {
 
-     class MFHomeRoutine : ModuleRoutineBase, IRoutine
 
-     {
 
-         private enum HomeStep
 
-         {
 
-             kLidDelay,
 
-             kRobot,
 
-             kRobotDelay,
 
-             kSlitDoor,
 
-             kSlitDoorDelay,
 
-             kPump,
 
-             kPumpDelay,
 
-             kATMSwitch,
 
-             kEnd,
 
-         }
 
-         private int _robotHomingTimeout = 120*1000;
 
-         private int _slitDoorHomingTimeout = 20 * 1000;
 
-         private int _pumpHomingTimeout = 120 * 1000;
 
-         private int _pumpDownHomingTimeout = 600 * 1000;
 
-         private readonly JetTM _JetTM;
 
-         private readonly ITransferRobot _robot;
 
-         private readonly MFPumpRoutine _pumpDownRoutine;
 
-         public int currentStepNo;
 
-         public MFHomeRoutine(JetTM jetTM, ITransferRobot robot, MFPumpRoutine pumpDownRoutine) : base(ModuleName.TM)
 
-         {
 
-             _JetTM = jetTM;
 
-             _robot = robot;
 
-             _pumpDownRoutine= pumpDownRoutine;
 
-             Name = "TM Home";
 
-         }
 
-         public RState Start(params object[] objs)
 
-         {
 
-             currentStepNo = 0;
 
-             if (!_JetTM.CheckLidClosed(Module))
 
-             {
 
-                 Stop($"TM Lid Not Closed");
 
-                 return RState.Failed;
 
-             }
 
-             Reset();
 
-             _robotHomingTimeout = SC.GetValue<int>($"{Module}.HomeTimeout") * 1000;
 
-            
 
-             return Runner.Start(Module, Name);
 
-         }
 
-         public RState Monitor()
 
-         {
 
-             Runner.Delay((int)HomeStep.kLidDelay,500)
 
-                   .Run((int)HomeStep.kRobot,      HomeRobot,     CheckRobotReady,       _robotHomingTimeout)
 
-                   .Delay((int)HomeStep.kRobotDelay,500)
 
-                   .Run((int)HomeStep.kSlitDoor,   HomeSlitDoor,  CheckSlitDoorReady,    _slitDoorHomingTimeout)
 
-                   .Delay((int)HomeStep.kSlitDoorDelay,500)
 
-                   .Run((int)HomeStep.kPump,       HomePump,      CheckPumpReady,        _pumpHomingTimeout)
 
-                   .Delay((int)HomeStep.kPumpDelay,500)
 
-                   .Run((int)HomeStep.kATMSwitch,  HomePumpDown,  CheckATMSwitchReady,   _pumpDownHomingTimeout)
 
-                   .End((int)HomeStep.kEnd,      NullFun,    _delay_50ms);
 
-             return Runner.Status;
 
-         }
 
-         private bool HomeRobot()
 
-         {
 
-             currentStepNo = 1;
 
-             if (_robot.Status == RState.End)
 
-             {
 
-                 return true;
 
-             }
 
-             return _robot.Home();
 
-         }
 
-         private bool CheckRobotReady()
 
-         {
 
-             return _robot.Status == RState.End;
 
-         }
 
-         private bool HomeSlitDoor()
 
-         {
 
-             _JetTM.HomeSlitDoor();
 
-             currentStepNo = 2;
 
-           return  _JetTM.CloseAllSlitDoor();
 
-         }
 
-         private bool CheckSlitDoorReady()
 
-         {
 
-             if (_JetTM.AllPMSlitDoorClosed && _JetTM.IsLLASlitDoorClosed && _JetTM.IsLLBSlitDoorClosed)
 
-             {
 
-                 return true;
 
-             }
 
-             else
 
-             {
 
-                 return false;
 
-             }
 
-         }
 
-         private bool HomePump()
 
-         {
 
-             if (RouteManager.IsATMMode)
 
-                 return true;
 
-             currentStepNo = 3;
 
-             if ((bool)_JetTM.TMPumpIsRunning)
 
-             {
 
-                 return true;
 
-             }
 
-             return _JetTM.TurnTMPump(true);
 
-         }
 
-         private bool CheckPumpReady()
 
-         {
 
-             if (RouteManager.IsATMMode)
 
-                 return true;
 
-             if ((bool)_JetTM.TMPumpIsRunning)
 
-             {
 
-                 return true;
 
-             }
 
-             else
 
-             {
 
-                 return false;
 
-             }
 
-         }
 
-         private bool HomePumpDown()
 
-         {
 
-             if (RouteManager.IsATMMode)
 
-                 return true;
 
-             currentStepNo = 4;
 
-             return _pumpDownRoutine.Start() == RState.Running;
 
-         }
 
-         private bool CheckATMSwitchReady()
 
-         {
 
-             if (RouteManager.IsATMMode)
 
-                 return true;
 
-             var status = _pumpDownRoutine.Monitor();
 
-             if (_JetTM.IsTMVac && status == RState.End)
 
-             {
 
-                 _JetTM.TurnSoftPumpValve(ModuleName.TM, false);
 
-                 _JetTM.TurnFastPumpValve(ModuleName.TM, false);
 
-                 return true;
 
-             }
 
-             else
 
-             {
 
-                 //_pumpDownRoutine.Monitor();
 
-                 return false;
 
-             }
 
-         }
 
-         public void Abort()
 
-         {
 
-         }
 
-     }
 
- }
 
 
  |