CarrierRobotModuleBase.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Aitex.Core.Common;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Sorter.Common;
  4. using MECF.Framework.Common.Equipment;
  5. using MECF.Framework.Common.Schedulers;
  6. using MECF.Framework.Common.SubstrateTrackings;
  7. using MECF.Framework.RT.EquipmentLibrary.LogicUnits;
  8. using System;
  9. using FurnaceRT.Equipments.Systems;
  10. namespace FurnaceRT.Equipments.CarrierRobots
  11. {
  12. public abstract class CarrierRobotModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice
  13. {
  14. public CarrierRobotModuleBase()
  15. {
  16. }
  17. public override bool Initialize()
  18. {
  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. //Job Task
  27. public abstract void NoteJobStart();
  28. public abstract void NoteJobComplete();
  29. //Transfer
  30. public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  31. public abstract bool TransferHandoff(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  32. public abstract bool PostTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  33. public abstract bool CheckReadyForTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);
  34. public abstract void NoteTransferStart(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  35. public abstract void NoteTransferStop(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);
  36. public abstract bool CheckReadyForMap(ModuleName robot, Hand blade, out string reason);
  37. public abstract bool Pick(ModuleName target, Hand blade, int targetSlot, out string reason);
  38. public abstract bool Place(ModuleName target, Hand blade, int targetSlot, out string reason);
  39. public abstract bool Load(ModuleName target, Hand blade, int targetSlot, ModuleName destinationStocker,
  40. CarrierType carrierType, string reservedCarrierId, out string reason);
  41. public abstract bool Unload(ModuleName target, Hand blade, int targetSlot, out string reason);
  42. }
  43. }