| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | 
							- 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 VirgoRT.Modules.LPs;
 
- using VirgoRT.Scheduler;
 
- namespace VirgoRT.Modules.Schedulers
 
- {
 
-     public class SchedulerLoadPort : SchedulerModule
 
-     {
 
-         public override bool IsAvailable
 
-         {
 
-             get { return _entity.IsIdle /*&& _entity.IsOnline*/ && CheckTaskDone(); }
 
-         }
 
-         public override bool IsOnline
 
-         {
 
-             get { return true; }
 
-         }
 
-         public override bool IsError
 
-         {
 
-             get { return _entity.IsError; }
 
-         }
 
-         private EfemEntity _entity = null;
 
-         public SchedulerLoadPort(ModuleName module) : base(module.ToString())
 
-         {
 
-             _module = module.ToString();
 
-  
 
-                 _entity = Singleton<RouteManager>.Instance.EFEM;
 
-  
 
-         }
 
-         public bool Load()
 
-         {
 
-             //_busy = true;
 
-             //_entity.Load(_chamber);
 
-             return true;
 
-         }
 
-         private ModuleName _curLP;
 
-         public bool Unload(ModuleName lp)
 
-         {
 
-             ////_busy = true;
 
-             ////_entity.Unloaded(_chamber);
 
-             //return true;
 
-             _task = TaskType.Unload;
 
-             _curLP = lp;
 
-             _entity.NotifyLP(lp, LoadPortModule.MSG.Unload);
 
-             return true;
 
-         }
 
-         public bool Monitor()
 
-         {
 
-             return true;
 
-         }
 
-         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.Unload:
 
-                     ret = !ModuleHelper.IsLoadPort(_curLP) || _entity.IsLPIdle(_curLP);
 
-                     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));
 
-         }
 
-         public string GetCarrierID()
 
-         {
 
-             return _entity.GetCarrierID(ModuleHelper.Converter(_module));
 
-         }
 
-     }
 
- }
 
 
  |