| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- using Aitex.Core.Common;
 
- using MECF.Framework.Common.Equipment;
 
- using PunkHPX8_RT.Devices.EFEM;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using Aitex.Core.RT.Log;
 
- using Aitex.Core.RT.Routine;
 
- using Aitex.Sorter.Common;
 
- using MECF.Framework.Common.Schedulers;
 
- using MECF.Framework.Common.SubstrateTrackings;
 
- using System.Diagnostics;
 
- using PunkHPX8_Core;
 
- using Aitex.Core.RT.SCCore;
 
- using System.Threading;
 
- namespace PunkHPX8_RT.Modules.EFEM
 
- {
 
-     public class EfemVacuumRoutine : ModuleRoutineBase, IRoutine
 
-     {
 
-         private bool _vacuumStatus;
 
-         private ModuleName _vacuumModule;
 
-         private enum VacuumStep
 
-         {
 
-             VacuumAction,
 
-             End,
 
-         }
 
-         EfemBase _efem;
 
-         /// <summary>
 
-         /// 构造函数
 
-         /// </summary>
 
-         /// <param name="efem"></param>
 
-         public EfemVacuumRoutine(EfemBase efem) : base(ModuleName.EFEM)
 
-         {
 
-             _efem = efem;
 
-         }
 
-         /// <summary>
 
-         /// 启动
 
-         /// </summary>
 
-         /// <param name="objs"></param>
 
-         /// <returns></returns>
 
-         public RState Start(params object[] objs)
 
-         {
 
-             _vacuumModule = (ModuleName)objs[0];
 
-             _vacuumStatus = (bool)objs[1];
 
-             return Runner.Start(Module, "Vacumm");
 
-         }
 
-         /// <summary>
 
-         /// 监控
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         public RState Monitor()
 
-         {
 
-             Runner.Run(VacuumStep.VacuumAction, ()=> { return Vacuum(_vacuumModule, _vacuumStatus);}, CheckVacuumDone, 30000)
 
-                     .End(VacuumStep.End, NullFun, 0);
 
-             return Runner.Status;
 
-         }
 
-         /// <summary>
 
-         /// Vacuum功能
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         private bool Vacuum(ModuleName moduleName,bool VacuumState)
 
-         {
 
-             return _efem.Vacuum(moduleName,VacuumState);
 
-         }
 
-         private bool CheckVacuumDone()
 
-         {
 
-             if (_efem.Status == RState.End)
 
-             {
 
-                 return true;
 
-             }
 
-             else if (_efem.Status == RState.Failed)
 
-             {
 
-                 LOG.Write(eEvent.ERR_EFEM_COMMON_FAILED, Module, $"Efem Vacuum failed: {_efem.Status}");
 
-                 return true;
 
-             }
 
-             return false;
 
-         }
 
-         public void Abort()
 
-         {
 
-             Runner.Stop("Manual Abort");
 
-         }
 
-     }
 
- }
 
 
  |