EfemModuleBase.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Sorter.Common;
  3. using MECF.Framework.Common.Equipment;
  4. using MECF.Framework.Common.SubstrateTrackings;
  5. using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
  6. using MECF.Framework.RT.ModuleLibrary.Commons;
  7. namespace MECF.Framework.RT.ModuleLibrary.EfemModules
  8. {
  9. public abstract class EfemModuleBase : ModuleFsmDevice, ITransferRobot, IModuleDevice
  10. {
  11. private int _slot = 2;
  12. public EfemModuleBase(int slot)
  13. {
  14. _slot = slot;
  15. }
  16. public override bool Initialize()
  17. {
  18. WaferManager.Instance.SubscribeLocation(Module, _slot);
  19. return base.Initialize();
  20. }
  21. //IModuleDevice
  22. public abstract bool IsReady { get; }
  23. public abstract bool IsError { get; }
  24. public abstract bool IsInit { get; }
  25. public abstract bool Home(out string reason);
  26. //ITransferRobot
  27. public abstract bool Pick(ModuleName target, Hand blade, int targetSlot, out string reason);
  28. public abstract bool Place(ModuleName target, Hand blade, int targetSlot, out string reason);
  29. public abstract bool PickAndPlace(ModuleName pickTarget, Hand pickHand, int pickSlot, ModuleName placeTarget, Hand placeHand, int placeSlot, out string reason);
  30. public abstract bool Goto(ModuleName target, Hand blade, int targetSlot, out string reason);
  31. public abstract bool Map(ModuleName target, out string reason);
  32. }
  33. }