StockerModuleBase.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.RT.Event;
  3. using Aitex.Core.RT.Fsm;
  4. using Aitex.Core.RT.Log;
  5. using Aitex.Core.RT.Routine;
  6. using Aitex.Core.RT.SCCore;
  7. using Aitex.Sorter.Common;
  8. using MECF.Framework.Common.Equipment;
  9. using MECF.Framework.Common.Schedulers;
  10. using MECF.Framework.Common.SubstrateTrackings;
  11. using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Diagnostics;
  15. using System.Linq;
  16. using System.Text;
  17. using System.Threading;
  18. using System.Threading.Tasks;
  19. using FurnaceRT.Equipments.Systems;
  20. namespace FurnaceRT.Equipments.Stockers
  21. {
  22. public abstract class StockerModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice
  23. {
  24. private int _slot = 1;
  25. public StockerModuleBase(int slot)
  26. {
  27. _slot = slot;
  28. }
  29. public override bool Initialize()
  30. {
  31. CarrierManager.Instance.SubscribeLocation(Module, 1, _slot);
  32. WaferManager.Instance.SubscribeLocation(Module, _slot);
  33. return base.Initialize();
  34. }
  35. //IModuleDevice
  36. public abstract bool IsReady { get; }
  37. public abstract bool IsError { get; }
  38. public abstract bool IsInit { get; }
  39. public abstract bool Home(out string reason);
  40. //Transfer
  41. public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  42. public abstract bool TransferHandoff(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  43. public abstract bool PostTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  44. public abstract bool CheckReadyForTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  45. public abstract void NoteTransferStart(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  46. public abstract void NoteTransferStop(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  47. }
  48. }