| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using Aitex.Core.Util;
 
- using Aitex.Sorter.Common;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.Schedulers;
 
- using MECF.Framework.Common.SubstrateTrackings;
 
- using CyberX8_RT.Modules;
 
- namespace CyberX8_RT.Schedulers
 
- {
 
-     public class SchedulerLoadPort : SchedulerModule
 
-     {
 
-         public override bool IsAvailable
 
-         {
 
-             get { return _entity.IsIdle && IsLoaded && CheckTaskDone(); }
 
-         }
 
-         public override bool IsOnline
 
-         {
 
-             get { return true; }
 
-         }
 
-         public override bool IsError
 
-         {
 
-             get { return _entity.IsError; }
 
-         }
 
-         public override bool IsIdle
 
-         {
 
-             get { return _entity.IsIdle; }
 
-         }
 
-         public bool IsLoaded
 
-         {
 
-             get { return _entity.EfemDevice[Module].IsLoaded; }
 
-         }
 
-         private EfemEntity _entity = null;
 
-         public SchedulerLoadPort(ModuleName module) : base(module.ToString())
 
-         {
 
-             _module = module.ToString();
 
-             _entity = Singleton<RouteManager>.Instance.EFEM;
 
-         }
 
-         public override bool IsReadyForPick(ModuleName robot, int slot, Hand blade)
 
-         {
 
-             return _entity.IsPrepareTransferReady(Module, EnumTransferType.Pick, slot)
 
-                    && WaferManager.Instance.CheckHasWafer(ModuleHelper.Converter(_module), slot);
 
-         }
 
-         public override bool IsReadyForPlace(ModuleName robot, int slot, Hand blade)
 
-         {
 
-             return _entity.IsPrepareTransferReady(Module, EnumTransferType.Place, slot)
 
-                    && WaferManager.Instance.CheckNoWafer(ModuleHelper.Converter(_module), slot);
 
-         }
 
-         public bool CheckTaskDone()
 
-         {
 
-             bool ret = false;
 
-             switch (_task)
 
-             {
 
-                 case TaskType.None:
 
-                     ret = true;
 
-                     break;
 
-                 case TaskType.PrepareTransfer:
 
-                     ret = _entity.IsPrepareTransferReady(ModuleName.EfemRobot, EnumTransferType.Pick, 0);
 
-                     break;
 
-             }
 
-             if (ret && _task != TaskType.None)
 
-             {
 
-                 LogTaskDone(_task, "");
 
-                 _task = TaskType.None;
 
-             }
 
-             return ret;
 
-         }
 
-         internal bool CheckReadyRunJob()
 
-         {
 
-             return _entity.CheckReadyRunNewJob(this.Module);
 
-         }
 
-         internal bool CheckReadyTransfer()
 
-         {
 
-             return _entity.CheckReadyTransfer(this.Module);
 
-         }
 
-         internal bool CheckPlaced()
 
-         {
 
-             return _entity.CheckPlaced(this.Module);
 
-         }
 
-         public void NoteJobStart()
 
-         {
 
-             _entity.NoteJobStart(ModuleHelper.Converter(_module));
 
-         }
 
-         public void NoteJobComplete()
 
-         {
 
-             _entity.NoteJobComplete(ModuleHelper.Converter(_module));
 
-         }
 
-     }
 
- }
 
 
  |