| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using Aitex.Core.Common;using Aitex.Core.RT.Device;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 FurnaceRT.Equipments.Systems;namespace FurnaceRT.Equipments.CarrierRobots{    public abstract class CarrierRobotModuleBase : ModuleFsmDevice, ITransferTarget, IModuleDevice    {        public CarrierRobotModuleBase()        {        }        public override bool Initialize()        {            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);        //Job Task        public abstract void NoteJobStart();        public abstract void NoteJobComplete();        //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);        public abstract bool CheckReadyForMap(ModuleName robot, Hand blade, out string reason);        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 Load(ModuleName target, Hand blade, int targetSlot, ModuleName destinationStocker,            CarrierType carrierType, string reservedCarrierId, out string reason);        public abstract bool Unload(ModuleName target, Hand blade, int targetSlot, out string reason);    }}
 |