| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 | using Aitex.Core.RT.DataCenter;using Aitex.Core.RT.Device.Unit;using Aitex.Core.RT.Device;using MECF.Framework.Common.Equipment;using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using static Mono.Security.X509.X520;namespace Venus_RT.Devices.TM{    public enum PumpState    {        Idle,        TMUsing,        VCEUsing,        VCEAUsing,        VCEBUsing,    }    public class TMBase : BaseDevice, IDevice, ITM    {        public virtual double ChamberPressure { get; }        public virtual double ForelinePressure { get; }        public virtual bool IsTMATM   { get; }        public virtual bool IsVCEATM { get; }        public virtual bool IsVCEAATM { get; }        public virtual bool IsVCEBATM { get; }        public virtual bool IsTMVAC   { get; }        public virtual bool IsVCEAVAC { get; }        public virtual bool IsVCEBVAC { get; }        public virtual bool IsVCEVAC { get; }        public virtual bool IsTMFastPumpOpen     { get; }        public virtual bool IsTMSoftPumpOpen   { get; }        public virtual bool IsTMFastVentOpen   { get; }        public virtual bool IsTMSoftVentOpen   { get; }        public virtual bool IsVCEAFastPumpOpen { get; }        public virtual bool IsVCEBFastPumpOpen { get; }        public virtual bool IsVCEASoftPumpOpen { get; }        public virtual bool IsVCEBSoftPumpOpen { get; }        public virtual bool IsVCEAFastVentOpen { get; }        public virtual bool IsVCEBFastVentOpen { get; }        public virtual bool IsVCEASoftVentOpen { get; }        public virtual bool IsVCEBSoftVentOpen { get; }        public virtual bool IsTMVentValveOpen   { get; }        public virtual bool IsVCEAVentValveOpen { get; }        public virtual bool IsVCEBVentValveOpen { get; }        public virtual bool VCEASlitDoorClosed  { get; }        public virtual bool VCEBSlitDoorClosed  { get; }        public virtual bool PMASlitDoorClosed { get; }        public virtual bool PMBSlitDoorClosed { get; }        public virtual bool PMCSlitDoorClosed { get; }        public virtual bool PMDSlitDoorClosed { get; }        public virtual bool AllPMSlitDoorClosed { get; }        public virtual double TMPressure { get; }        public virtual double VCEPressure { get; }        public virtual double VCEAPressure { get; }        public virtual double VCEBPressure { get; }        public virtual PumpState PumpingState { get; }        public TMBase(string module) : base(module, module, module, module)        {        }        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 VCESlitDoorClosed(ModuleName vcename)         {             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 IoSlitValve GetSlitValve(ModuleName module)        {            return null;        }        public virtual bool SetSlitValve(ModuleName module, bool isOpen, out string reason)        {            reason = string.Empty;            return true;        }        public virtual bool CheckSlitValveOpen(ModuleName module)        {            return true;        }        public virtual bool CheckSlitValveClose(ModuleName module)        {            return true;        }        public virtual bool TurnSlitDoor(ModuleName mod, bool bOn)        {            return false;        }        public virtual void TurnFastPumpValve(ModuleName mod, bool bOn)        {        }        public virtual void TurnSoftPumpValve(ModuleName mod, bool bOn)        { }        public virtual void TurnFastVentValve(ModuleName mod, bool bOn)        { }        public virtual void TurnSoftVentValve(ModuleName mod, bool bOn)        { }        public virtual bool CloseAllSlitDoor()        {            return false;        }        public virtual void HomeVceSlitDoor()        {        }        public virtual void CloseVentValve()        {        }        public virtual bool CheckPumpValveClosed(ModuleName mod)        {            return false;        }        public virtual bool CheckVentValveClosed(ModuleName mod)        {            return false;        }        public virtual void SetTMFlow(int flowValue)        { }        public virtual double GetModulePressure(ModuleName mod)        {            return 0;        }        public virtual bool TryGetPump(ModuleName mod)        {            return false;        }        public virtual void ReleasePump(ModuleName Module)        { }        public virtual void Monitor()        {        }        public virtual void Terminate()        {        }        public virtual void Reset()        {        }    } }
 |