using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Venus_Core; using MECF.Framework.Common.CommonData; using MECF.Framework.Common.Equipment; using Aitex.Sorter.Common; using Aitex.Core.Common; using Aitex.Core.RT.SCCore; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot; namespace Venus_RT.Devices.EFEM { class JetEfem :EfemBase { private RState _status; private bool _IsHomed; private RobotMoveInfo _robotMoveInfo = new RobotMoveInfo(); private readonly Loadport[] _LPMs = new Loadport[2]; private readonly AsyncSocket _socket; public override RState Status { get { return _status; } } public override bool IsHomed { get { return _IsHomed; } } public override RobotMoveInfo TMRobotMoveInfo { get { return _robotMoveInfo; } } public override ILoadport this[ModuleName mod] { get { if (!ModuleHelper.IsLoadPort(mod)) throw new ApplicationException($"{mod} is NOT Loadport"); return _LPMs[mod - ModuleName.LP1]; } } public JetEfem() { _socket = new AsyncSocket(""); _socket.Connect(SC.GetStringValue($"EFEM.IPAddress")); _socket.OnDataChanged += OnReceiveMessage; _socket.OnErrorHappened += OnErrorHappen; _status = RState.Init; _IsHomed = false; } public override void Monitor() { } public override void Terminate() { } public override void Reset() { } public override void SetOnline(bool online) { } public override void SetOnline(ModuleName mod, bool online) { } public override void SetBusy(ModuleName mod, bool online) { } public override bool HomeAll() { return true; } public override bool Home(ModuleName mod) { return true; } public override bool Halt() { return true; } public override bool ClearError() { return true; } public override bool PickExtend(ModuleName chamber, int slot, Hand hand) { return true; } public override bool PickRetract(ModuleName chamber, int slot, Hand hand) { return true; } public override bool PlaceExtend(ModuleName chamber, int slot, Hand hand) { return true; } public override bool PlaceRetract(ModuleName chamber, int slot, Hand hand) { return true; } public override bool Pick(ModuleName station, int slot, Hand hand) { return true; } public override bool Place(ModuleName station, int slot, Hand hand) { return true; } public override bool Goto(ModuleName station) { return true; } public override bool Grip(Hand blade, bool isGrip) { return true; } public override bool Map(ModuleName mod) { return true; } public override bool SetPinUp(ModuleName mod) { return true; } public override bool SetPinDown(ModuleName mod) { return true; } public override bool Align(ModuleName mod, float delayTime, WaferSize size) { return true; } public override bool SetLamp(LightType light, LightStatus status) { return true; } public override bool Load(ModuleName mod) { return true; } public override bool Unload(ModuleName mod) { return true; } public override bool ReadCarrierId(ModuleName mod) { return true; } public override bool WriteCarrierId(ModuleName mod, string id) { return true; } public override bool ReadTagData(ModuleName mod) { return true; } public override bool WriteTagData(ModuleName mod, string tagData) { return true; } public override bool Dock(ModuleName mod) { return true; } public override bool Undock(ModuleName mod) { return true; } public override bool Clamp(ModuleName mod, bool isUnloadClamp) { return true; } public override bool Unclamp(ModuleName mod) { return true; } public override bool SetThick(ModuleName mod) { return true; } public override bool SetThin(ModuleName mod) { return true; } public override void SetRobotMovingInfo(RobotAction action, Hand hand, ModuleName target) { } private void OnReceiveMessage(string RevMsg) { } private void OnErrorHappen(ErrorEventArgs args) { } } }