| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Aitex.Core.RT.DataCenter;using Aitex.Core.RT.Device;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.SubstrateTrackings;namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadLocks{    public class LoadLock : BaseDevice, IDevice, ILoadLock    {        public virtual double ChamberPressure { get; }        public virtual double ForelinePressure { get; }        public const int SlotCount = 2;        public LoadLock(string module, int slotCount) : base(module, module, module, module)        {            WaferManager.Instance.SubscribeLocation(ModuleHelper.Converter(module), slotCount);        }        public LoadLock(string module):this(module, SlotCount)        {                    }        public virtual bool Initialize()        {            DATA.Subscribe($"{Name}.IsAtm", () => { return CheckAtm(); });            DATA.Subscribe($"{Name}.IsVacuum", () => { return CheckVacuum(); });            DATA.Subscribe($"{Name}.ChamberPressure", () => ChamberPressure);            DATA.Subscribe($"{Name}.ForelinePressure", () => ForelinePressure);            return true;        }        public virtual bool CheckAtm()        {            return false;        }        public virtual bool CheckVacuum()        {            return false;        }        public virtual bool CheckIsPumping()        {            return false;        }        public virtual bool SetFastVentValve(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool SetSlowVentValve(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool SetFastPumpValve(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }         public virtual bool SetSlowPumpValve(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool SetEqualVentValve(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual void Monitor()        {        }        public virtual void Terminate()        {        }        public virtual void Reset()        {        }        public virtual bool SetDoor(bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool CheckDoorOpen()        {            return true;        }        public virtual bool CheckDoorClose()        {            return true;        }        public virtual bool SetLift(bool isUp, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool SetLift(int slot, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool CheckLiftUp()        {            return true;        }        public virtual bool CheckLiftDown()        {            return true;        }        public virtual bool CheckLift(int slot)        {            return true;        }    }}
 |