| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | using Aitex.Core.RT.Device;using Aitex.Core.RT.Event;using Aitex.Core.RT.Fsm;using Aitex.Core.RT.Log;using Aitex.Core.RT.Routine;using Aitex.Core.RT.SCCore;using Aitex.Sorter.Common;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.Schedulers;using MECF.Framework.Common.SubstrateTrackings;using MECF.Framework.RT.EquipmentLibrary.LogicUnits;using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using FurnaceRT.Equipments.Systems;namespace FurnaceRT.Equipments.Stockers{    public abstract class StockerModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice    {        private int _slot = 1;        public StockerModuleBase(int slot)        {            _slot = slot;        }        public override bool Initialize()        {            CarrierManager.Instance.SubscribeLocation(Module, 1, _slot);            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);        //Transfer        public abstract bool PrepareTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);        public abstract bool TransferHandoff(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);        public abstract bool PostTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);        public abstract bool CheckReadyForTransfer(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType, out string reason);        public abstract void NoteTransferStart(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);        public abstract void NoteTransferStop(ModuleName robot, Hand blade, int targetSlot, EnumTransferType transferType);    }}
 |