| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- 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;
 
- namespace Venus_RT.Modules.TM
 
- {
 
-     class MFVentRoutine : ModuleRoutineBase, IRoutine
 
-     {
 
-         private enum VentStep
 
-         {
 
-             kVenting,
 
-             kOpenSoftVent,
 
-             KSwitchFastVent,
 
-             KDelay2S,
 
-             kCloseVentValves,
 
-         }
 
-         private int _ventingTimeout;
 
-         private int _SoftVentEndPressure;
 
-         private readonly JetTM _JetTM;
 
-         public MFVentRoutine(JetTM jetTM, ModuleName mod) : base(mod)
 
-         {
 
-             _JetTM = jetTM;
 
-             Name = "Vent";
 
-         }
 
-         public RState Start(params object[] objs)
 
-         {
 
-             if (_JetTM.CheckLidClosed(Module) &&
 
-                 _JetTM.CheckPumpValveClosed(Module) &&
 
-                 _JetTM.CheckPurgeValveClosed(Module))
 
-             {
 
-                 Reset();
 
-                 _ventingTimeout = SC.GetValue<int>($"{Module}.VentingTimeout") * 1000;
 
-                 _SoftVentEndPressure= SC.GetValue<int>($"{Module}.SoftVentEndPressure");
 
-                 return Runner.Start(Module, Name);
 
-             }
 
-             return RState.Failed;
 
-         }
 
-         public RState Monitor()
 
-         {
 
-             //Runner.Run((int)VentStep.kVenting,          OpenVentValve,      IsPressureReady,    _ventingTimeout)
 
-             //    .End((int)VentStep.kCloseVentValves,    CloseVentValve,     _delay_50ms);
 
-             Runner.Run((int)VentStep.kOpenSoftVent,     OpenSoftVentValve,    IsSoftVentEnd)
 
-                   .Run((int)VentStep.KSwitchFastVent,   SwitchFastVentValve, IsPressureReady, _ventingTimeout)
 
-                   .Delay((int)VentStep.KDelay2S,        2*1000)
 
-                   .End((int)VentStep.kCloseVentValves,  CloseVentValve,        _delay_50ms);
 
-             return Runner.Status;
 
-         }
 
-         private bool OpenSoftVentValve()
 
-         {
 
-             _JetTM.TurnN2Valve(true);
 
-             _JetTM.TurnPurgeValve(Module, true);
 
-             return true;
 
-         }
 
-         private bool IsSoftVentEnd()
 
-         {
 
-            return _JetTM.GetModulePressure(Module) > _SoftVentEndPressure;
 
-         }
 
-         private bool SwitchFastVentValve()
 
-         {
 
-             if (Module == ModuleName.TM)
 
-             {
 
-                 _JetTM.TurnPurgeValve(Module, false);
 
-                 _JetTM.SetTMFlow(100);
 
-             }
 
-             _JetTM.TurnVentValve(Module, true);
 
-             return true;
 
-         }
 
-         private bool CloseVentValve()
 
-         {
 
-              _JetTM.TurnN2Valve(false);
 
-              _JetTM.TurnPurgeValve(Module, false);
 
-              _JetTM.TurnVentValve(Module, false);
 
-             if (Module == ModuleName.TM)
 
-             {
 
-                 _JetTM.SetTMFlow(0);
 
-             }
 
-             return true;
 
-         }
 
-         private bool IsPressureReady()
 
-         {
 
-             return _JetTM.IsModuleATM(Module);
 
-         }
 
-         public void Abort()
 
-         {
 
-             CloseVentValve();
 
-         }
 
-     }
 
- }
 
 
  |