| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 | 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;using static Venus_RT.Modules.TM.VenusEntity.SETMEntity;namespace Venus_RT.Devices.TM{    public enum PumpState    {        Idle,        TMUsing,        VCEUsing,        VCEAUsing,        VCEBUsing,    }    public enum VentStatus    {        TMVenting,        VCEAVenting,        VCEBVenting,        VCE1Venting,        Idle    }    public class TMBase : BaseDevice, IDevice, ITM    {        public virtual double ChamberPressure { get; }        public virtual double ForelinePressure { get; }        public virtual VentStatus VentStatus { 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 IsPressureControl { 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 bool VCECassPresent { get; }        public virtual bool VCEACassPresent { get; }        public virtual bool VCEBCassPresent { get; }        public virtual bool VCELOCKED { get; }        public virtual bool VCEALOCKED { get; }        public virtual bool VCEBLOCKED { get; }        public virtual bool VCEProtrusion { get; }        public virtual bool VCEAProtrusion { get; }        public virtual bool VCEBProtrusion { get; }        public virtual bool RobotNotExtendVCEA { get; }        public virtual bool RobotNotExtendVCEB { get; }        public virtual bool RobotNotExtendVCE { 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 void CloseModuleAllValves(ModuleName module)        {        }        public virtual bool CheckLidClosed()        {            return false;        }        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 PressureControl(bool iscontrol)        {        }        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 TryGetVent(ModuleName mod)        {            return false;        }        public virtual void ReleaseVent(ModuleName mod)        {        }        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()        {        }    } }
 |