| 1234567891011121314151617181920212223242526272829303132333435363738394041 | using Aitex.Core.RT.Device;using Aitex.Sorter.Common;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.SubstrateTrackings;using MECF.Framework.RT.EquipmentLibrary.LogicUnits;using MECF.Framework.RT.ModuleLibrary.Commons;namespace MECF.Framework.RT.ModuleLibrary.TMModules{    public abstract class TMModuleBase : ModuleFsmDevice, ITransferRobot, IModuleDevice    {        private int _slot = 2;        public TMModuleBase(int slot)        {            _slot = slot;        }        public override bool Initialize()        {            WaferManager.Instance.SubscribeLocation(Module, _slot);            return base.Initialize();        }        //IModuleDevice        public abstract bool IsReady { get; }        public abstract bool IsError { get; }        public abstract bool IsInit { get; }        public abstract bool Home(out string reason);        //ITransferRobot        public abstract bool Pick(ModuleName target, Hand blade, int targetSlot, out string reason);        public abstract bool Place(ModuleName target, Hand blade, int targetSlot, out string reason);        public abstract bool PickAndPlace(ModuleName pickTarget, Hand pickHand, int pickSlot, ModuleName placeTarget, Hand placeHand, int placeSlot, out string reason);        public abstract bool Goto(ModuleName target, Hand blade, int targetSlot, out string reason);        public abstract bool Map(ModuleName target, out string reason);    }}
 |