using Aitex.Core.Common.DeviceData; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Windows; using System.Windows.Threading; using Venus_Core; using Venus_MainPages.Views; using System.Linq; using System.Threading.Tasks; using Microsoft.Win32; using System.IO; using Venus_Themes.CustomControls; namespace Venus_MainPages.ViewModels { internal class OverViewModel : BindableBase { #region 私有字段 private bool m_PVN21ValveIsOpen; private bool m_PVN22ValveIsOpen; private bool m_N2ValveIsOpen; private bool m_PV11ValveIsOpen; private bool m_PV12ValveIsOpen; private bool m_PV21ValveIsOpen; private bool m_PV22ValveIsOpen; private bool m_PV31ValveIsOpen; private bool m_PV32ValveIsOpen; private bool m_PV41ValveIsOpen; private bool m_PV42ValveIsOpen; private bool m_MFC1ValveIsOpen; private bool m_MFC2ValveIsOpen; private bool m_MFC3ValveIsOpen; private bool m_MFC4ValveIsOpen; private bool m_MFC5ValveIsOpen; private bool m_MFC6ValveIsOpen; private bool m_MFC7ValveIsOpen; private bool m_MFC8ValveIsOpen; private bool m_GasFinalValveIsOpen; private bool m_SoftPumpValveIsOpen; private bool m_FastPumpValveIsOpen; private bool m_PVHe1ValveIsOpen; private bool m_PVHe2ValveIsOpen; private bool m_TurboPumpPumpingValveIsOpen; private bool m_TurboPumpPurgeValveIsOpen; private bool m_GuageValveIsOpen; private bool m_PendulumValveIsOpen; private bool m_BRFIsOn; private bool m_SRFIsOn; private double m_HeGasSetpoint; private int m_HePressureSetpoint; private float m_SRFFwdPowerSetpoint; private float m_BRFFwdPowerSetpoint; private float m_SRFMatchC1; private float m_SRFMatchC2; private float m_BRFMatchC1; private float m_BRFMatchC2; private double m_MFC1SetPoint; private double m_MFC2SetPoint; private double m_MFC3SetPoint; private double m_MFC4SetPoint; private double m_MFC5SetPoint; private double m_MFC6SetPoint; private double m_MFC7SetPoint; private double m_MFC8SetPoint; private double m_N2SetPoint; private AITMfcData m_MFC1Data; private AITMfcData m_MFC2Data; private AITMfcData m_MFC3Data; private AITMfcData m_MFC4Data; private AITMfcData m_MFC5Data; private AITMfcData m_MFC6Data; private AITMfcData m_MFC7Data; private AITMfcData m_MFC8Data; private AITMfcData m_MFCHeData; private AITMfcData m_MFCN2Data; private AITHeaterData m_ValveHeaterData; private AITHeaterData m_ForelineHeaterData; private AITHeaterData m_WallHeaterData; private PMState m_PMCurrentState; private bool m_SourceRFFanInterlock; private bool m_IsWLK; private bool m_IsWaterFlowOk; private bool m_IsTurboPumpInterlock; private bool m_IsCDAOK; private bool m_SensorGasBoxDoor; private bool m_SensorGasBoxPressure; private bool m_PumpIsOpen; private bool m_TurboIsOpen; private bool m_IsATM; private bool m_IsVAC; private bool m_HVIsOn; private List m_RtConfigKeys; private Dictionary m_RtConfigValues; private List m_RtDataKeys; private Dictionary m_RtDataValues; private int m_PositionValue; private bool m_IsPositionMode; private int m_ESCVoltage; private bool m_GasIsFlowing; private bool m_IsAutoMode; private string m_SelectedRecipe; private float m_ChillerTempSetpoint; private float m_WallTempSetpoint; private bool m_HeIsPressureMode; private bool m_ChillerIsOn; private float m_ProcessHighPressure; private float m_ProcessLowPressure; private float m_ForelinePressurePressure; private float m_ESCHePressure; ButterflyValveView butterflyValveMessageBox; HeaterView heaterView; private int m_TurboPumpRotationalSpeed; private bool m_LiftPinIsUp; private bool m_IsSlitDoorClosed; private bool m_IsLidClosed; private float m_ChillerTemperature; private int m_ESCHVOutputVoltage; private float m_SRfReflectPower; private float m_SRfForwardPowerFeedBack; private float m_BRfReflectPower; private float m_BRfForwardPowerFeedBack; private int m_MatchWorkMode; private int m_BiasMatchWorkMode; private float m_MatchC1; private float m_MatchC2; private float m_BiasMatchC1; private float m_BiasMatchC2; private float m_PendulumValvePosition; private bool m_IsTurboPumpAtSpeed; private bool m_TurboPumpWaterFlowSwitch; private bool m_IsHasWafer; private Recipe m_CurrentRecipe=new Recipe (); #endregion #region 属性 public Recipe CurrentRecipe { get { return m_CurrentRecipe; } set { SetProperty(ref m_CurrentRecipe, value); } } public bool IsHasWafer { get { return m_IsHasWafer; } set { SetProperty(ref m_IsHasWafer, value); } } public bool IsTurboPumpAtSpeed { get { return m_IsTurboPumpAtSpeed; } set { SetProperty(ref m_IsTurboPumpAtSpeed, value); } } public bool TurboPumpWaterFlowSwitch { get { return m_TurboPumpWaterFlowSwitch; } set { SetProperty(ref m_TurboPumpWaterFlowSwitch, value); } } public float PendulumValvePosition { get { return m_PendulumValvePosition; } set{SetProperty(ref m_PendulumValvePosition, value);} } public float BiasMatchC1 { get { return m_BiasMatchC1; } set { SetProperty(ref m_BiasMatchC1, value); } } public float BiasMatchC2 { get { return m_BiasMatchC2; } set { SetProperty(ref m_BiasMatchC2, value); } } public float MatchC1 { get { return m_MatchC1; } set { SetProperty(ref m_MatchC1, value); } } public float MatchC2 { get { return m_MatchC2; } set { SetProperty(ref m_MatchC2, value); } } public int BiasMatchWorkMode { get { return m_BiasMatchWorkMode; } set { SetProperty(ref m_BiasMatchWorkMode, value); } } public int MatchWorkMode { get { return m_MatchWorkMode; } set { SetProperty(ref m_MatchWorkMode, value); } } public float BRfReflectPower { get { return m_BRfReflectPower; } set { SetProperty(ref m_BRfReflectPower, value); } } public float BRfForwardPowerFeedBack { get { return m_BRfForwardPowerFeedBack; } set { SetProperty(ref m_BRfForwardPowerFeedBack, value); } } public float SRfReflectPower { get { return m_SRfReflectPower; } set { SetProperty(ref m_SRfReflectPower, value); } } public float SRfForwardPowerFeedBack { get { return m_SRfForwardPowerFeedBack; } set { SetProperty(ref m_SRfForwardPowerFeedBack, value); } } public int ESCHVOutputVoltage { get { return m_ESCHVOutputVoltage; } set { SetProperty(ref m_ESCHVOutputVoltage, value); } } public float ChillerTemperature { get { return m_ChillerTemperature; } set { SetProperty(ref m_ChillerTemperature, value); } } public bool IsLidClosed { get { return m_IsLidClosed; } set { SetProperty(ref m_IsLidClosed, value); } } public bool IsSlitDoorClosed { get { return m_IsSlitDoorClosed; } set { SetProperty(ref m_IsSlitDoorClosed, value); } } public bool LiftPinIsUp { get { return m_LiftPinIsUp; } set { SetProperty(ref m_LiftPinIsUp, value); } } public int TurboPumpRotationalSpeed { get { return m_TurboPumpRotationalSpeed; } set { SetProperty(ref m_TurboPumpRotationalSpeed, value); } } public float ESCHePressure { get { return m_ESCHePressure; } set { SetProperty(ref m_ESCHePressure, value); } } public float ProcessHighPressure { get { return m_ProcessHighPressure; } set { SetProperty(ref m_ProcessHighPressure, value); } } public float ProcessLowPressure { get { return m_ProcessLowPressure; } set { SetProperty(ref m_ProcessLowPressure, value); } } public float ForelinePressure { get { return m_ForelinePressurePressure; } set { SetProperty(ref m_ForelinePressurePressure, value); } } public bool SourceRFFanInterlock { get { return m_SourceRFFanInterlock; } set { SetProperty(ref m_SourceRFFanInterlock, value); } } public bool IsWLK { get { return m_IsWLK; } set { SetProperty(ref m_IsWLK, value); } } public bool IsWaterFlowOk { get { return m_IsWaterFlowOk; } set { SetProperty(ref m_IsWaterFlowOk, value); } } public bool IsCDAOK { get { return m_IsCDAOK; } set { SetProperty(ref m_IsCDAOK, value); } } public bool SensorGasBoxDoor { get { return m_SensorGasBoxDoor; } set { SetProperty(ref m_SensorGasBoxDoor, value); } } public bool SensorGasBoxPressure { get { return m_SensorGasBoxPressure; } set { SetProperty(ref m_SensorGasBoxPressure, value); } } public bool IsTurboPumpInterlock { get { return m_IsTurboPumpInterlock; } set { SetProperty(ref m_IsTurboPumpInterlock, value); } } public string ModuleName { get; set; } public double MFC1SetPoint { get { return m_MFC1SetPoint; } set { SetProperty(ref m_MFC1SetPoint, value); } } public double MFC2SetPoint { get { return m_MFC2SetPoint; } set { SetProperty(ref m_MFC2SetPoint, value); } } public double MFC3SetPoint { get { return m_MFC3SetPoint; } set { SetProperty(ref m_MFC3SetPoint, value); } } public double MFC4SetPoint { get { return m_MFC4SetPoint; } set { SetProperty(ref m_MFC4SetPoint, value); } } public double MFC5SetPoint { get { return m_MFC5SetPoint; } set { SetProperty(ref m_MFC5SetPoint, value); } } public double MFC6SetPoint { get { return m_MFC6SetPoint; } set { SetProperty(ref m_MFC6SetPoint, value); } } public double MFC7SetPoint { get { return m_MFC7SetPoint; } set { SetProperty(ref m_MFC7SetPoint, value); } } public double MFC8SetPoint { get { return m_MFC8SetPoint; } set { SetProperty(ref m_MFC8SetPoint, value); } } public double N2SetPoint { get { return m_N2SetPoint; } set { SetProperty(ref m_N2SetPoint, value); } } public AITMfcData MFC1Data { get { return m_MFC1Data; } set { SetProperty(ref m_MFC1Data, value); } } public AITMfcData MFC2Data { get { return m_MFC2Data; } set { SetProperty(ref m_MFC2Data, value); } } public AITMfcData MFC3Data { get { return m_MFC3Data; } set { SetProperty(ref m_MFC3Data, value); } } public AITMfcData MFC4Data { get { return m_MFC4Data; } set { SetProperty(ref m_MFC4Data, value); } } public AITMfcData MFC5Data { get { return m_MFC5Data; } set { SetProperty(ref m_MFC5Data, value); } } public AITMfcData MFC6Data { get { return m_MFC6Data; } set { SetProperty(ref m_MFC6Data, value); } } public AITMfcData MFC7Data { get { return m_MFC7Data; } set { SetProperty(ref m_MFC7Data, value); } } public AITMfcData MFC8Data { get { return m_MFC8Data; } set { SetProperty(ref m_MFC8Data, value); } } public AITMfcData MFCHeData { get { return m_MFCHeData; } set { SetProperty(ref m_MFCHeData, value); } } public AITMfcData MFCN2Data { get { return m_MFCN2Data; } set { SetProperty(ref m_MFCN2Data, value); } } public AITHeaterData ValveHeaterData { get { return m_ValveHeaterData; } set { SetProperty(ref m_ValveHeaterData, value); } } public AITHeaterData ForelineHeaterData { get { return m_ForelineHeaterData; } set { SetProperty(ref m_ForelineHeaterData, value); } } public AITHeaterData WallHeaterData { get { return m_WallHeaterData; } set { SetProperty(ref m_WallHeaterData, value); } } public PMState PMCurrentState { get { return m_PMCurrentState; } set { SetProperty(ref m_PMCurrentState, value); } } public Dictionary RtConfigValues { get { return m_RtConfigValues; } set { SetProperty(ref m_RtConfigValues, value); } } #region 阀 public bool GasFinalValveIsOpen { get { return m_GasFinalValveIsOpen; } set { SetProperty(ref m_GasFinalValveIsOpen, value); } } public bool PVN21ValveIsOpen { get { return m_PVN21ValveIsOpen; } set { SetProperty(ref m_PVN21ValveIsOpen, value); } } public bool PVN22ValveIsOpen { get { return m_PVN22ValveIsOpen; } set { SetProperty(ref m_PVN22ValveIsOpen, value); } } public bool N2ValveIsOpen { get { return m_N2ValveIsOpen; } set { SetProperty(ref m_N2ValveIsOpen, value); } } public bool PV11ValveIsOpen { get { return m_PV11ValveIsOpen; } set { SetProperty(ref m_PV11ValveIsOpen, value); } } public bool PV12ValveIsOpen { get { return m_PV12ValveIsOpen; } set { SetProperty(ref m_PV12ValveIsOpen, value); } } public bool MFC1ValveIsOpen { get { return m_MFC1ValveIsOpen; } set { SetProperty(ref m_MFC1ValveIsOpen, value); } } public bool PV21ValveIsOpen { get { return m_PV21ValveIsOpen; } set { SetProperty(ref m_PV21ValveIsOpen, value); } } public bool PV22ValveIsOpen { get { return m_PV22ValveIsOpen; } set { SetProperty(ref m_PV22ValveIsOpen, value); } } public bool MFC2ValveIsOpen { get { return m_MFC2ValveIsOpen; } set { SetProperty(ref m_MFC2ValveIsOpen, value); } } public bool PV31ValveIsOpen { get { return m_PV31ValveIsOpen; } set { SetProperty(ref m_PV31ValveIsOpen, value); } } public bool PV32ValveIsOpen { get { return m_PV32ValveIsOpen; } set { SetProperty(ref m_PV32ValveIsOpen, value); } } public bool MFC3ValveIsOpen { get { return m_MFC3ValveIsOpen; } set { SetProperty(ref m_MFC3ValveIsOpen, value); } } public bool PV41ValveIsOpen { get { return m_PV41ValveIsOpen; } set { SetProperty(ref m_PV41ValveIsOpen, value); } } public bool PV42ValveIsOpen { get { return m_PV42ValveIsOpen; } set { SetProperty(ref m_PV42ValveIsOpen, value); } } public bool MFC4ValveIsOpen { get { return m_MFC4ValveIsOpen; } set { SetProperty(ref m_MFC4ValveIsOpen, value); } } public bool MFC5ValveIsOpen { get { return m_MFC5ValveIsOpen; } set { SetProperty(ref m_MFC5ValveIsOpen, value); } } public bool MFC6ValveIsOpen { get { return m_MFC6ValveIsOpen; } set { SetProperty(ref m_MFC6ValveIsOpen, value); } } public bool MFC7ValveIsOpen { get { return m_MFC7ValveIsOpen; } set { SetProperty(ref m_MFC7ValveIsOpen, value); } } public bool MFC8ValveIsOpen { get { return m_MFC8ValveIsOpen; } set { SetProperty(ref m_MFC8ValveIsOpen, value); } } public bool PVHe1ValveIsOpen { get { return m_PVHe1ValveIsOpen; } set { SetProperty(ref m_PVHe1ValveIsOpen, value); } } public bool PVHe2ValveIsOpen { get { return m_PVHe2ValveIsOpen; } set { SetProperty(ref m_PVHe2ValveIsOpen, value); } } public bool TurboPumpPumpingValveIsOpen { get { return m_TurboPumpPumpingValveIsOpen; } set { SetProperty(ref m_TurboPumpPumpingValveIsOpen, value); } } public bool TurboPumpPurgeValveIsOpen { get { return m_TurboPumpPurgeValveIsOpen; } set { SetProperty(ref m_TurboPumpPurgeValveIsOpen, value); } } public bool SoftPumpValveIsOpen { get { return m_SoftPumpValveIsOpen; } set { SetProperty(ref m_SoftPumpValveIsOpen, value); } } public bool FastPumpValveIsOpen { get { return m_FastPumpValveIsOpen; } set { SetProperty(ref m_FastPumpValveIsOpen, value); } } public bool GuageValveIsOpen { get { return m_GuageValveIsOpen; } set { SetProperty(ref m_GuageValveIsOpen, value); } } #endregion public Dictionary RtDataValues { get { return m_RtDataValues; } set { SetProperty(ref m_RtDataValues, value); } } public bool PumpIsOpen { get { return m_PumpIsOpen; } set { SetProperty(ref m_PumpIsOpen, value); } } public bool PendulumValveIsOpen { get { return m_PendulumValveIsOpen; } set { SetProperty(ref m_PendulumValveIsOpen, value); } } public bool TurboIsOpen { get { return m_TurboIsOpen; } set { SetProperty(ref m_TurboIsOpen, value); } } public bool IsATM { get { return m_IsATM; } set { SetProperty(ref m_IsATM, value); } } public bool IsVAC { get { return m_IsVAC; } set { SetProperty(ref m_IsVAC, value); } } public bool BRFIsOn { get { return m_BRFIsOn; } set { SetProperty(ref m_BRFIsOn, value); } } public bool SRFIsOn { get { return m_SRFIsOn; } set { SetProperty(ref m_SRFIsOn, value); } } public int PositionValue { get { return m_PositionValue; } set { SetProperty(ref m_PositionValue, value); } } public bool IsPositionMode { get { return m_IsPositionMode; } set { SetProperty(ref m_IsPositionMode, value); } } public double HeGasSetpoint { get { return m_HeGasSetpoint; } set { SetProperty(ref m_HeGasSetpoint, value); } } public int HePressureSetpoint { get { return m_HePressureSetpoint; } set { SetProperty(ref m_HePressureSetpoint, value); } } public float SRFFwdPowerSetpoint { get { return m_SRFFwdPowerSetpoint; } set { SetProperty(ref m_SRFFwdPowerSetpoint, value); } } public float BRFFwdPowerSetpoint { get { return m_BRFFwdPowerSetpoint; } set { SetProperty(ref m_BRFFwdPowerSetpoint, value); } } public int ESCVoltage { get { return m_ESCVoltage; } set { SetProperty(ref m_ESCVoltage, value); } } public bool HVIsOn { get { return m_HVIsOn; } set { SetProperty(ref m_HVIsOn, value); } } public float SRFMatchC1 { get { return m_SRFMatchC1; } set { SetProperty(ref m_SRFMatchC1, value); } } public float SRFMatchC2 { get { return m_SRFMatchC2; } set { SetProperty(ref m_SRFMatchC2, value); } } public float BRFMatchC1 { get { return m_BRFMatchC1; } set { SetProperty(ref m_BRFMatchC1, value); } } public float BRFMatchC2 { get { return m_BRFMatchC2; } set { SetProperty(ref m_BRFMatchC2, value); } } public bool GasIsFlowing { get { return m_GasIsFlowing; } set { SetProperty(ref m_GasIsFlowing, value); } } public bool IsAutoMode { get { return m_IsAutoMode; } set { SetProperty(ref m_IsAutoMode, value); } } public string SelectedRecipe { get { return m_SelectedRecipe; } set { SetProperty(ref m_SelectedRecipe, value); } } public float ChillerTempSetpoint { get { return m_ChillerTempSetpoint; } set { SetProperty(ref m_ChillerTempSetpoint, value); } } public float WallTempSetpoint { get { return m_WallTempSetpoint; } set { SetProperty(ref m_WallTempSetpoint, value); } } public bool HeIsPressureMode { get { return m_HeIsPressureMode; } set { SetProperty(ref m_HeIsPressureMode, value); } } public bool ChillerIsOn { get { return m_ChillerIsOn; } set { SetProperty(ref m_ChillerIsOn, value); } } #endregion #region 命令 private DelegateCommand _PMInitCommnad; public DelegateCommand PMInitCommnad => _PMInitCommnad ?? (_PMInitCommnad = new DelegateCommand(OnPMInit)); private DelegateCommand _PMAbortCommnad; public DelegateCommand PMAbortCommnad => _PMAbortCommnad ?? (_PMAbortCommnad = new DelegateCommand(OnPMAbort)); private DelegateCommand _GasCommand; public DelegateCommand GasCommand => _GasCommand ?? (_GasCommand = new DelegateCommand(OnGas)); private DelegateCommand _HeCommand; public DelegateCommand HeCommand => _HeCommand ?? (_HeCommand = new DelegateCommand(OnHe)); private DelegateCommand _RfCommand; public DelegateCommand RfCommand => _RfCommand ?? (_RfCommand = new DelegateCommand(OnRf)); private DelegateCommand _PurgeCommand; public DelegateCommand PurgeCommand => _PurgeCommand ?? (_PurgeCommand = new DelegateCommand(OnPurge)); private DelegateCommand _VentCommand; public DelegateCommand VentCommand => _VentCommand ?? (_VentCommand = new DelegateCommand(OnVent)); private DelegateCommand _PumpCommand; public DelegateCommand PumpCommand => _PumpCommand ?? (_PumpCommand = new DelegateCommand(OnPump)); private DelegateCommand _OpenPumpCommand; public DelegateCommand OpenPumpCommand => _OpenPumpCommand ?? (_OpenPumpCommand = new DelegateCommand(OnOpenPump)); private DelegateCommand _ClosePumpCommand; public DelegateCommand ClosePumpCommand => _ClosePumpCommand ?? (_ClosePumpCommand = new DelegateCommand(OnClosePump)); private DelegateCommand _OpenTurboPumpCommand; public DelegateCommand OpenTurboPumpCommand => _OpenTurboPumpCommand ?? (_OpenTurboPumpCommand = new DelegateCommand(OnOpenTurboPump)); private DelegateCommand _CloseTurboPumpCommand; public DelegateCommand CloseTurboPumpCommand => _CloseTurboPumpCommand ?? (_CloseTurboPumpCommand = new DelegateCommand(OnCloseTurboPump)); private DelegateCommand _OpenPendulumValveCommand; public DelegateCommand OpenPendulumValveCommand => _OpenPendulumValveCommand ?? (_OpenPendulumValveCommand = new DelegateCommand(OnOpenPendulumValve)); private DelegateCommand _ClosePendulumValveCommand; public DelegateCommand ClosePendulumValveCommand => _ClosePendulumValveCommand ?? (_ClosePendulumValveCommand = new DelegateCommand(OnClosePendulumValve)); private DelegateCommand _PinUpDownCommand; public DelegateCommand PinUpDownCommand => _PinUpDownCommand ?? (_PinUpDownCommand = new DelegateCommand(OnPinUpDown)); private DelegateCommand _SetSRfCommand; public DelegateCommand SetSRfCommand => _SetSRfCommand ?? (_SetSRfCommand = new DelegateCommand(OnSetSRf)); private DelegateCommand _SetBRfCommand; public DelegateCommand SetBRfCommand => _SetBRfCommand ?? (_SetBRfCommand = new DelegateCommand(OnSetBRf)); private DelegateCommand _OpenButterflyValveViewCommand; public DelegateCommand OpenButterflyValveViewCommand => _OpenButterflyValveViewCommand ?? (_OpenButterflyValveViewCommand = new DelegateCommand(OnOpenButterflyValveView)); //private DelegateCommand _GasCommand; //public DelegateCommand GasCommand => // _GasCommand ?? (_GasCommand = new DelegateCommand(OnGas)); private DelegateCommand _HVCommand; public DelegateCommand HVCommand => _HVCommand ?? (_HVCommand = new DelegateCommand(OnHV)); private DelegateCommand _HVSetCommand; public DelegateCommand HVSetCommand => _HVSetCommand ?? (_HVSetCommand = new DelegateCommand(OnHVSet)); //private DelegateCommand _SetMatchModeCommand; //public DelegateCommand SetMatchModeCommand => // _SetMatchModeCommand ?? (_SetMatchModeCommand = new DelegateCommand(OnSetMatchMode)); private DelegateCommand _LoadRecipeCommand; public DelegateCommand LoadRecipeCommand => _LoadRecipeCommand ?? (_LoadRecipeCommand = new DelegateCommand(OnLoadRecipe)); private DelegateCommand _ControlValveCommand; public DelegateCommand ControlValveCommand => _ControlValveCommand ?? (_ControlValveCommand = new DelegateCommand(OnControlValve)); private DelegateCommand _RunRecipeCommand; public DelegateCommand RunRecipeCommand => _RunRecipeCommand ?? (_RunRecipeCommand = new DelegateCommand(OnRunRecipe)); private DelegateCommand _SetChillerTempCommand; public DelegateCommand SetChillerTempCommand => _SetChillerTempCommand ?? (_SetChillerTempCommand = new DelegateCommand(OnSetChillerTemp)); private DelegateCommand _OnOffChillerCommand; public DelegateCommand OnOffChillerCommand => _OnOffChillerCommand ?? (_OnOffChillerCommand = new DelegateCommand(OnOffChiller)); private DelegateCommand _HeaterCommand; public DelegateCommand HeaterCommand => _HeaterCommand ?? (_HeaterCommand = new DelegateCommand(OnHeater)); #endregion #region 构造函数 public OverViewModel() { //RTData.init(); m_RtConfigKeys = new List(); m_RtDataKeys = new List(); m_IsATM = true; ModuleName = "PMA"; addConfigKeys(); addDataKeys(); DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(0.5); timer.Tick += timer_Tick; timer.Start(); } #endregion #region 命令方法 private void OnControlValve(object obj) { CommonValveControl commonValveControl = (CommonValveControl)obj; if (commonValveControl.IsCanEdit == true) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ControlValve",Convert.ToInt32( commonValveControl.Tag.ToString()), !commonValveControl.Status); } } private void OnPMInit() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Home"); } private async void OnGas() { await Task.Run(async () => { //if (GasIsFlowing==true) //{ // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); //} //else //{ InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas1.SetPoint", MFC1SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas2.SetPoint", MFC2SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas3.SetPoint", MFC3SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas4.SetPoint", MFC4SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas5.SetPoint", MFC5SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas6.SetPoint", MFC6SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas7.SetPoint", MFC7SetPoint); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcGas8.SetPoint", MFC8SetPoint); await Task.Delay(1000); object[] mfc = new object[8]; string[] mfcSetPoint = new string[8]; //for (int index = 0; index < mfc.Length; index++) //{ // mfc[index] = RtDataValues[$"{ModuleName}.MfcGas{index + 1}.SetPoint"]; //} mfc[0] = MFC1Data.SetPoint; mfc[1] = MFC2Data.SetPoint; mfc[2] = MFC3Data.SetPoint; mfc[3] = MFC4Data.SetPoint; mfc[4] = MFC5Data.SetPoint; mfc[5] = MFC6Data.SetPoint; mfc[6] = MFC7Data.SetPoint; mfc[7] = MFC8Data.SetPoint; //if (((Math.Abs((double)mfc[0] - (double)_oldmfc[0]) < 0.01) && (Math.Abs((double)mfc[1] - (double)_oldmfc[1]) < 0.01) && (Math.Abs((double)mfc[2] - (double)_oldmfc[2])) < 0.01) // || ((Math.Abs((double)mfc[0]) <= 0.01 && Math.Abs((double)mfc[1]) <= 0.01 && Math.Abs((double)mfc[2]) <= 0.01))) //{ // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); // return; //} //_oldmfc = mfc; InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.GasFlow}", mfc); //} }); } private void OnHe() { if (PVHe1ValveIsOpen == true) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHeFlow", 0.0d); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHePressure", 0); } else { if (HeIsPressureMode) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHePressure", HeGasSetpoint); } else { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBacksideHeFlow", HeGasSetpoint); } } } private void OnRf() { if (PMCurrentState == PMState.RfPowering) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); } else { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RfPower}"); } } private void OnPurge() { //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() ==PMState.Purge.ToString()) //if (PMCurrentState == PMState.Purging || N2SetPoint<=0) //{ // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", 0); // await Task.Delay(1000); // //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPurge"); // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); //} //else //{ // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", N2SetPoint); // await Task.Delay(1000); // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Purge"); //} if (PMCurrentState == PMState.Purging) { //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", 0); //await Task.Delay(1000); ////InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPurge"); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); } else { //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", N2SetPoint); //await Task.Delay(1000); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Purge"); } } private void OnVent() { //if (RtDataValues[$"{ModuleName}.FsmState"].ToString()==PMState.Venting.ToString()) if (PMCurrentState == PMState.Venting) { //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopVent"); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); } else { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Vent"); } } private void OnPump() { //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == PMState.Pumping.ToString()) if (PMCurrentState==PMState.Pumping) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); return; } if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "IsPumpingOkForProcess") { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StopPump"); return; } string BasePressureSetPoint= RtConfigValues[$"{ModuleName}.Pump.PumpBasePressure"].ToString(); ; //{ // get { return RtConfigValues[$"{ModuleName}.Pump.PumpBasePressure"].ToString(); } //} string PumpLimitSetPoint= RtConfigValues[$"{ModuleName}.Pump.PumpTimeLimit"].ToString(); //{ // get { return RtConfigValues[$"{ModuleName}.Pump.PumpTimeLimit"].ToString(); } //} // 设置底压 double basePressure = string.IsNullOrEmpty(BasePressureSetPoint) ? 0 : Convert.ToDouble(BasePressureSetPoint); if (basePressure <= 0.01 || basePressure >= 1000) { MessageBox.Show($"基准压力设定值 {basePressure} 无效,应该在0到1000毫托之间"); return; } double pumpLimit = string.IsNullOrEmpty(PumpLimitSetPoint) ? 0 : Convert.ToDouble(PumpLimitSetPoint); if (pumpLimit <= 0.01 || pumpLimit >= 1200) { MessageBox.Show($"抽气时间应该在0到1200之间,当前设定值{pumpLimit}"); return; } InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"{ModuleName}.Pump.PumpBasePressure", basePressure.ToString()); InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"{ModuleName}.Pump.PumpTimeLimit", pumpLimit.ToString()); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Pump"); } private void OnOpenPump() { //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingPump") if (PMCurrentState==PMState.LaunchingPump) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); return; } //if (PumpIsOpen == true) //{ // return; //} InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartPump"); } private void OnClosePump() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ClosePump"); } private void OnOpenTurboPump() { //TurboIsOpen = true; //if (RtDataValues[$"{ModuleName}.FsmState"].ToString() == "LaunchingTurbo") if (PMCurrentState == PMState.LaunchingTurboPump) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.Abort}"); return; } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartTurboPump"); } private void OnCloseTurboPump() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.CloseTurboPump"); } private void OnOpenPendulumValve() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve",true); } private void OnClosePendulumValve() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.TurnPendulumValve",false); } private void OnPinUpDown(object upDown) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetLiftPin", Convert.ToBoolean(upDown)); } private async void OnSetSRf() { if (!GasIsFlowing == true) return; if (SRFIsOn == true) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSRf", SRFFwdPowerSetpoint, false); } else { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match}.{AITRfOperation.SetMatchPosition}", SRFMatchC1, SRFMatchC2); //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match}.{AITRfOperation.SetMatchPositionC2}", SRFMatchC2); var t = Task.Run(async delegate { await Task.Delay(100); return 42; }); await t; InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetSRf", SRFFwdPowerSetpoint, true); } } private async void OnSetBRf() { if (!GasIsFlowing == true) return; if (BRFIsOn == true) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBRf", BRFFwdPowerSetpoint, false); } else { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch}.{AITRfOperation.SetMatchPosition}", BRFMatchC1,BRFMatchC2); //InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch}.{AITRfOperation.SetMatchPositionC2}", BRFMatchC2); //Thread.Sleep(100); var t = Task.Run(async delegate { await Task.Delay(100); return 42; }); await t; InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetBRf", BRFFwdPowerSetpoint, true); } } private void OnPMAbort() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort"); } private void OnOpenButterflyValveView() { //if (butterflyValveMessageBox == null) //{ var _mainWindow = Application.Current.Windows.Cast().FirstOrDefault(window => window is Window) as Window; butterflyValveMessageBox = new ButterflyValveView(); butterflyValveMessageBox.WindowStartupLocation = WindowStartupLocation.Manual; butterflyValveMessageBox.Left = 700; butterflyValveMessageBox.Top = 600; butterflyValveMessageBox.Show(); butterflyValveMessageBox.Owner = _mainWindow; //} } private void OnLoadRecipe() { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = ".rcp|*.rcp"; dialog.InitialDirectory = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes"); if (dialog.ShowDialog() == false) return; SelectedRecipe = dialog.SafeFileName.Split('.')[0]; } private async void OnHV() { if (HVIsOn == true) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetESCHVIsOn", false); } else { await Task.Run(async () => { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetESCHVIsOn", true); await Task.Delay(1000); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetESCHV", ESCVoltage); }); } } private void OnHVSet() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetESCHV", ESCVoltage); } //private void OnSetMatchMode(object obj) //{ // switch (obj.ToString()) // { // case "SRFManual": // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match.ToString()}.{AITRfOperation.SetMatchProcessMode}", EnumRfMatchTuneMode.Manual.ToString()); // break; // case "SRFAuto": // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.Match.ToString()}.{AITRfOperation.SetMatchProcessMode}", EnumRfMatchTuneMode.Auto.ToString()); // break; // case "BRFManual": // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch.ToString()}.{AITRfOperation.SetMatchProcessMode}", EnumRfMatchTuneMode.Manual.ToString()); // break; // case "BRFAuto": // InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{VenusDevice.BiasMatch.ToString()}.{AITRfOperation.SetMatchProcessMode}", EnumRfMatchTuneMode.Auto.ToString()); // break; // } //} private void OnRunRecipe(object obj) { string recipeName = SelectedRecipe; InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}",recipeName); } private void OnSetChillerTemp() { var value = (QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.Chiller.ChillerTemperatureOffset").ToString()); float x; float.TryParse(value, out x); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.HeatChiller", ChillerTempSetpoint, x); } private void OnOffChiller() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.OnOffChiller", !ChillerIsOn); } private void OnHeater(object obj) { AITHeaterData heaterData = obj as AITHeaterData; var _mainWindow = Application.Current.Windows.Cast().FirstOrDefault(window => window is Window) as Window; heaterView = new HeaterView(heaterData); heaterView.WindowStartupLocation = WindowStartupLocation.CenterScreen; heaterView.Owner = _mainWindow; heaterView.Show(); } #endregion #region 私有方法 void timer_Tick(object sender, EventArgs e) { RtConfigValues = QueryDataClient.Instance.Service.PollConfig(m_RtConfigKeys); RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys); var N2SetPoint =Convert.ToInt32( QueryDataClient.Instance.Service.GetConfig("System.TurboN2FlowSetPoint")); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.MfcN2.SetPoint", N2SetPoint); PVN21ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVN21.IsOpen"]; GasFinalValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveGasFinal.IsOpen"]; PV11ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV11.IsOpen"]; PV12ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV12.IsOpen"]; PV21ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV21.IsOpen"]; PV22ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV22.IsOpen"]; PV31ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV31.IsOpen"]; PV32ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV32.IsOpen"]; PV41ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV41.IsOpen"]; PV42ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePV42.IsOpen"]; MFC1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc1.IsOpen"]; MFC2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc2.IsOpen"]; MFC3ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc3.IsOpen"]; MFC4ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc4.IsOpen"]; MFC5ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc5.IsOpen"]; MFC6ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc6.IsOpen"]; MFC7ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc7.IsOpen"]; MFC8ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveMfc8.IsOpen"]; N2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveN2.IsOpen"]; SoftPumpValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveSoftPump.IsOpen"]; FastPumpValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveFastPump.IsOpen"]; GuageValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveGuage.IsOpen"]; PVHe1ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVHe1.IsOpen"]; PVHe2ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVHe2.IsOpen"]; PVN21ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVN21.IsOpen"]; PVN22ValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValvePVN22.IsOpen"]; TurboPumpPumpingValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveTurboPumpPumping.IsOpen"]; TurboPumpPurgeValveIsOpen = (bool)RtDataValues[$"{ModuleName}.ValveTurboPumpPurge.IsOpen"]; HVIsOn = (bool)RtDataValues[$"{ModuleName}.ESCHV.IsOn"]; PumpIsOpen = (bool)RtDataValues[$"{ModuleName}.PumpIsRunning"]; TurboIsOpen = (bool)RtDataValues[$"{ModuleName}.TurboPumpIsRunning"]; BRFIsOn = (bool)RtDataValues[$"{ModuleName}.BRfIsOn"]; SRFIsOn = (bool)RtDataValues[$"{ModuleName}.SRfIsOn"]; LiftPinIsUp= (bool)RtDataValues[$"{ModuleName}.LiftPinIsUp"]; IsSlitDoorClosed = (bool)RtDataValues[$"{ModuleName}.IsSlitDoorClosed"]; IsLidClosed = (bool)RtDataValues[$"{ModuleName}.IsLidClosed"]; PendulumValvePosition = float.Parse(RtDataValues[$"{ModuleName}.GetPVPosition"].ToString()); TurboPumpRotationalSpeed = Convert.ToInt32( RtDataValues[$"{ModuleName}.TurboPumpRotationalSpeed"].ToString()); PositionValue = -((int)((PendulumValvePosition) * 0.09)); PMState currentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString()); if (PMCurrentState != currentState) { PMCurrentState = currentState; } GasIsFlowing = PMCurrentState == PMState.GasFlowing; MFC1Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas1"]; MFC2Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas2"]; MFC3Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas3"]; MFC4Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas4"]; MFC5Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas5"]; MFC6Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas6"]; MFC7Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas7"]; MFC8Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcGas8"]; MFCHeData= (AITMfcData)RtDataValues[$"{ModuleName}.MfcHe"]; MFCN2Data = (AITMfcData)RtDataValues[$"{ModuleName}.MfcN2"]; ValveHeaterData= (AITHeaterData)RtDataValues[$"{ModuleName}.ValveHeater.DeviceData"]; ForelineHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.ForelineHeater.DeviceData"]; WallHeaterData = (AITHeaterData)RtDataValues[$"{ModuleName}.WallHeater.DeviceData"]; ProcessHighPressure= float.Parse(RtDataValues[$"{ModuleName}.ProcessHighPressure"].ToString()); ProcessLowPressure = float.Parse(RtDataValues[$"{ModuleName}.ProcessLowPressure"].ToString()); ForelinePressure = float.Parse(RtDataValues[$"{ModuleName}.ForelinePressure"].ToString()); ESCHePressure = float.Parse(RtDataValues[$"{ModuleName}.ESCHePressure"].ToString()); ChillerTemperature = float.Parse(RtDataValues[$"{ModuleName}.Chiller.Temp"].ToString()); PendulumValveIsOpen = (bool)RtDataValues[$"{ModuleName}.PendulumValve.IsOpen"]; ChillerIsOn= (bool)RtDataValues[$"{ModuleName}.Chiller.IsOn"]; SourceRFFanInterlock= (bool)RtDataValues[$"{ModuleName}.SourceRFFanInterlock"]; IsWLK= (bool)RtDataValues[$"{ModuleName}.IsWLK"]; IsWaterFlowOk= (bool)RtDataValues[$"{ModuleName}.IsWaterFlowOk"]; IsTurboPumpInterlock= (bool)RtDataValues[$"{ModuleName}.IsTurboPumpInterlock"]; IsCDAOK= (bool)RtDataValues[$"{ModuleName}.IsCDA_OK"]; SensorGasBoxDoor= (bool)RtDataValues[$"{ModuleName}.SensorGasBoxDoor"]; SensorGasBoxPressure= (bool)RtDataValues[$"{ModuleName}.SensorGasBoxPressure"]; IsATM= (bool)RtDataValues[$"{ModuleName}.IsATM"]; IsVAC = (bool)RtDataValues[$"{ModuleName}.IsVAC"]; ESCHVOutputVoltage= (int)RtDataValues[$"{ModuleName}.ESCHV.OutputVoltage"]; SRfReflectPower= float.Parse(RtDataValues[$"{ModuleName}.SRfReflectPower"].ToString()); SRfForwardPowerFeedBack = float.Parse(RtDataValues[$"{ModuleName}.SRfForwardPowerFeedBack"].ToString()); BRfReflectPower = float.Parse(RtDataValues[$"{ModuleName}.BRfReflectPower"].ToString()); BRfForwardPowerFeedBack = float.Parse(RtDataValues[$"{ModuleName}.BRfForwardPowerFeedBack"].ToString()); MatchWorkMode=RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.Match}.WorkMode") ? (int)RtDataValues[$"{ModuleName}.{VenusDevice.Match}.WorkMode"] : 0; BiasMatchWorkMode = RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.BiasMatch}.WorkMode") ? (int)RtDataValues[$"{ ModuleName}.{VenusDevice.BiasMatch}.WorkMode"]:0; MatchC1= RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.Match}.C1") ? float.Parse(RtDataValues[$"{ModuleName}.{VenusDevice.Match}.C1"].ToString()):0; MatchC2 = RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.Match}.C2") ? float.Parse(RtDataValues[$"{ModuleName}.{VenusDevice.Match}.C2"].ToString()) : 0; BiasMatchC1 = RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.BiasMatch}.C1") ? float.Parse(RtDataValues[$"{ModuleName}.{VenusDevice.BiasMatch}.C1"].ToString()):0; BiasMatchC2 = RtDataValues.Keys.Contains($"{ModuleName}.{VenusDevice.BiasMatch}.C2") ? float.Parse(RtDataValues[$"{ModuleName}.{VenusDevice.BiasMatch}.C2"].ToString()) : 0; TurboPumpWaterFlowSwitch= ((AITSensorData)RtDataValues[$"{ModuleName}.TurboPumpWaterFlowSwitch"]).Value; IsTurboPumpAtSpeed = (bool)RtDataValues[$"{ModuleName}.IsTurboPumpAtSpeed"]; IsHasWafer= (bool)RtDataValues[$"{ModuleName}.HasWafer"]; } private void addConfigKeys() { m_RtConfigKeys.Add($"{ModuleName}.Pump.PumpBasePressure"); m_RtConfigKeys.Add($"{ModuleName}.Pump.PumpTimeLimit"); } private void addDataKeys() { m_RtDataKeys.Add($"{ModuleName}.MfcGas1"); m_RtDataKeys.Add($"{ModuleName}.MfcGas2"); m_RtDataKeys.Add($"{ModuleName}.MfcGas3"); m_RtDataKeys.Add($"{ModuleName}.MfcGas4"); m_RtDataKeys.Add($"{ModuleName}.MfcGas5"); m_RtDataKeys.Add($"{ModuleName}.MfcGas6"); m_RtDataKeys.Add($"{ModuleName}.MfcGas7"); m_RtDataKeys.Add($"{ModuleName}.MfcGas8"); m_RtDataKeys.Add($"{ModuleName}.MfcHe"); m_RtDataKeys.Add($"{ModuleName}.MfcN2"); m_RtDataKeys.Add($"{ModuleName}.ForelinePressure"); m_RtDataKeys.Add($"{ModuleName}.ProcessHighPressure"); m_RtDataKeys.Add($"{ModuleName}.ProcessLowPressure"); m_RtDataKeys.Add($"{ModuleName}.ChamberPressure"); m_RtDataKeys.Add($"{ModuleName}.ESCHePressure"); m_RtDataKeys.Add($"{ModuleName}.IsATM"); m_RtDataKeys.Add($"{ModuleName}.IsVAC"); m_RtDataKeys.Add($"{ModuleName}.LiftPinIsUp"); m_RtDataKeys.Add($"{ModuleName}.LiftPinIsDown"); m_RtDataKeys.Add($"{ModuleName}.ValvePVN21.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePVN22.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV11.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV12.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV21.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV22.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV31.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV32.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV41.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePV42.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc1.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc2.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc3.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc4.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc5.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc6.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc7.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveMfc8.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveGasFinal.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveSoftPump.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveFastPump.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveN2.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePVHe1.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePVHe2.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveTurboPumpPumping.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveTurboPumpPurge.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePVN21.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValvePVN22.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.ValveGuage.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.TurboPumpIsRunning"); m_RtDataKeys.Add($"{ModuleName}.PumpIsRunning"); m_RtDataKeys.Add($"{ModuleName}.IsSlitDoorClosed"); m_RtDataKeys.Add($"{ModuleName}.IsLidClosed"); m_RtDataKeys.Add($"{ModuleName}.SRfIsOn"); m_RtDataKeys.Add($"{ModuleName}.SRfForwardPowerFeedBack"); m_RtDataKeys.Add($"{ModuleName}.SRfReflectPower"); m_RtDataKeys.Add($"{ModuleName}.BRfIsOn"); m_RtDataKeys.Add($"{ModuleName}.BRfForwardPowerFeedBack"); m_RtDataKeys.Add($"{ModuleName}.BRfReflectPower"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.C1"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.C2"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.Match}.WorkMode"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.BiasMatch}.C1"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.BiasMatch}.C2"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.BiasMatch}.WorkMode"); m_RtDataKeys.Add($"{ModuleName}.{VenusDevice.PendulumValve}.IsOpen"); m_RtDataKeys.Add($"{ModuleName}.TurboPumpRotationalSpeed"); m_RtDataKeys.Add($"{ModuleName}.GetPVPosition"); m_RtDataKeys.Add($"{ModuleName}.Chiller.Temp"); m_RtDataKeys.Add($"{ModuleName}.ESCHV.OutputVoltage"); m_RtDataKeys.Add($"{ModuleName}.ESCHV.IsOn"); m_RtDataKeys.Add($"{ModuleName}.IsWaterFlowOk"); m_RtDataKeys.Add($"{ModuleName}.IsWLK"); m_RtDataKeys.Add($"{ModuleName}.IsCDA_OK"); m_RtDataKeys.Add($"{ModuleName}.SourceRFFanInterlock"); m_RtDataKeys.Add($"{ModuleName}.IsTurboPumpInterlock"); m_RtDataKeys.Add($"{ModuleName}.SensorGasBoxDoor"); m_RtDataKeys.Add($"{ModuleName}.SensorGasBoxPressure"); m_RtDataKeys.Add($"{ModuleName}.WallTempFeedBack"); m_RtDataKeys.Add($"{ModuleName}.Chiller.IsOn"); m_RtDataKeys.Add($"{ModuleName}.ValveHeater.DeviceData"); m_RtDataKeys.Add($"{ModuleName}.ForelineHeater.DeviceData"); m_RtDataKeys.Add($"{ModuleName}.WallHeater.DeviceData"); m_RtDataKeys.Add($"{ModuleName}.FsmState"); m_RtDataKeys.Add($"{ModuleName}.IsTurboPumpAtSpeed"); m_RtDataKeys.Add($"{ModuleName}.TurboPumpWaterFlowSwitch"); m_RtDataKeys.Add($"{ModuleName}.HasWafer"); } #endregion } }