using Aitex.Core.RT.Device; using Aitex.Core.RT.SCCore; using Aitex.Sorter.Common; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace athosRT.Devices.EFEM { public class LoadPortServerModule : IServerModule, IData, IFunction { protected LoadPortBaseDevice _loadport = (LoadPortBaseDevice)null; public bool IsLinkOk => this._loadport != null; public bool Busy => this._loadport.IsBusy; public bool Error => this._loadport.IsError; public FoupDockState DockState => this._loadport.DockState; public bool Disabled { get; set; } public bool Initialized { get; set; } public bool OriginSearched { get; set; } public bool InUsed { get; set; } public string Name { get; set; } public string SlotMap => this._loadport.SlotMap; public LoadPortBaseDevice GetDevice() => this._loadport; public LoadPortServerModule(string name) { this.Name = name; this._loadport = DEVICE.GetDevice(name); } public bool Init(out string reason) => this._loadport.Home(out reason); public bool Home(out string reason) => this._loadport.Home(out reason); public bool Lock(out string reason) => this._loadport.Clamp(out reason); public bool Unlock(out string reason) => this._loadport.Unclamp(out reason); public bool Dock(out string reason) => this._loadport.Dock(out reason); public bool Undock(out string reason) => this._loadport.Undock(out reason); public bool OpenDoor(out string reason) => this._loadport.OpenDoor(out reason); public bool CloseDoor(out string reason) => this._loadport.CloseDoor(out reason); public bool Open(out string reason) => this._loadport.Load(out reason); public bool Read(out string reason) { reason = (string)null; return this._loadport.ReadCarrierID(); } public bool Write(string cid, out string reason) { reason = (string)null; return SC.GetValue("System.OnlyLotId") ? this._loadport.WriteCarrierIDByIndex(cid) : this._loadport.WriteCarrierID(cid); } public bool Close(out string reason) => this._loadport.Unload(out reason); public bool QueryWaferMap(out string reason) => this._loadport.QueryWaferMap(out reason); } }