VceModuleBase.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Sorter.Common;
  3. using MECF.Framework.Common.Equipment;
  4. using MECF.Framework.Common.Schedulers;
  5. using MECF.Framework.Common.SubstrateTrackings;
  6. using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
  7. using MECF.Framework.RT.ModuleLibrary.Commons;
  8. namespace MECF.Framework.RT.ModuleLibrary.VceModules
  9. {
  10. public abstract class VceModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice
  11. {
  12. private int _slot = 25;
  13. //private bool isJobDone;
  14. public VceModuleBase(int slot)
  15. {
  16. _slot = slot;
  17. }
  18. public override bool Initialize()
  19. {
  20. WaferManager.Instance.SubscribeLocation(Module, _slot);
  21. CarrierManager.Instance.SubscribeLocation(Module);
  22. return base.Initialize();
  23. }
  24. public virtual void NoteJobStart()
  25. {
  26. //isJobDone = false;
  27. }
  28. public virtual void NoteJobComplete()
  29. {
  30. //isJobDone = true;
  31. }
  32. //IModuleDevice
  33. public abstract bool IsReady { get; }
  34. public abstract bool IsError { get; }
  35. public abstract bool IsInit { get; }
  36. public abstract bool Home(out string reason);
  37. //Transfer
  38. public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
  39. public abstract bool TransferHandoff(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
  40. public abstract bool PostTransfer(ModuleName robot, Hand blade, int[] targetSlot, EnumTransferType transferType, out string reason);
  41. public abstract bool CheckReadyForTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  42. public abstract void NoteTransferStart(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  43. public abstract void NoteTransferStop(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  44. }
  45. }