Browse Source

1.PM 界面 run recipe 变为手动模式
2.run recipe 添加 选择recipe type 功能
3.添加 next/stop recipe 按钮
4.添加配置排除info log 功能(topviewmodel做限制,只有kepler2200有效)

# Conflicts:
# Venus/Venus_RT/Modules/PMs/PMProcessRoutine.cs

lixiang 1 year ago
parent
commit
0f0650b80f
26 changed files with 1465 additions and 1405 deletions
  1. 0 26
      Venus/Venus_Core/Recipe.cs
  2. 33 36
      Venus/Venus_MainPages/ViewModels/OverKepler2200AViewModel.cs
  3. 28 81
      Venus/Venus_MainPages/ViewModels/OverKepler2200BViewModel.cs
  4. 29 8
      Venus/Venus_MainPages/ViewModels/OverKepler2300ViewModel.cs
  5. 29 6
      Venus/Venus_MainPages/ViewModels/OverVenusSEViewModel.cs
  6. 31 7
      Venus/Venus_MainPages/ViewModels/OverVenusViewModel.cs
  7. 7 4
      Venus/Venus_MainPages/ViewModels/RecipeViewModel.cs
  8. 16 8
      Venus/Venus_MainPages/ViewModels/TopViewModel.cs
  9. 23 7
      Venus/Venus_MainPages/Views/OverKepler2200AView.xaml
  10. 20 6
      Venus/Venus_MainPages/Views/OverKepler2200BView.xaml
  11. 137 190
      Venus/Venus_MainPages/Views/OverKepler2300View.xaml
  12. 1 1
      Venus/Venus_MainPages/Views/OverVenusDEView.xaml
  13. 22 6
      Venus/Venus_MainPages/Views/OverVenusSEView.xaml
  14. 982 959
      Venus/Venus_MainPages/Views/OverVenusView.xaml
  15. 1 1
      Venus/Venus_RT/App.config
  16. 2 1
      Venus/Venus_RT/Config/System.sccfg
  17. 7 6
      Venus/Venus_RT/Config/System_Kepler2200.sccfg
  18. 1 0
      Venus/Venus_RT/Config/System_Kepler2300.sccfg
  19. 2 1
      Venus/Venus_RT/Config/System_Venus.sccfg
  20. 2 1
      Venus/Venus_RT/Config/System_VenusDE.sccfg
  21. 2 1
      Venus/Venus_RT/Config/System_VenusSE.sccfg
  22. 70 29
      Venus/Venus_RT/Modules/PMs/PumpDownRoutine.cs
  23. 5 5
      Venus/Venus_Simulator/Devices/PendulumValveMockPMA.cs
  24. 5 5
      Venus/Venus_Simulator/Devices/PendulumValveMockPMB.cs
  25. 5 5
      Venus/Venus_Simulator/Devices/PendulumValveMockPMC.cs
  26. 5 5
      Venus/Venus_Simulator/Devices/PendulumValveMockPMD.cs

+ 0 - 26
Venus/Venus_Core/Recipe.cs

@@ -181,32 +181,6 @@ namespace Venus_Core
             get { return m_Comment; }
             set { m_Comment = value; InvokePropertyChanged("Comment"); }
         }
-        //private string m_ChillerTemp1;
-        //public string ChillerTemp1
-        //{
-        //    get { return m_ChillerTemp1; }
-        //    set { m_ChillerTemp1 = value; InvokePropertyChanged("ChillerTemp1"); }
-        //}
-        //private string m_ChillerTemp2;
-        //public string ChillerTemp2
-        //{
-        //    get { return m_ChillerTemp2; }
-        //    set { m_ChillerTemp2 = value; InvokePropertyChanged("ChillerTemp2"); }
-        //}
-
-        //private string m_ChillerTemp3;
-        //public string ChillerTemp3
-        //{
-        //    get { return m_ChillerTemp3; }
-        //    set { m_ChillerTemp3 = value; InvokePropertyChanged("ChillerTemp3"); }
-        //}
-
-        //private string m_ChillerTemp4;
-        //public string ChillerTemp4
-        //{
-        //    get { return m_ChillerTemp4; }
-        //    set { m_ChillerTemp4 = value; InvokePropertyChanged("ChillerTemp4"); }
-        //}
 
         public event PropertyChangedEventHandler PropertyChanged;
 

+ 33 - 36
Venus/Venus_MainPages/ViewModels/OverKepler2200AViewModel.cs

@@ -18,8 +18,6 @@ using MECF.Framework.Common.CommonData.DeviceData;
 using Path = System.IO.Path;
 using System.Windows.Controls;
 using Aitex.Core.RT.Log;
-using System.Windows.Input;
-using ExcelLibrary.BinaryFileFormat;
 
 namespace Venus_MainPages.ViewModels
 {
@@ -133,7 +131,9 @@ namespace Venus_MainPages.ViewModels
 
 
         private bool m_IsAutoMode;
-        private string m_SelectedRecipe;
+        private int m_SelectedRecipeIndex=-1;
+        private ComboBoxItem m_SelectedRecipeType;
+
 
         //private float m_ChillerTempSetpoint;
         private float m_WallTempSetpoint;
@@ -158,26 +158,9 @@ namespace Venus_MainPages.ViewModels
         private bool m_IsSlitDoorClosed;
         private bool m_IsLidClosed;
 
-        //private float m_ChillerTemperature;
-        //private float m_HVTemperature;
-
-
-        //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 string m_MatchWorkMode;
-        //private float m_BiasMatchC1;
-        //private float m_BiasMatchC2;
 
         private float m_PendulumValvePosition;
 
@@ -206,7 +189,6 @@ namespace Venus_MainPages.ViewModels
 
         private float m_HighTemperatureHeaterRatioSetpoint;
         private PressureType m_PressureType;
-        //private JetChamber m_ChamberType;
         private bool m_IsInclude;
 
         #endregion
@@ -890,10 +872,15 @@ namespace Venus_MainPages.ViewModels
             get { return m_IsAutoMode; }
             set { SetProperty(ref m_IsAutoMode, value); }
         }
-        public string SelectedRecipe
+        public int SelectedRecipeIndex
+        {
+            get { return m_SelectedRecipeIndex; }
+            set { SetProperty(ref m_SelectedRecipeIndex, value); }
+        }
+        public ComboBoxItem SelectedRecipeType
         {
-            get { return m_SelectedRecipe; }
-            set { SetProperty(ref m_SelectedRecipe, value); }
+            get { return m_SelectedRecipeType; }
+            set { SetProperty(ref m_SelectedRecipeType, value); }
         }
 
         //public float ChillerTempSetpoint
@@ -1047,6 +1034,10 @@ namespace Venus_MainPages.ViewModels
         public DelegateCommand LoadRecipeCommand =>
             _LoadRecipeCommand ?? (_LoadRecipeCommand = new DelegateCommand(OnLoadRecipe));
 
+        private DelegateCommand _SwitchTypeCommand;
+        public DelegateCommand SwitchTypeCommand =>
+            _SwitchTypeCommand ?? (_SwitchTypeCommand = new DelegateCommand(OnSwitchType));
+
 
         private DelegateCommand<object> _ControlValveCommand;
         public DelegateCommand<object> ControlValveCommand =>
@@ -1341,21 +1332,27 @@ namespace Venus_MainPages.ViewModels
         }
         private void OnLoadRecipe()
         {
-            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
-        }   
-
+            //string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
+            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType)).ToList();
+        }
+        private void OnSwitchType()
+        {
+            SelectedRecipeIndex = -1;
+        }
 
         private void OnRunRecipe(object obj)
         {
-            string recipeName = SelectedRecipe;
-            if (recipeName == null)
+            if (SelectedRecipeIndex == -1)
             {
                 return;
             }
+            string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
             ClearData();
-            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process", recipeName + ".rcp");
+            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType, recipeName + ".rcp");
             CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
-            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, "Process");
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, recipeType);
             LOG.Info($"{ModuleName},Run Recipe {recipeName},");
         }
 
@@ -1394,10 +1391,10 @@ namespace Venus_MainPages.ViewModels
             {
                 InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ManualEndStep");
             }
-            else if (CurrentRecipeResult?.RecipeStepNumber != null && CurrentRecipeResult?.RecipeStepNumber == CurrentRecipeResult?.RecipeStepCount)
-            {
-                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort");
-            }
+            //else if (CurrentRecipeResult?.RecipeStepNumber != null && CurrentRecipeResult?.RecipeStepNumber == CurrentRecipeResult?.RecipeStepCount)
+            //{
+            //    InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort");
+            //}
         }
 
         private void OnGotoPosition()
@@ -1558,7 +1555,7 @@ namespace Venus_MainPages.ViewModels
             PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
 
             GasIsFlowing = PMCurrentState == PMState.GasFlowing;
-            IsProcessing = PMCurrentState == PMState.Processing;
+            IsProcessing = PMCurrentState == PMState.Processing || PMCurrentState == PMState.Clean;
             MFC1Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas1");
             MFC2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas2");
             MFC3Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas3");

+ 28 - 81
Venus/Venus_MainPages/ViewModels/OverKepler2200BViewModel.cs

@@ -214,6 +214,8 @@ namespace Venus_MainPages.ViewModels
         private int m_HighTemperatureHeaterRatioSetpoint;
         private PressureType m_PressureType;
         private bool m_IsInclude;
+        private int m_SelectedRecipeIndex=-1;
+        private ComboBoxItem m_SelectedRecipeType;
 
         #endregion
 
@@ -324,39 +326,6 @@ namespace Venus_MainPages.ViewModels
                 SetProperty(ref m_PendulumValveData, value);
             }
         }
-
-        //public AITHVData ESCHVData
-        //{
-        //    get { return m_ESCHVData; }
-        //    set
-        //    {
-        //        SetProperty(ref m_ESCHVData, 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 float HVTemperature
-        //{
-        //    get { return m_HVTemperature; }
-        //    set
-        //    {
-        //        SetProperty(ref m_HVTemperature, value);
-        //    }
-        //}
         public bool IsLidClosed
         {
             get { return m_IsLidClosed; }
@@ -375,14 +344,6 @@ namespace Venus_MainPages.ViewModels
             }
         }
 
-        //public bool LiftPinIsUp
-        //{
-        //    get { return m_LiftPinIsUp; }
-        //    set
-        //    {
-        //        SetProperty(ref m_LiftPinIsUp, value);
-        //    }
-        //}
 
         public int TurboPumpRotationalSpeed
         {
@@ -393,14 +354,6 @@ namespace Venus_MainPages.ViewModels
             }
         }
 
-        //public float ESCHePressure
-        //{
-        //    get { return m_ESCHePressure; }
-        //    set
-        //    {
-        //        SetProperty(ref m_ESCHePressure, value);
-        //    }
-        //}
 
         public float ChamberPressure
         {
@@ -915,34 +868,16 @@ namespace Venus_MainPages.ViewModels
             get { return m_IsAutoMode; }
             set { SetProperty(ref m_IsAutoMode, value); }
         }
-        public string SelectedRecipe
+        public int SelectedRecipeIndex
         {
-            get { return m_SelectedRecipe; }
-            set { SetProperty(ref m_SelectedRecipe, value); }
+            get { return m_SelectedRecipeIndex; }
+            set { SetProperty(ref m_SelectedRecipeIndex, value); }
+        }
+        public ComboBoxItem SelectedRecipeType
+        {
+            get { return m_SelectedRecipeType; }
+            set { SetProperty(ref m_SelectedRecipeType, 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); }
-        //}
 
         public double ChamberPressureFeedBack
         {
@@ -1073,6 +1008,10 @@ namespace Venus_MainPages.ViewModels
             _LoadRecipeCommand ?? (_LoadRecipeCommand = new DelegateCommand(OnLoadRecipe));
 
 
+        private DelegateCommand _SwitchTypeCommand;
+        public DelegateCommand SwitchTypeCommand =>
+            _SwitchTypeCommand ?? (_SwitchTypeCommand = new DelegateCommand(OnSwitchType));
+        
         private DelegateCommand<object> _ControlValveCommand;
         public DelegateCommand<object> ControlValveCommand =>
             _ControlValveCommand ?? (_ControlValveCommand = new DelegateCommand<object>(OnControlValve));
@@ -1357,24 +1296,32 @@ namespace Venus_MainPages.ViewModels
             }
 
         }
+
+        private void OnSwitchType()
+        {
+            SelectedRecipeIndex = -1;
+
+        }
         private void OnLoadRecipe()
         {
-            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
+            string recipeType = SelectedRecipeType.Content.ToString();
+            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType)).ToList();
         }
 
 
 
         private void OnRunRecipe(object obj)
         {
-            string recipeName = SelectedRecipe;
-            if (recipeName == null)
+            if (SelectedRecipeIndex == -1)
             {
                 return;
             }
+            string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
             ClearData();
-            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process", recipeName + ".rcp");
+            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType, recipeName + ".rcp");
             CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
-            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, "Process");
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, recipeType);
             LOG.Info($"{ModuleName},Run Recipe {recipeName},");
         }
 
@@ -1581,7 +1528,7 @@ namespace Venus_MainPages.ViewModels
             PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
 
             GasIsFlowing = PMCurrentState == PMState.GasFlowing;
-            IsProcessing = PMCurrentState == PMState.Processing;
+            IsProcessing = PMCurrentState == PMState.Processing || PMCurrentState == PMState.Clean;
             MFC1Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas1");
             MFC2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas2");
             MFC3Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas3");

+ 29 - 8
Venus/Venus_MainPages/ViewModels/OverKepler2300ViewModel.cs

@@ -17,6 +17,7 @@ using Venus_MainPages.Unity;
 using MECF.Framework.Common.CommonData.DeviceData;
 using Path = System.IO.Path;
 using Aitex.Core.RT.Log;
+using System.Windows.Controls;
 
 namespace Venus_MainPages.ViewModels
 {
@@ -200,7 +201,8 @@ namespace Venus_MainPages.ViewModels
         private string m_WaferID;
         private int? currentRecipeNumber;
         private bool m_IsInclude;
-
+        private int m_SelectedRecipeIndex=-1;
+        private ComboBoxItem m_SelectedRecipeType;
         #endregion
 
         #region  属性
@@ -963,6 +965,16 @@ namespace Venus_MainPages.ViewModels
             get { return m_WaferID; }
             set { SetProperty(ref m_WaferID, value); }
         }
+        public int SelectedRecipeIndex
+        {
+            get { return m_SelectedRecipeIndex; }
+            set { SetProperty(ref m_SelectedRecipeIndex, value); }
+        }
+        public ComboBoxItem SelectedRecipeType
+        {
+            get { return m_SelectedRecipeType; }
+            set { SetProperty(ref m_SelectedRecipeType, value); }
+        }
         #endregion
 
         #region 命令
@@ -1096,6 +1108,9 @@ namespace Venus_MainPages.ViewModels
         private DelegateCommand _IncludeCommand;
         public DelegateCommand IncludeCommand =>
             _IncludeCommand ?? (_IncludeCommand = new DelegateCommand(OnInclude));
+        private DelegateCommand _SwitchTypeCommand;
+        public DelegateCommand SwitchTypeCommand =>
+            _SwitchTypeCommand ?? (_SwitchTypeCommand = new DelegateCommand(OnSwitchType));
         #endregion
 
         #region 构造函数
@@ -1363,7 +1378,8 @@ namespace Venus_MainPages.ViewModels
         }
         private void OnLoadRecipe()
         {
-            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
+            string recipeType = SelectedRecipeType.Content.ToString();
+            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType)).ToList();
         }
 
         private void OnHVSet()
@@ -1372,18 +1388,23 @@ namespace Venus_MainPages.ViewModels
 
         }
 
-
+        private void OnSwitchType()
+        {
+            SelectedRecipeIndex = -1;
+        }
         private void OnRunRecipe(object obj)
         {
-            string recipeName = SelectedRecipe;
-            if (recipeName == null)
+            if (SelectedRecipeIndex == -1)
             {
                 return;
             }
+            string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
             ClearData();
-            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process", recipeName + ".rcp");
+            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType, recipeName + ".rcp");
             CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
-            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, "Process");
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, recipeType);
+            LOG.Info($"{ModuleName},Run Recipe {recipeName},");
         }
 
         private void OnSetChillerTemp(object obj)
@@ -1609,7 +1630,7 @@ namespace Venus_MainPages.ViewModels
             PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
 
             GasIsFlowing = PMCurrentState == PMState.GasFlowing;
-            IsProcessing = PMCurrentState == PMState.Processing;
+            IsProcessing = PMCurrentState == PMState.Processing || PMCurrentState == PMState.Clean;
             MFC1Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas1");
             MFC2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas2");
             MFC3Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas3");

+ 29 - 6
Venus/Venus_MainPages/ViewModels/OverVenusSEViewModel.cs

@@ -22,6 +22,7 @@ using Venus_Themes.UserControls;
 using Prism.Commands;
 using MECF.Framework.Common.DataCenter;
 using System.IO;
+using System.Windows.Controls;
 
 namespace Venus_MainPages.ViewModels
 {
@@ -239,6 +240,8 @@ namespace Venus_MainPages.ViewModels
         private string m_WaferID;
         private string m_ModuleName;
         private int? currentRecipeNumber;
+        private int m_SelectedRecipeIndex = -1;
+        private ComboBoxItem m_SelectedRecipeType;
 
         #endregion
         #region  属性
@@ -1069,6 +1072,16 @@ namespace Venus_MainPages.ViewModels
             get { return m_WaferID; }
             set { SetProperty(ref m_WaferID, value); }
         }
+        public int SelectedRecipeIndex
+        {
+            get { return m_SelectedRecipeIndex; }
+            set { SetProperty(ref m_SelectedRecipeIndex, value); }
+        }
+        public ComboBoxItem SelectedRecipeType
+        {
+            get { return m_SelectedRecipeType; }
+            set { SetProperty(ref m_SelectedRecipeType, value); }
+        }
         #endregion
         #region 命令
 
@@ -1195,6 +1208,10 @@ namespace Venus_MainPages.ViewModels
         private DelegateCommand<object> _AbortRecipeCommnad;
         public DelegateCommand<object> AbortRecipeCommnad =>
             _AbortRecipeCommnad ?? (_AbortRecipeCommnad = new DelegateCommand<object>(OnAbortRecipe));
+
+        private DelegateCommand _SwitchTypeCommand;
+        public DelegateCommand SwitchTypeCommand =>
+     _SwitchTypeCommand ?? (_SwitchTypeCommand = new DelegateCommand(OnSwitchType));
         #endregion
 
         #region 构造函数
@@ -1405,7 +1422,10 @@ namespace Venus_MainPages.ViewModels
 
             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Pump");
         }
-
+        private void OnSwitchType()
+        {
+            SelectedRecipeIndex = -1;
+        }
         private void OnOpenPump()
         {
 
@@ -1512,7 +1532,8 @@ namespace Venus_MainPages.ViewModels
         }
         private void OnLoadRecipe()
         {
-            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
+            string recipeType = SelectedRecipeType.Content.ToString();
+            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType)).ToList();
         }
 
         private void OnHV()
@@ -1545,15 +1566,17 @@ namespace Venus_MainPages.ViewModels
 
         private void OnRunRecipe(object obj)
         {
-            string recipeName = SelectedRecipe;
-            if (recipeName == null)
+            if (SelectedRecipeIndex == -1)
             {
                 return;
             }
+            string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
             ClearData();
-            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process", recipeName + ".rcp");
+            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType, recipeName + ".rcp");
             CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
-            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, "Process");
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, recipeType);
+            LOG.Info($"{ModuleName},Run Recipe {recipeName}");
         }
 
         private void OnSetChillerTemp()

+ 31 - 7
Venus/Venus_MainPages/ViewModels/OverVenusViewModel.cs

@@ -21,6 +21,7 @@ using System.Windows.Shapes;
 using Path = System.IO.Path;
 using Aitex.Core.RT.Log;
 using RecipeStep = Venus_Core.RecipeStep;
+using System.Windows.Controls;
 
 namespace Venus_MainPages.ViewModels
 {
@@ -206,6 +207,8 @@ namespace Venus_MainPages.ViewModels
         private string m_WaferID;
         private string m_ModuleName;
         private int? currentRecipeNumber;
+        private int m_SelectedRecipeIndex = -1;
+        private ComboBoxItem m_SelectedRecipeType;
 
         #endregion
 
@@ -927,6 +930,17 @@ namespace Venus_MainPages.ViewModels
             get { return m_WaferID; }
             set { SetProperty(ref m_WaferID, value); }
         }
+
+        public int SelectedRecipeIndex
+        {
+            get { return m_SelectedRecipeIndex; }
+            set { SetProperty(ref m_SelectedRecipeIndex, value); }
+        }
+        public ComboBoxItem SelectedRecipeType
+        {
+            get { return m_SelectedRecipeType; }
+            set { SetProperty(ref m_SelectedRecipeType, value); }
+        }
         #endregion
 
         #region 命令
@@ -1054,6 +1068,10 @@ namespace Venus_MainPages.ViewModels
         private DelegateCommand<object> _AbortRecipeCommnad;
         public DelegateCommand<object> AbortRecipeCommnad =>
             _AbortRecipeCommnad ?? (_AbortRecipeCommnad = new DelegateCommand<object>(OnAbortRecipe));
+
+        private DelegateCommand _SwitchTypeCommand;
+        public DelegateCommand SwitchTypeCommand =>
+     _SwitchTypeCommand ?? (_SwitchTypeCommand = new DelegateCommand(OnSwitchType));
         #endregion
 
         #region 构造函数
@@ -1361,7 +1379,8 @@ namespace Venus_MainPages.ViewModels
         }
         private void OnLoadRecipe()
         {
-            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process")).ToList();
+            string recipeType = SelectedRecipeType.Content.ToString();
+            CurrentModuleRecipes = GetFilesNames(Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType)).ToList();
         }
 
         private void OnHV()
@@ -1391,18 +1410,23 @@ namespace Venus_MainPages.ViewModels
 
         }
 
-
+        private void OnSwitchType()
+        {
+            SelectedRecipeIndex = -1;
+        }
         private void OnRunRecipe(object obj)
         {
-            string recipeName = SelectedRecipe;
-            if (recipeName == null)
+            if (SelectedRecipeIndex == -1)
             {
                 return;
             }
+            string recipeName = CurrentModuleRecipes[SelectedRecipeIndex];
+            string recipeType = SelectedRecipeType.Content.ToString();
             ClearData();
-            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, "Process", recipeName + ".rcp");
+            var recipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", ModuleName, recipeType, recipeName + ".rcp");
             CurrentRecipe = Recipe.Load(File.ReadAllText(recipePath));
-            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, "Process");
+            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.RunRecipe}", recipeName, ModuleManager.ModuleInfos[ModuleName].WaferManager.Wafers[0].WaferID, recipeType);
+            LOG.Info($"{ModuleName},Run Recipe {recipeName},");
         }
 
         private void OnSetChillerTemp()
@@ -1591,7 +1615,7 @@ namespace Venus_MainPages.ViewModels
                 PMCurrentState = (PMState)Enum.Parse(typeof(PMState), RtDataValues[$"{ModuleName}.FsmState"].ToString());
 
                 GasIsFlowing = PMCurrentState == PMState.GasFlowing;
-                IsProcessing = PMCurrentState == PMState.Processing;
+                IsProcessing = PMCurrentState == PMState.Processing || PMCurrentState == PMState.Clean;
                 MFC1Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas1");
                 MFC2Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas2");
                 MFC3Data = CommonFunction.GetValue<AITMfcData>(RtDataValues, $"{ModuleName}.MfcGas3");

+ 7 - 4
Venus/Venus_MainPages/ViewModels/RecipeViewModel.cs

@@ -236,7 +236,6 @@ namespace Venus_MainPages.ViewModels
             {
                 return;
             }
-
             string moduleName = "";
             switch (obj.ToString())
             {
@@ -263,12 +262,14 @@ namespace Venus_MainPages.ViewModels
             }
             if (moduleName == "ALL")
             {
-                var newName = Interaction.InputBox(" ", $"Save  Recipe To All", CurrentRecipeName, -1, -1);
+                var newName = Interaction.InputBox(" ", $"Save Recipe To All", CurrentRecipeName, -1, -1);
 
                 foreach (var x in moduleList)
                 {
                     if (newName != "")
                     {
+                        OnSaveRecipe();
+
                         var targetChamber = (JetChamber)Enum.Parse(typeof(JetChamber), QueryDataClient.Instance.Service.GetConfig($"{x}.ChamberType").ToString());
                         if (currentChamber != targetChamber || x == ModuleName)
                         {
@@ -301,6 +302,7 @@ namespace Venus_MainPages.ViewModels
                 var newName = Interaction.InputBox(" ", $"Save  Recipe To {moduleName}", CurrentRecipeName, -1, -1);
                 if (newName != "")
                 {
+                    OnSaveRecipe();
 
                     var newRecipe = CurrentRecipe;
                     newRecipe.Header.Name = newName;
@@ -320,10 +322,11 @@ namespace Venus_MainPages.ViewModels
         }
         private void OnLoaded(Object myrecipeView)
         {
+            isInstalledEPD = bool.Parse(QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.EPD.IsEnabled").ToString());
+
             if (firstLoad == true)
             {
                 currentChamber = (JetChamber)Enum.Parse(typeof(JetChamber), QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.ChamberType").ToString());
-                isInstalledEPD = bool.Parse(QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.EPD.IsEnabled").ToString());
                 firstLoad = false;
                 recipeView = myrecipeView as RecipeView;
                 treeViewRcpList = recipeView.treeViewRcpList;
@@ -965,7 +968,7 @@ namespace Venus_MainPages.ViewModels
                     string propertyTypeName = propertyInfo.PropertyType.Name;
                     if (propertyInfoName != "LstUnit")
                     {
-                        if ((propertyInfoName == "EPDConfig" || propertyInfoName == "MinEndPointTime" || propertyInfoName == "MaxEndPointTime") && isInstalledEPD == false)
+                        if ((propertyInfoName == "EPDConfig" || propertyInfoName == "MinEndPointTime" || propertyInfoName == "MaxEndPointTime" || propertyInfoName == "OverEtchPercent") && isInstalledEPD == false)
                         {
                             continue;
 

+ 16 - 8
Venus/Venus_MainPages/ViewModels/TopViewModel.cs

@@ -65,8 +65,9 @@ namespace Venus_MainPages.ViewModels
             eEvent.ERR_PENDULUM_VALVE,
             eEvent.ERR_DEVICE_INFO
         };
-        private PressureType m_PressureType;
-
+        //private PressureType m_PressureType;
+        private ConfigType m_ConfigType;
+        private bool isExcludeInfoType;
         #endregion
 
         #region  属性
@@ -308,9 +309,14 @@ namespace Venus_MainPages.ViewModels
             EventClient.Instance.Start();
             Title = QueryDataClient.Instance.Service.GetConfig($"System.Name").ToString();
 
-            object obj = QueryDataClient.Instance.Service.GetData("System.PressureUnitType");
-            m_PressureType = (PressureType)Convert.ToInt32(obj);
-
+            //object obj = QueryDataClient.Instance.Service.GetData("System.PressureUnitType");
+            //m_PressureType = (PressureType)Convert.ToInt32(obj);
+            m_ConfigType = (ConfigType)Enum.Parse(typeof(ConfigType), QueryDataClient.Instance.Service.GetData("System.ConfigType").ToString());
+            //var islog= QueryDataClient.Instance.Service.GetConfig("System.IsLogExcludeInfoType");
+            if (m_ConfigType==ConfigType.Kepler2200)
+            {
+                isExcludeInfoType= (bool)QueryDataClient.Instance.Service.GetConfig("System.IsLogExcludeInfoType"); 
+            }
         }
         #endregion
 
@@ -415,12 +421,10 @@ namespace Venus_MainPages.ViewModels
             if (SETMIsInstalled)
             {
                 m_RtDataKeys.Add("SETM.FsmState");
-                //m_RtDataKeys.Add("SETM.IsOnline");
             }
             if (VCE1IsInstalled)
             {
                 m_RtDataKeys.Add("VCE1.FsmState");
-                //m_RtDataKeys.Add("VCE1.IsOnline");
             }
 
             m_RtDataKeys.Add("SYSTEM.FsmState");
@@ -433,6 +437,10 @@ namespace Venus_MainPages.ViewModels
 
         private void Instance_OnEvent(EventItem eventItem)
         {
+            if (isExcludeInfoType && eventItem.Level == EventLevel.Information)
+            {
+                return;
+            }
             GlobalEvents.Instance.OnEventItemRaiseChanged(eventItem);
             switch (eventItem.Type)
             {
@@ -448,7 +456,7 @@ namespace Venus_MainPages.ViewModels
                         if (eventItem.Level == EventLevel.Alarm)
                         {
                             alarmQuery.Enqueue(eventItem);
-                            if (m_PressureType == PressureType.Pa)
+                            if (m_ConfigType==ConfigType.Kepler2200)
                             {
                                 if (stopEntityId.Contains((eEvent)eventItem.Id) && eventItem.Source.Contains("PM"))
                                 {

+ 23 - 7
Venus/Venus_MainPages/Views/OverKepler2200AView.xaml

@@ -104,7 +104,7 @@
 
 
 
-            <Canvas Canvas.Top="40" >
+            <Canvas Canvas.Top="40" Canvas.Left="5">
 
                 <ctrls:Pipe2    Canvas.Left="489.8"  Canvas.Top="502" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
                 <!--N2-->
@@ -638,7 +638,7 @@
 
 
             </Canvas >
-            <Canvas Canvas.Left="-150" Canvas.Top="70">
+            <Canvas Canvas.Left="-145" Canvas.Top="70">
 
 
                 <!--与chamber右上角连接的管道-->
@@ -973,9 +973,19 @@
         <Canvas  Grid.Column="1" Background="#C7D2DF">
 
 
-            <TextBlock  Width="140" Height="30" Text="Recipe:"  Canvas.Left="20" Canvas.Top="250"  FontSize="18" />
+            <!--<TextBlock  Width="140" Height="30" Text="Recipe:"  Canvas.Left="20" Canvas.Top="250"  FontSize="18" />-->
 
-            <ComboBox Width="300" Height="30" Canvas.Left="90" Canvas.Top="245"  ItemsSource="{Binding CurrentModuleRecipes}" SelectedItem="{Binding SelectedRecipe}" IsEnabled="{Binding IsAutoMode}" Style="{StaticResource customeComboBoxStyle}"  BorderThickness="1" BorderBrush="Silver" FontSize="15">
+            <ComboBox  Width="100" Height="30" Canvas.Left="20" Canvas.Top="245" Style="{StaticResource customeComboBoxStyle}"  SelectedItem="{Binding SelectedRecipeType}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" BorderThickness="1" BorderBrush="Silver" FontSize="15" SelectedIndex="0">
+                <ComboBoxItem>Process</ComboBoxItem>
+                <ComboBoxItem>Clean</ComboBoxItem>
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="SelectionChanged">
+                        <i:InvokeCommandAction Command="{Binding SwitchTypeCommand}"/>
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </ComboBox>
+
+            <ComboBox Width="400" Height="30" Canvas.Left="121" Canvas.Top="245"  ItemsSource="{Binding CurrentModuleRecipes}" SelectedIndex="{Binding SelectedRecipeIndex}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Style="{StaticResource customeComboBoxStyle}"  BorderThickness="1" BorderBrush="Silver" FontSize="15">
                 <i:Interaction.Triggers>
                     <i:EventTrigger EventName="DropDownOpened">
                         <i:InvokeCommandAction Command="{Binding LoadRecipeCommand}"/>
@@ -983,9 +993,15 @@
                 </i:Interaction.Triggers>
             </ComboBox>
 
-            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="400" Canvas.Top="245" IsEnabled="{Binding IsAutoMode}" Command="{Binding RunRecipeCommand}"/>
-
-            <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="300"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"  unity:GridOptions.LineThickness="1">
+            <StackPanel Orientation="Horizontal" Canvas.Left="90" Canvas.Top="295">
+                <customControls:PathButton Width="110" Height="30" Content="Start"   IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>
+                <customControls:PathButton Width="110" Height="30" Content="Next"    IsEnabled="{Binding IsProcessing}" Command="{Binding EndStepCommand}" Margin="15 0 0 0"/>
+                <customControls:PathButton Width="110" Height="30" Content="Abort"   IsEnabled="{Binding IsProcessing}" Command="{Binding PMAbortCommnad}" Margin="15 0 0 0"/>
+            </StackPanel>
+           
+            
+            
+            <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"  unity:GridOptions.LineThickness="1" >
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>

+ 20 - 6
Venus/Venus_MainPages/Views/OverKepler2200BView.xaml

@@ -103,7 +103,7 @@
 
 
 
-            <Canvas Canvas.Top="40" >
+            <Canvas Canvas.Top="40" Canvas.Left="5">
 
                 <ctrls:Pipe2    Canvas.Left="489.8"  Canvas.Top="502" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
                 <!--N2-->
@@ -637,7 +637,7 @@
 
 
             </Canvas >
-            <Canvas Canvas.Left="-150" Canvas.Top="70">
+            <Canvas Canvas.Left="-145" Canvas.Top="70">
 
 
                 <!--与chamber右上角连接的管道-->
@@ -1006,9 +1006,19 @@
         <Canvas  Grid.Column="1" Background="#C7D2DF">
 
 
-            <TextBlock  Width="140" Height="30" Text="Recipe:"  Canvas.Left="20" Canvas.Top="250"  FontSize="18" />
+            <!--<TextBlock  Width="140" Height="30" Text="Recipe:"  Canvas.Left="20" Canvas.Top="250"  FontSize="18" />-->
 
-            <ComboBox Width="300" Height="30" Canvas.Left="90" Canvas.Top="245"  ItemsSource="{Binding CurrentModuleRecipes}" SelectedItem="{Binding SelectedRecipe}" IsEnabled="{Binding IsAutoMode}" Style="{StaticResource customeComboBoxStyle}"  BorderThickness="1" BorderBrush="Silver" FontSize="15">
+            <ComboBox  Width="100" Height="30" Canvas.Left="20" Canvas.Top="245" Style="{StaticResource customeComboBoxStyle}"  SelectedItem="{Binding SelectedRecipeType}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" BorderThickness="1" BorderBrush="Silver" FontSize="15" SelectedIndex="0">
+                <ComboBoxItem>Process</ComboBoxItem>
+                <ComboBoxItem>Clean</ComboBoxItem>
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="SelectionChanged">
+                        <i:InvokeCommandAction Command="{Binding SwitchTypeCommand}"/>
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </ComboBox>
+
+            <ComboBox Width="400" Height="30" Canvas.Left="121" Canvas.Top="245"  ItemsSource="{Binding CurrentModuleRecipes}" SelectedIndex="{Binding SelectedRecipeIndex}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Style="{StaticResource customeComboBoxStyle}"  BorderThickness="1" BorderBrush="Silver" FontSize="15">
                 <i:Interaction.Triggers>
                     <i:EventTrigger EventName="DropDownOpened">
                         <i:InvokeCommandAction Command="{Binding LoadRecipeCommand}"/>
@@ -1016,9 +1026,13 @@
                 </i:Interaction.Triggers>
             </ComboBox>
 
-            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="400" Canvas.Top="245" IsEnabled="{Binding IsAutoMode}" Command="{Binding RunRecipeCommand}"/>
+            <StackPanel Orientation="Horizontal" Canvas.Left="90" Canvas.Top="295">
+                <customControls:PathButton Width="110" Height="30" Content="Start"   IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>
+                <customControls:PathButton Width="110" Height="30" Content="Next"    IsEnabled="{Binding IsProcessing}" Command="{Binding EndStepCommand}" Margin="15 0 0 0"/>
+                <customControls:PathButton Width="110" Height="30" Content="Abort"   IsEnabled="{Binding IsProcessing}" Command="{Binding PMAbortCommnad}" Margin="15 0 0 0"/>
+            </StackPanel>
 
-            <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="300"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E0E4E7"  unity:GridOptions.LineThickness="1">
+            <Grid  Width="500" Height="460" Canvas.Left="20" Canvas.Top="340"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E0E4E7"  unity:GridOptions.LineThickness="1">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>

+ 137 - 190
Venus/Venus_MainPages/Views/OverKepler2300View.xaml

@@ -98,7 +98,7 @@
             </Grid>
             <!--</Border>-->
 
-            <Canvas Canvas.Top="40">
+            <Canvas Canvas.Top="40" Canvas.Left="10">
 
                 <ctrls:Pipe2    Canvas.Left="490"  Canvas.Top="615" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
                 <!--N2-->
@@ -446,21 +446,21 @@
                 <!--左侧管道标签-->
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC1SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False"  Canvas.Top="205" Canvas.Left="275" LabelValue="MFC1" ToolTip="{Binding MFC1Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC1Data.Scale}"/>
                 <!--<TextBox Canvas.Top="205" Canvas.Left="250" Width="100" Text="{Binding MfcGas1Setpoint,Mode=TwoWay}"/>-->
-                <ctrls:TextboxWithLabel  Canvas.Top="205" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC1Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="205" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC1Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC2SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="260" Canvas.Left="275" LabelValue="MFC2" ToolTip="{Binding MFC2Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC2Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="260" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC2Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="260" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC2Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC3SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="318" Canvas.Left="275" LabelValue="MFC3" ToolTip="{Binding MFC3Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC3Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="318" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC3Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="318" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC3Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC4SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="370" Canvas.Left="275" LabelValue="MFC4" ToolTip="{Binding MFC4Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC4Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="370" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC4Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="370" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC4Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC5SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="426" Canvas.Left="275" LabelValue="MFC5" ToolTip="{Binding MFC5Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC5Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="426" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC5Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="426" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC5Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC6SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="482" Canvas.Left="275" LabelValue="MFC6" ToolTip="{Binding MFC6Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC6Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="482" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC6Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="482" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC6Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC7SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="538" Canvas.Left="275" LabelValue="MFC7" ToolTip="{Binding MFC7Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC7Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="538" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC7Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="538" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC7Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC8SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="595" Canvas.Left="275" LabelValue="MFC8" ToolTip="{Binding MFC8Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC8Data.Scale}"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="595" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC8Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="595" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC8Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
 
 
 
@@ -537,7 +537,7 @@
 
 
             </Canvas >
-            <Canvas Canvas.Left="-150" Canvas.Top="70">
+            <Canvas Canvas.Left="-135" Canvas.Top="70">
                 <!--<Ellipse Width="20" Height="20" Fill="{Binding PVHe1ValveIsOpen,Converter={StaticResource boolToColor}}"  Canvas.Left="650" Canvas.Top="682" Stroke="Silver" StrokeThickness="2"/>
             <Button Width="100" Content="He ON/OFF"  Style="{StaticResource SysBtnStyle}"  Command="{Binding HeCommand}"                Canvas.Left="680" Canvas.Top="682" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
             <RadioButton Canvas.Left="790" Canvas.Top="684" Content="Flow Mode" FontSize="15"     IsChecked="{Binding HeIsPressureMode,Converter={StaticResource BoolToBool}}"/>
@@ -577,32 +577,17 @@
                 <TextBlock Text="ATM" Canvas.Left="1300" Canvas.Top="134"/>
                 <TextBlock Text="VAC" Canvas.Left="1270" Canvas.Top="220"/>
                 <ctrls:Pipe2     Canvas.Left="1242" Canvas.Top="195" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
+                <ctrls:Pump Canvas.Top="700"  Canvas.Left="1245" Width="35" Height="35" IsOpen="{Binding PumpIsOpen,Mode=TwoWay}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}">
+                    <ctrls:Pump.ContextMenu>
+                        <ContextMenu>
+                            <MenuItem Header="ON"  Command="{Binding OpenPumpCommand}" IsChecked="{Binding PumpIsOpen,Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}"/>
+                            <MenuItem Header="OFF" Command="{Binding ClosePumpCommand}" IsChecked="{Binding PumpIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Mode=OneWay}"/>
+                        </ContextMenu>
+                    </ctrls:Pump.ContextMenu>
+                </ctrls:Pump>
 
 
-
-                <!--与chamber底部连接的管道-->
-                <!--<ctrls:FlowPipe   Height="8"  Width="293" Canvas.Left="760"  Canvas.Top="658" IsFlowing="{Binding PVHe1ValveIsOpen}"/>-->
-                <!--<ctrls:FlowPipe   Height="8"  Width="198" Canvas.Left="1055"  Canvas.Top="463" RotateTransformValue="90"  IsReverse="{Binding PVHe1ValveIsOpen}">
-                <ctrls:FlowPipe.IsFlowing>
-                    <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
-                        <Binding Path="PVHe1ValveIsOpen"/>
-                        <Binding Path="PVHe2ValveIsOpen"/>
-                    </MultiBinding>
-                </ctrls:FlowPipe.IsFlowing>
-            </ctrls:FlowPipe>-->
-                <!--<ctrls:FlowPipe   Height="8"  Width="17"  Canvas.Left="1055"  Canvas.Top="659" RotateTransformValue="90" IsFlowing="{Binding PVHe2ValveIsOpen}"/>-->
-                <!--<ctrls:FlowPipe   Height="8"  Width="208" Canvas.Left="1057"  Canvas.Top="680" IsFlowing="{Binding PVHe2ValveIsOpen}"/>-->
-                <!--<ctrls:FlowPipe   Height="8"  Width="20" Canvas.Left="1266"  Canvas.Top="682" RotateTransformValue="90">
-                <ctrls:FlowPipe.IsFlowing>
-                    <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
-                        <Binding Path="SoftPumpValveIsOpen"/>
-                        <Binding Path="FastPumpValveIsOpen"/>
-                        <Binding Path="TurboPumpPumpingValveIsOpen"/>
-                        <Binding Path="PVHe2ValveIsOpen"/>
-
-                    </MultiBinding>
-                </ctrls:FlowPipe.IsFlowing>
-            </ctrls:FlowPipe>-->
+               
                 <ctrls:FlowPipe   Height="8"  Width="40" Canvas.Left="1265"  Canvas.Top="658" />
                 <ctrls:FlowPipe   Height="8"  Width="178" Canvas.Left="1266"  Canvas.Top="464" RotateTransformValue="90" IsFlowing="{Binding TurboPumpPumpingValveIsOpen}">
 
@@ -668,7 +653,7 @@
                 <customControls:CommonValveControl Status="{Binding SoftPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="555" Canvas.Left="1154" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="22" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
                 <customControls:CommonValveControl Status="{Binding FastPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20" Canvas.Top="555" Canvas.Left="1205"  IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="23" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
                 <customControls:CommonValveControl  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Top="596" Canvas.Left="1252" Status="{Binding TurboPumpPumpingValveIsOpen,Mode=TwoWay}" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="25" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
-
+      
 
 
 
@@ -731,18 +716,18 @@
 
 
                 <!--chamber管道标签-->
-                <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ChamberPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
-                <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessPressure,StringFormat='F1'}" TextBoxColor="#D7E4BD"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="156" Canvas.Left="1326" LabelValue="CM2(mTorr)" TextBoxValue="{Binding ChamberPressure,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
+                <ctrls:TextboxWithLabel  Canvas.Top="248" Canvas.Left="1318" LabelValue="CM1(mTorr)" TextBoxValue="{Binding ProcessPressure,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
                 <!--<ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="880"  LabelValue="Pressure(mTorr)" TextBoxValue="{Binding HePressureSetpoint,Mode=TwoWay}" TextBoxColor="White" IsReadOnly="False"/>-->
                 <!--<ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="820" TextBoxValue="{Binding HeGasSetpoint,Mode=TwoWay}"    LabelValue="Flow(sccm)/Pressure(Torr)"  TextBoxColor="White" IsReadOnly="False"/>-->
                 <!--<Ellipse Width="20" Height="20"  Canvas.Top="651.5" Canvas.Left="775" Fill="{Binding MFCHeData.IsWarning,Converter={StaticResource boolToColor4}}"  Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>-->
 
-                <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="1280" LabelValue="CM3(mTorr)" TextBoxValue="{Binding  ForelinePressure,StringFormat='F1'}" TextBoxColor="#D7E4BD" />
-                <!--<ctrls:TextboxWithLabel  Canvas.Top="464" Canvas.Left="1290" LabelValue="Position(‰)" TextBoxValue="{Binding PendulumValvePosition,StringFormat='F0'}" TextBoxColor="#D7E4BD" />-->
-                <ctrls:TextboxWithLabel  Canvas.Top="510" Canvas.Left="1330" LabelValue="Flow(sccm)" TextBoxValue="{Binding MFCN2Data.FeedBack,StringFormat='F1'}" TextBoxColor="#D7E4BD" />
+                <ctrls:TextboxWithLabel  Canvas.Top="633" Canvas.Left="1280" LabelValue="CM3(mTorr)" TextBoxValue="{Binding  ForelinePressure,StringFormat='F1'}" TextBoxColor="#E6ECF5" />
+                <!--<ctrls:TextboxWithLabel  Canvas.Top="464" Canvas.Left="1290" LabelValue="Position(‰)" TextBoxValue="{Binding PendulumValvePosition,StringFormat='F0'}" TextBoxColor="#E6ECF5" />-->
+                <ctrls:TextboxWithLabel  Canvas.Top="510" Canvas.Left="1330" LabelValue="Flow(sccm)" TextBoxValue="{Binding MFCN2Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5" />
                 <!--<ctrls:TextboxWithLabel  Canvas.Top="510" Canvas.Left="1367" TextBoxValue="{Binding N2SetPoint,Mode=TwoWay}" IsReadOnly="False"  LabelValue="Turbo N2" ToolTip="{Binding MFCN2Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" />-->
 
-                <!--<ctrls:TextboxWithLabel  Canvas.Top="556" Canvas.Left="952" LabelValue="Pressure(mTorr)" TextBoxValue="{Binding ESCHePressure,StringFormat='F1'}"  TextBoxColor="#D7E4BD"/>-->
+                <!--<ctrls:TextboxWithLabel  Canvas.Top="556" Canvas.Left="952" LabelValue="Pressure(mTorr)" TextBoxValue="{Binding ESCHePressure,StringFormat='F1'}"  TextBoxColor="#E6ECF5"/>-->
                 <!--<Border    BorderBrush="Gray"  BorderThickness="0"  Width="15" Height="6" Canvas.Top="581" Canvas.Left="1033">
                 <Border.Background>
                     <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">
@@ -752,7 +737,7 @@
                     </LinearGradientBrush>
                 </Border.Background>
             </Border>-->
-                <!--<ctrls:TextboxWithLabel  Canvas.Top="506" Canvas.Left="964" LabelValue="Flow(sccm)" TextBoxValue="{Binding MFCHeData.FeedBack,StringFormat='F1'}"  TextBoxColor="#D7E4BD"/>-->
+                <!--<ctrls:TextboxWithLabel  Canvas.Top="506" Canvas.Left="964" LabelValue="Flow(sccm)" TextBoxValue="{Binding MFCHeData.FeedBack,StringFormat='F1'}"  TextBoxColor="#E6ECF5"/>-->
                 <!--<Border    BorderBrush="Gray"  BorderThickness="0"  Width="15" Height="6" Canvas.Top="531" Canvas.Left="1033">
                 <Border.Background>
                     <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">
@@ -762,7 +747,7 @@
                     </LinearGradientBrush>
                 </Border.Background>
             </Border>-->
-                <ctrls:TextboxWithLabel  Canvas.Top="550" Canvas.Left="1280" LabelValue="Speed(rpm)" TextBoxValue="{Binding TurboPumpRotationalSpeed}" TextBoxColor="#D7E4BD" />
+                <ctrls:TextboxWithLabel  Canvas.Top="550" Canvas.Left="1280" LabelValue="Speed(rpm)" TextBoxValue="{Binding TurboPumpRotationalSpeed}" TextBoxColor="#E6ECF5" />
                 <TextBlock Canvas.Top="600" Canvas.Left="1280" Text="ISO"/>
 
                 <!--加热-->
@@ -809,20 +794,13 @@
             <Ellipse Width="20" Height="20" Fill="{Binding IsLidClosed,Converter={StaticResource boolToColor}}" Canvas.Left="1280" Canvas.Top="390" Stroke="Silver" StrokeThickness="2"/>
             <Button Height="20" Width="70" Content="Lid Down"                                                    Canvas.Left="1310" Canvas.Top="390" Command="{Binding LidUpDownCommand}" CommandParameter="Down" Style="{StaticResource SysBtnStyle}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>-->
 
-                <ctrls:Pump Canvas.Top="700"  Canvas.Left="1245" Width="35" Height="35" IsOpen="{Binding PumpIsOpen,Mode=TwoWay}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}">
-                    <ctrls:Pump.ContextMenu>
-                        <ContextMenu>
-                            <MenuItem Header="ON"  Command="{Binding OpenPumpCommand}" IsChecked="{Binding PumpIsOpen,Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}"/>
-                            <MenuItem Header="OFF" Command="{Binding ClosePumpCommand}" IsChecked="{Binding PumpIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Mode=OneWay}"/>
-                        </ContextMenu>
-                    </ctrls:Pump.ContextMenu>
-                </ctrls:Pump>
+                
                 <TextBlock Text="Rough Pump" Canvas.Top="734"  Canvas.Left="1220" FontSize="15"/>
 
 
             </Canvas>
 
-            <Grid Width="300" Height="260"  Canvas.Left="500" Canvas.Top="402" Background="#E8E8E8" unity:GridOptions.LineBrush="#afb4db" unity:GridOptions.ShowBorder="True">
+            <Grid Width="300" Height="260"  Canvas.Left="500" Canvas.Top="402" Background="#FAFAFA" unity:GridOptions.LineBrush="#E5E6E7" unity:GridOptions.ShowBorder="True">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>
@@ -851,14 +829,14 @@
                 <TextBlock Grid.Row="4" Text="SRF Match C2(%)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="10,0,0,0"/>
 
                 <TextBox   Grid.Row="1" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding SRFFwdPowerSetpoint,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"    BorderThickness="0" />
-                <TextBlock Grid.Row="2" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding SRFData.ReflectPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" Grid.ColumnSpan="2"/>
+                <TextBlock Grid.Row="2" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding SRFData.ReflectPower,StringFormat='F1'}"  Background="#E6ECF5" TextBlock.TextAlignment="Center" Padding="0 5 0 0" Grid.ColumnSpan="2"/>
                 <TextBox   Grid.Row="3" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding SRFMatchC1,UpdateSourceTrigger=PropertyChanged}"  HorizontalContentAlignment="Center" VerticalContentAlignment="Center"    BorderThickness="0" />
                 <TextBox   Grid.Row="4" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding SRFMatchC2,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"    BorderThickness="0" />
 
-                <TextBlock Grid.Row="1" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding SRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="1" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding SRFData.ForwardPower,StringFormat='F1'}"  Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0" />
                 <!--<TextBlock Grid.Row="2" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
-                <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='N0'}" Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="3" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC1,StringFormat='N0'}" Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0"/>
+                <TextBlock Grid.Row="4" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding MatchC2,StringFormat='N0'}"  Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0"/>
 
                 <TextBlock  Text="Bias RF" Grid.Row="5" FontSize="15" Grid.ColumnSpan="3" VerticalAlignment="Center"  HorizontalAlignment="Center"/>
 
@@ -875,10 +853,10 @@
                 <TextBox   Grid.Row="8" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFMatchC1,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"    BorderThickness="0" />
                 <TextBox   Grid.Row="9" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFMatchC2,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"    BorderThickness="0" />
 
-                <TextBlock Grid.Row="6" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BRFData.ForwardPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="7" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFData.ReflectPower,StringFormat='F1'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" Grid.ColumnSpan="2"/>
-                <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='N0'}"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="6" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BRFData.ForwardPower,StringFormat='F1'}"  Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0"/>
+                <TextBlock Grid.Row="7" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding BRFData.ReflectPower,StringFormat='F1'}"  Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0" Grid.ColumnSpan="2"/>
+                <TextBlock Grid.Row="8" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC1,StringFormat='N0'}"  Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0"/>
+                <TextBlock Grid.Row="9" Grid.Column="2" Width="Auto" Height="Auto" Text="{Binding BiasMatchC2,StringFormat='N0'}"  Background="#E6ECF5" TextBlock.TextAlignment="Center" Padding="0 5 0 0"/>
                 <!--<TextBlock Grid.Row="10" Grid.Column="2" Width="Auto" Height="Auto" Text="0.0"  Background="#E8E8E8" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>-->
 
             </Grid>
@@ -887,52 +865,7 @@
             <Ellipse Width="20" Height="20" Fill="{Binding BRFData.IsRfOn,Converter={StaticResource boolToColor}}"  Canvas.Left="650" Canvas.Top="375" Stroke="Silver" StrokeThickness="2"/>
             <Button Height="20" Width="100" Content="BRF ON/OFF" Canvas.Left="680" Canvas.Top="375" Command="{Binding SetBRfCommand}"  Style="{StaticResource SysBtnStyle}"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
 
-            <!--<Ellipse Width="20" Height="20" Fill="{Binding ESCHVData.IsOn,Converter={StaticResource boolToColor}}" Canvas.Left="500" Canvas.Top="205" Stroke="Silver" StrokeThickness="2"/>
-        <Button Height="20" Width="100" Content="HV ON/OFF" Canvas.Left="530" Canvas.Top="205" Command="{Binding HVCommand}" CommandParameter="True" Style="{StaticResource SysBtnStyle}"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>-->
-
-
-            <!--<Grid Width="320" Height="80"  Background="#E8E8E8" unity:GridOptions.LineBrush="#afb4db" unity:GridOptions.ShowBorder="True" Canvas.Left="500" Canvas.Top="230">
-            <Grid.RowDefinitions>
-                <RowDefinition/>
-                <RowDefinition/>
-                <RowDefinition/>
-            </Grid.RowDefinitions>
-            <Grid.ColumnDefinitions>
-                <ColumnDefinition Width="2*"/>
-                <ColumnDefinition Width="*"/>
-                <ColumnDefinition Width="*"/>
-            </Grid.ColumnDefinitions>
-            <TextBlock Grid.Row="0" Text="ESC Voltage(V)"     FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
-            <TextBlock Grid.Row="1" Text="ESC Current Leak(uA)"      FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
-            <TextBlock Grid.Row="2" Text="ESC Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
-            -->
-            <!--<TextBlock Grid.Row="3" Text="Chiller Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
-            <TextBlock Grid.Row="4" Text="Wall Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>-->
-            <!--
-
-
-            <TextBox Grid.Row="0" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding ESCVoltage}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0"/>
-            <TextBlock Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="1" Width="Auto" Height="Auto"   TextBlock.TextAlignment="Center" VerticalAlignment="Bottom" Block.TextAlignment="Center" Margin="0,0,0,4">
-                <TextBlock.Text>
-                    <MultiBinding StringFormat="{}{0}-{1}={2}">
-                        <Binding Path="ESCHVData.PositiveOutputCurrent"></Binding>
-                        <Binding Path="ESCHVData.NegativeOutputCurrent"></Binding>
-                        <Binding Path="ESCHVData.Leak"></Binding>
-                    </MultiBinding>
-                </TextBlock.Text>
-            </TextBlock>
-            <TextBlock Grid.Row="2" Grid.ColumnSpan="2" Grid.Column="1" Width="Auto" Height="Auto" Text="{Binding HVTemperature,StringFormat='F1'}" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-            -->
-            <!--<TextBox Grid.Row="3" Grid.Column="1" Width="Auto" Height="Auto" Text="0.0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0" />
-            <TextBox Grid.Row="4" Grid.Column="1" Width="Auto" Height="Auto" Text="0.0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0" />-->
-            <!--
-
-            <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding ESCHVData.OutputVoltage}" FontSize="15" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center"/>
-
-
-        </Grid>-->
-
-            <Grid Width="400" Height="80"  Background="#E8E8E8" unity:GridOptions.LineBrush="#afb4db" unity:GridOptions.ShowBorder="True" Canvas.Left="500" Canvas.Top="218">
+            <Grid Width="400" Height="80"  Background="#FAFAFA" unity:GridOptions.LineBrush="#E5E6E7" unity:GridOptions.ShowBorder="True" Canvas.Left="500" Canvas.Top="218">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>
@@ -947,32 +880,32 @@
 
                 <TextBlock Grid.Row="0" Text="Inner Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
                 <TextBox   Grid.Row="0" Grid.Column="1"  Width="Auto" Height="Auto" Text="{Binding InnerChillerTempSetpoint,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0" />
-                <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding InnerTemperature,StringFormat='F1'}" FontSize="15" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" />
+                <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding InnerTemperature,StringFormat='F1'}" FontSize="15" Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0" />
 
                 <TextBlock Grid.Row="1" Text="Outer Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
                 <TextBox   Grid.Row="1" Grid.Column="1"  Width="Auto" Height="Auto" Text="{Binding OuterChillerTempSetpoint,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0" />
-                <TextBlock Grid.Row="1" Grid.Column="2" Text="{Binding OuterTemperature,StringFormat='F1'}" FontSize="15" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" />
+                <TextBlock Grid.Row="1" Grid.Column="2" Text="{Binding OuterTemperature,StringFormat='F1'}" FontSize="15" Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0" />
 
                 <TextBlock Grid.Row="2" Text="Top   Temp.(°C)" FontSize="15" VerticalAlignment="Center" HorizontalAlignment="Left" Padding="1,0,0,0"/>
                 <TextBox   Grid.Row="2" Grid.Column="1"  Width="Auto" Height="Auto" Text="{Binding TopChillerTempSetpoint,UpdateSourceTrigger=PropertyChanged}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="White"  BorderThickness="0" />
-                <TextBlock Grid.Row="2" Grid.Column="2" Text="{Binding TopTemperature,StringFormat='F1'}" FontSize="15" TextBlock.TextAlignment="Center" VerticalAlignment="Center" Block.TextAlignment="Center" />
+                <TextBlock Grid.Row="2" Grid.Column="2" Text="{Binding TopTemperature,StringFormat='F1'}" FontSize="15" Background="#E6ECF5" Block.TextAlignment="Center" Padding="0 5 0 0" />
 
                 <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="3">
                     <Ellipse Width="18" Height="18" Fill="{Binding InnerChillerIsOn,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="InnerChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="InnerChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="InnerChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="InnerChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
 
                 </StackPanel>
                 <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="3">
                     <Ellipse Width="18" Height="18" Fill="{Binding OuterChillerIsOn,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="OuterChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="OuterChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="OuterChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="OuterChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
 
                 </StackPanel>
                 <StackPanel Orientation="Horizontal" Grid.Row="2" Grid.Column="3">
                     <Ellipse Width="18" Height="18" Fill="{Binding TopChillerIsOn,Converter={StaticResource boolToColor}}"  Stroke="Silver" StrokeThickness="2"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="TopChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
-                    <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="TopChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="TopChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
+                    <Button Margin="5,0,0,0" Height="20" Width="70"   Content="Set"             Command="{Binding SetChillerTempCommand}"  CommandParameter="TopChiller"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
 
                 </StackPanel>
 
@@ -1007,7 +940,32 @@
 
 
         <Canvas Grid.Column="1" Background="#C7D2DF">
-            <Grid Width="500" Height="150" Canvas.Left="20" Canvas.Top="20"  unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.ShowBorder="True" Background="#E9EDF4">
+
+            <ComboBox  Width="100" Height="30" Canvas.Left="20" Canvas.Top="215" Style="{StaticResource customeComboBoxStyle}"  SelectedItem="{Binding SelectedRecipeType}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" BorderThickness="1" BorderBrush="Silver" FontSize="15" SelectedIndex="0">
+                <ComboBoxItem>Process</ComboBoxItem>
+                <ComboBoxItem>Clean</ComboBoxItem>
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="SelectionChanged">
+                        <i:InvokeCommandAction Command="{Binding SwitchTypeCommand}"/>
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </ComboBox>
+
+            <ComboBox Width="400" Height="30" Canvas.Left="121" Canvas.Top="215"  ItemsSource="{Binding CurrentModuleRecipes}" SelectedIndex="{Binding SelectedRecipeIndex}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Style="{StaticResource customeComboBoxStyle}"  BorderThickness="1" BorderBrush="Silver" FontSize="15">
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="DropDownOpened">
+                        <i:InvokeCommandAction Command="{Binding LoadRecipeCommand}"/>
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </ComboBox>
+
+            <StackPanel Orientation="Horizontal" Canvas.Left="90" Canvas.Top="255">
+                <customControls:PathButton Width="110" Height="30" Content="Start"   IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>
+                <customControls:PathButton Width="110" Height="30" Content="Next"    IsEnabled="{Binding IsProcessing}" Command="{Binding EndStepCommand}" Margin="15 0 0 0"/>
+                <customControls:PathButton Width="110" Height="30" Content="Abort"   IsEnabled="{Binding IsProcessing}" Command="{Binding PMAbortCommnad}" Margin="15 0 0 0"/>
+            </StackPanel>
+            
+            <Grid Width="500" Height="180" Canvas.Left="20" Canvas.Top="20" unity:GridOptions.LineBrush="#E5E6E7" unity:GridOptions.ShowBorder="True" Background="#FFFFFF">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>
@@ -1022,17 +980,17 @@
                     <ColumnDefinition Width="2*"/>
                     <ColumnDefinition Width="3*"/>
                 </Grid.ColumnDefinitions>
-                <TextBlock Grid.Row="0" Text="Recipe Name"        FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="1" Text="Step Num/All"        FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="2" Text="Step Type"          FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="3" Text="Step Elpased Time"  FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="4" Text="Step Time(s)"       FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="5" Text="Next Step"       FontSize="15"  Padding="10,2,0,0" Background="#D0D8E8"/>
-                <TextBlock Grid.Row="6" Text="Cycle Num/All"  FontSize="15" Padding="10,2,0,0" Background="#D0D8E8"/>
+                <TextBlock Grid.Row="0" Text="Recipe Name"        FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="1" Text="Step Num/All"        FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="2" Text="Step Type"          FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="3" Text="Step Elpased Time"  FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="4" Text="Step Time(s)"       FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="5" Text="Next Step"       FontSize="15"  Padding="10,2,0,0" Background="#FAFAFA"/>
+                <TextBlock Grid.Row="6" Text="Cycle Num/All"  FontSize="15" Padding="10,2,0,0" Background="#FAFAFA"/>
 
 
-                <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeName}" FontSize="15" Padding="10,2,0,0" Background="#E9EDF4"/>
-                <TextBlock Grid.Row="1" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#E9EDF4">
+                <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeName}" FontSize="15" Padding="10,2,0,0" Background="#FFFFFF"/>
+                <TextBlock Grid.Row="1" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#FFFFFF">
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}{0}/{1}">
                             <Binding Path="CurrentRecipeResult.RecipeStepNumber"></Binding>
@@ -1040,11 +998,11 @@
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
-                <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepType}"  FontSize="15" Padding="10,2,0,0"/>
-                <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepDuringTime, StringFormat=hh\\:mm\\:ss}"  FontSize="15" Padding="10,2,0,0"/>
-                <TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepSetTime}"  FontSize="15" Padding="10,2,0,0"/>
-                <customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black"  Foreground="White"  Cursor="Hand" Grid.Row="5" Grid.Column="1"    Visibility="{Binding IsProcessing,Converter={StaticResource BoolToVisibility2}}" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>
-                <TextBlock Grid.Row="6" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#E9EDF4">
+                <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepType}"  FontSize="15" Padding="10,2,0,0" Background="#FFFFFF"/>
+                <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepDuringTime, StringFormat=hh\\:mm\\:ss}"  FontSize="15" Padding="10,2,0,0" Background="#FFFFFF"/>
+                <TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding CurrentRecipeResult.RecipeStepSetTime}"  FontSize="15" Padding="10,2,0,0" Background="#FFFFFF"/>
+                <customControls:PathButton Grid.Row="6" Grid.Column="1" BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="#FFFFFF" DefaultFillBrush="Black"  Foreground="White"  Cursor="Hand"     Visibility="{Binding IsProcessing,Converter={StaticResource BoolToVisibility2}}" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>
+                <TextBlock Grid.Row="6" Grid.Column="1"   FontSize="15" Padding="10,2,0,0" Background="#FFFFFF">
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}{0}/{1}">
                             <Binding Path="CurrentRecipeResult.RecipeCurrentCounter"></Binding>
@@ -1055,20 +1013,9 @@
             </Grid>
 
 
-            <TextBox  Width="140" Height="30" Text="Recipe:"  Canvas.Left="20" Canvas.Top="210" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="15" IsReadOnly="True" Background="Transparent"/>
-            <Border Width="210" Height="28"                   Canvas.Left="160" Canvas.Top="211" BorderBrush="Black" BorderThickness=".7">
-                <ComboBox  ItemsSource="{Binding CurrentModuleRecipes}" SelectedItem="{Binding SelectedRecipe}" IsEnabled="{Binding IsAutoMode}" Style="{StaticResource customeComboBoxStyle}" BorderBrush="White" FontSize="15">
-                    <i:Interaction.Triggers>
-                        <i:EventTrigger EventName="DropDownOpened">
-                            <i:InvokeCommandAction Command="{Binding LoadRecipeCommand}"/>
-                        </i:EventTrigger>
-                    </i:Interaction.Triggers>
-                </ComboBox>
-            </Border>
 
-            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="400" Canvas.Top="210" IsEnabled="{Binding IsAutoMode}" Command="{Binding RunRecipeCommand}"/>
 
-            <Grid  Width="500" Height="500" Canvas.Left="20" Canvas.Top="300"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.LineThickness="1">
+            <Grid  Width="500" Height="500" Canvas.Left="20" Canvas.Top="300"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7"   unity:GridOptions.LineThickness="1">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>
@@ -1100,23 +1047,23 @@
                     <ColumnDefinition />
                 </Grid.ColumnDefinitions>
 
-                <TextBlock   Text="Parameter"   FontWeight="Bold" FontSize="15"   VerticalAlignment="Center"  HorizontalAlignment="Center" Foreground="White"/>
-                <TextBlock   Text="FeedBack" Grid.Column="1" FontWeight="Bold" FontSize="15"   VerticalAlignment="Center"  HorizontalAlignment="Center" Foreground="White"/>
-                <TextBlock   Text="SetPoint" Grid.Column="2" FontWeight="Bold" FontSize="15"   VerticalAlignment="Center"  HorizontalAlignment="Center" Foreground="White"/>
-                <TextBlock   Text="Unit"   Grid.Column="3" FontWeight="Bold" FontSize="15"   VerticalAlignment="Center"  HorizontalAlignment="Center" Foreground="White"/>
+                <TextBlock   Text="Parameter"                 FontSize="15"    Foreground="#222222" Background="#FFFFFF" Padding="70,5,0,0"/>
+                <TextBlock   Text="FeedBack" Grid.Column="1"  FontSize="15"    Foreground="#222222" Background="#FFFFFF" Padding="20,5,0,0"/>
+                <TextBlock   Text="SetPoint" Grid.Column="2"  FontSize="15"    Foreground="#222222" Background="#FFFFFF" Padding="20,5,0,0"/>
+                <TextBlock   Text="Unit"     Grid.Column="3"  FontSize="15"    Foreground="#222222" Background="#FFFFFF" Padding="40,5,0,0"/>
 
 
 
 
-                <TextBlock Grid.Row="1"   Text="Top RF Forward Power"           Background="#D0D8E8"    Padding="10,5,0,0"/>
+                <TextBlock Grid.Row="1"   Text="Top RF Forward Power"           Background="#F5F7FA"    Padding="10,5,0,0"/>
                 <TextBlock Grid.Row="2"   Text="Top RF Reflected Power"           Background="#E9EDF4"   Padding="10,5,0,0" />
-                <TextBlock Grid.Row="3"  Text="Bias RF Forward Power"           Background="#D0D8E8"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="3"  Text="Bias RF Forward Power"           Background="#F5F7FA"    Padding="10,5,0,0" />
                 <TextBlock Grid.Row="4"   Text="Bias RF Reflected Power"           Background="#E9EDF4"    Padding="10,5,0,0" />
-                <TextBlock Grid.Row="5"   Text="Bias RF Match C1%"           Background="#D0D8E8"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="5"   Text="Bias RF Match C1%"           Background="#F5F7FA"    Padding="10,5,0,0" />
                 <TextBlock Grid.Row="6"  Text="Bias RF Match C2%"           Background="#E9EDF4"   Padding="10,5,0,0" />
-                <TextBlock Grid.Row="7"   Text="Bias Voltage"           Background="#D0D8E8"    Padding="10,5,0,0" />
+                <TextBlock Grid.Row="7"   Text="Bias Voltage"           Background="#F5F7FA"    Padding="10,5,0,0" />
                 <TextBlock Grid.Row="8"   Text="Pressure"       Background="#E9EDF4"    Padding="10,5,0,0" />
-                <TextBlock Grid.Row="9"   Text="Pressure Control Valve Position"       Background="#D0D8E8"    Padding="10,5,0,0"/>
+                <TextBlock Grid.Row="9"   Text="Pressure Control Valve Position"       Background="#F5F7FA"    Padding="10,5,0,0"/>
                 <TextBlock Grid.Row="10"          Background="#E9EDF4"    Padding="10,5,0,0" >
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}Gas1({0}:{1})">
@@ -1125,7 +1072,7 @@
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
-                <TextBlock Grid.Row="11"         Background="#D0D8E8"    Padding="10,5,0,0" >
+                <TextBlock Grid.Row="11"         Background="#F5F7FA"    Padding="10,5,0,0" >
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}Gas2({0}:{1})">
                             <Binding Path="MFC2Data.DisplayName"></Binding>
@@ -1141,7 +1088,7 @@
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
-                <TextBlock Grid.Row="13"         Background="#D0D8E8"   Padding="10,5,0,0" >
+                <TextBlock Grid.Row="13"         Background="#F5F7FA"   Padding="10,5,0,0" >
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}Gas4({0}:{1})">
                             <Binding Path="MFC4Data.DisplayName"></Binding>
@@ -1157,7 +1104,7 @@
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
-                <TextBlock Grid.Row="15"          Background="#D0D8E8"   Padding="10,5,0,0">
+                <TextBlock Grid.Row="15"          Background="#F5F7FA"   Padding="10,5,0,0">
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}Gas6({0}:{1})">
                             <Binding Path="MFC6Data.DisplayName"></Binding>
@@ -1173,7 +1120,7 @@
                         </MultiBinding>
                     </TextBlock.Text>
                 </TextBlock>
-                <TextBlock Grid.Row="17"        Background="#D0D8E8"    Padding="10,5,0,0" >
+                <TextBlock Grid.Row="17"        Background="#F5F7FA"    Padding="10,5,0,0" >
                     <TextBlock.Text>
                         <MultiBinding StringFormat="{}Gas8({0}:{1})">
                             <Binding Path="MFC8Data.DisplayName"></Binding>
@@ -1182,75 +1129,75 @@
                     </TextBlock.Text>
                 </TextBlock>
                 <!--<TextBlock Grid.Row="18"   Text="ESC Clamp Voltage"          Background="#E9EDF4"  Padding="10,5,0,0"  />
-                <TextBlock Grid.Row="19"   Text="ESC Temperature"        Background="#D0D8E8"  Padding="10,5,0,0" />
+                <TextBlock Grid.Row="19"   Text="ESC Temperature"        Background="#F5F7FA"  Padding="10,5,0,0" />
                 <TextBlock Grid.Row="20"  Text="Helium Pressure"       Background="#E9EDF4"    Padding="10,5,0,0"/>
-                <TextBlock Grid.Row="21"   Text="Helium Flow"       Background="#D0D8E8"    Padding="10,5,0,0" />-->
+                <TextBlock Grid.Row="21"   Text="Helium Flow"       Background="#F5F7FA"    Padding="10,5,0,0" />-->
 
-                <TextBlock Grid.Row="1" Grid.Column="1"  Text="{Binding SRFData.ForwardPower}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,5,0,0"/>
+                <TextBlock Grid.Row="1" Grid.Column="1"  Text="{Binding SRFData.ForwardPower}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,5,0,0"/>
                 <TextBlock Grid.Row="2"  Grid.Column="1" Text="{Binding SRFData.ReflectPower}"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="3"  Grid.Column="1" Text="{Binding BRFData.ForwardPower}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="3"  Grid.Column="1" Text="{Binding BRFData.ForwardPower}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="4"  Grid.Column="1" Text="{Binding BRFData.ReflectPower}"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding BiasMatchC1,StringFormat='F1'}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding BiasMatchC1,StringFormat='F1'}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding BiasMatchC2,StringFormat='F1'}"           Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="7"  Grid.Column="1" Text="N/A"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="7"  Grid.Column="1" Text="N/A"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="8"  Grid.Column="1" Text="{Binding ChamberPressureFeedBack,StringFormat='F1'}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9"  Grid.Column="1" Text="{Binding PendulumValvePosition}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="9"  Grid.Column="1" Text="{Binding PendulumValvePosition}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="10"  Grid.Column="1" Text="{Binding MFC1Data.FeedBack,StringFormat='F1'}"      Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="11"  Grid.Column="1" Text="{Binding MFC2Data.FeedBack,StringFormat='F1'}"      Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="11"  Grid.Column="1" Text="{Binding MFC2Data.FeedBack,StringFormat='F1'}"      Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="12"  Grid.Column="1" Text="{Binding MFC3Data.FeedBack,StringFormat='F1'}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="13"  Grid.Column="1" Text="{Binding MFC4Data.FeedBack,StringFormat='F1'}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="13"  Grid.Column="1" Text="{Binding MFC4Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="14"  Grid.Column="1" Text="{Binding MFC5Data.FeedBack,StringFormat='F1'}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="15"  Grid.Column="1" Text="{Binding MFC6Data.FeedBack,StringFormat='F1'}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="15"  Grid.Column="1" Text="{Binding MFC6Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="16"  Grid.Column="1" Text="{Binding MFC7Data.FeedBack,StringFormat='F1'}"       Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding MFC8Data.FeedBack,StringFormat='F1'}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="17"  Grid.Column="1" Text="{Binding MFC8Data.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <!--<TextBlock Grid.Row="18"  Grid.Column="1" Text="{Binding ESCHVOutputVoltage}"          Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center" />
-                <TextBlock Grid.Row="19"  Grid.Column="1" Text="{Binding ChillerTemperature,StringFormat='F1'}"        Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="19"  Grid.Column="1" Text="{Binding ChillerTemperature,StringFormat='F1'}"        Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="20"  Grid.Column="1" Text="{Binding ESCHePressure,StringFormat='F1'}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="21"  Grid.Column="1" Text="{Binding MFCHeData.FeedBack,StringFormat='F1'}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>-->
+                <TextBlock Grid.Row="21"  Grid.Column="1" Text="{Binding MFCHeData.FeedBack,StringFormat='F1'}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>-->
 
-                <TextBlock Grid.Row="1" Grid.Column="2"  Text="{Binding CurrentRecipeStep.LstUnit[1].RFPower}"          Background="#D0D8E8"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
+                <TextBlock Grid.Row="1" Grid.Column="2"  Text="{Binding CurrentRecipeStep.LstUnit[1].RFPower}"          Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="2"  Grid.Column="2" Text="N/A"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="3"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[2].BiasRFPower}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="3"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[2].BiasRFPower}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="4"  Grid.Column="2" Text="N/A"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="5"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[2].BiasTuneCapPreset}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="5"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[2].BiasTuneCapPreset}"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="6"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[2].BiasLoadCapPreset}"           Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="7"  Grid.Column="2" Text="N/A"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="7"  Grid.Column="2" Text="N/A"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="8"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[0].StartPressure}"      Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[0].ValvePositionPreset}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="9"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[0].ValvePositionPreset}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="10"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas1}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="11"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas2}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="11"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas2}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="12"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas3}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="13"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas4}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="13"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas4}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="14"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas5}"      Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="15"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas6}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="15"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas6}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="16"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas7}"       Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="17"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas8}"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="17"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas8}"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <!--<TextBlock Grid.Row="18"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[4].ESCClampValtage}"          Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center" />
-                <TextBlock Grid.Row="19"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[4].Temperature}"        Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="19"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[4].Temperature}"        Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="20"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[4].BacksideHelum}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="21"  Grid.Column="2" Text=""       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>-->
+                <TextBlock Grid.Row="21"  Grid.Column="2" Text=""       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>-->
 
-                <TextBlock Grid.Row="1" Grid.Column="3"  Text="W"           Background="#D0D8E8"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
+                <TextBlock Grid.Row="1" Grid.Column="3"  Text="W"           Background="#F5F7FA"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
                 <TextBlock Grid.Row="2"  Grid.Column="3" Text="W"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="3"  Grid.Column="3" Text="W"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="3"  Grid.Column="3" Text="W"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="4"  Grid.Column="3" Text="W"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="5"  Grid.Column="3" Text="%"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="5"  Grid.Column="3" Text="%"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="6"  Grid.Column="3" Text="%"           Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="7"  Grid.Column="3" Text="V"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="7"  Grid.Column="3" Text="V"           Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="8"  Grid.Column="3" Text="mTorr"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9"  Grid.Column="3" Text="Count"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="9"  Grid.Column="3" Text="Count"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="10"  Grid.Column="3" Text="sccm"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="11"  Grid.Column="3" Text="sccm"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="11"  Grid.Column="3" Text="sccm"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="12"  Grid.Column="3" Text="sccm"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="13"  Grid.Column="3" Text="sccm"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="13"  Grid.Column="3" Text="sccm"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="14"  Grid.Column="3" Text="sccm"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="15"  Grid.Column="3" Text="sccm"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="15"  Grid.Column="3" Text="sccm"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="16"  Grid.Column="3" Text="sccm"       Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="17"  Grid.Column="3" Text="sccm"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="17"  Grid.Column="3" Text="sccm"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <!--<TextBlock Grid.Row="18"  Grid.Column="3" Text="V"          Background="#E9EDF4"  TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center" />
-                <TextBlock Grid.Row="19"  Grid.Column="3" Text="°C"        Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
+                <TextBlock Grid.Row="19"  Grid.Column="3" Text="°C"        Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="20"  Grid.Column="3" Text="Torr"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="21"  Grid.Column="3" Text="sccm"       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>-->
+                <TextBlock Grid.Row="21"  Grid.Column="3" Text="sccm"       Background="#F5F7FA"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>-->
             </Grid>
             <!--<Button Width="120" Height="30" Content="Abort"            Canvas.Left="910" Canvas.Top="690"  IsEnabled="{Binding IsAutoMode}"/>
             <Button Width="120" Height="30" Content="Chamber Offline"  Canvas.Left="1110" Canvas.Top="690" IsEnabled="{Binding IsAutoMode}"/>-->

+ 1 - 1
Venus/Venus_MainPages/Views/OverVenusDEView.xaml

@@ -1304,7 +1304,7 @@
                 </ComboBox>
             </Border>
 
-            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="1100" Canvas.Top="100" IsEnabled="{Binding IsAutoMode}" Command="{Binding RunRecipeCommand}"/>
+            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="1100" Canvas.Top="100" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>
 
             <Grid  Width="540" Height="550" Canvas.Left="700" Canvas.Top="150"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.LineThickness="1">
                 <Grid.RowDefinitions>

+ 22 - 6
Venus/Venus_MainPages/Views/OverVenusSEView.xaml

@@ -1169,9 +1169,20 @@
 
             <!--<Button Width="120" Height="30" Content="Flash"  Canvas.Left="700" Canvas.Top="100" Command="{Binding LoadRecipeCommand}" IsEnabled="{Binding IsAutoMode}" Style="{x:Null}"/>-->
             <!--<TextBlock Background="Silver"  Height="30" Width="230" Canvas.Left="820" Canvas.Top="100" Text="{Binding SelectedRecipe}" TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,7,0,0"/>-->
-            <TextBox  Width="140" Height="30" Text="Recipe:"  Canvas.Left="700" Canvas.Top="100" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="15" IsReadOnly="True" Background="Transparent"/>
-            <Border Width="210" Height="28"  Canvas.Left="840" Canvas.Top="101" BorderBrush="Black" BorderThickness=".7">
-                <ComboBox  ItemsSource="{Binding CurrentModuleRecipes}" SelectedItem="{Binding SelectedRecipe}" IsEnabled="{Binding IsAutoMode}" Style="{StaticResource customeComboBoxStyle}" BorderBrush="White" FontSize="15">
+            <!--<TextBox  Width="140" Height="30" Text="Recipe:"  Canvas.Left="700" Canvas.Top="100" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="15" IsReadOnly="True" Background="Transparent"/>-->
+            <ComboBox  Width="100" Height="30" Canvas.Left="710" Canvas.Top="90" Style="{StaticResource customeComboBoxStyle}"  SelectedItem="{Binding SelectedRecipeType}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" BorderThickness="1" BorderBrush="Silver" FontSize="15" SelectedIndex="0">
+                <ComboBoxItem>Process</ComboBoxItem>
+                <ComboBoxItem>Clean</ComboBoxItem>
+                <ComboBoxItem>Chuck</ComboBoxItem>
+                <ComboBoxItem>DeChuck</ComboBoxItem>
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="SelectionChanged">
+                        <i:InvokeCommandAction Command="{Binding SwitchTypeCommand}"/>
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </ComboBox>
+            <Border Width="210" Height="28"  Canvas.Left="840" Canvas.Top="90" BorderBrush="Black" BorderThickness=".7">
+                <ComboBox  ItemsSource="{Binding CurrentModuleRecipes}" SelectedIndex="{Binding SelectedRecipeIndex}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Style="{StaticResource customeComboBoxStyle}" BorderBrush="White" FontSize="15">
                     <i:Interaction.Triggers>
                         <i:EventTrigger EventName="DropDownOpened">
                             <i:InvokeCommandAction Command="{Binding LoadRecipeCommand}"/>
@@ -1180,9 +1191,14 @@
                 </ComboBox>
             </Border>
 
-            <customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="1100" Canvas.Top="100" IsEnabled="{Binding IsAutoMode}" Command="{Binding RunRecipeCommand}"/>
+            <!--<customControls:PathButton Width="120" Height="30" Content="Start"  Canvas.Left="1100" Canvas.Top="100" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>-->
+            <StackPanel Orientation="Horizontal" Canvas.Left="710" Canvas.Top="125">
+                <customControls:PathButton Width="110" Height="30" Content="Start"   IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding RunRecipeCommand}"/>
+                <customControls:PathButton Width="110" Height="30" Content="Next"    IsEnabled="{Binding IsProcessing}" Command="{Binding EndStepCommand}" Margin="15 0 0 0"/>
+                <customControls:PathButton Width="110" Height="30" Content="Abort"   IsEnabled="{Binding IsProcessing}" Command="{Binding PMAbortCommnad}" Margin="15 0 0 0"/>
+            </StackPanel>
 
-            <Grid  Width="540" Height="550" Canvas.Left="700" Canvas.Top="150"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.LineThickness="1">
+            <Grid  Width="540" Height="550" Canvas.Left="700" Canvas.Top="160"  unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.LineThickness="1">
                 <Grid.RowDefinitions>
                     <RowDefinition/>
                     <RowDefinition/>
@@ -1417,7 +1433,7 @@
             <!--<Button Width="120" Height="30" Content="Abort"            Canvas.Left="910" Canvas.Top="690"  IsEnabled="{Binding IsAutoMode}"/>
             <Button Width="120" Height="30" Content="Chamber Offline"  Canvas.Left="1110" Canvas.Top="690" IsEnabled="{Binding IsAutoMode}"/>-->
         </Canvas>
-        <Grid Width="360" Height="190" Canvas.Left="1350" Canvas.Top="5"  unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.ShowBorder="True" Background="#E9EDF4">
+        <Grid Width="360" Height="170" Canvas.Left="1350" Canvas.Top="5"  unity:GridOptions.LineBrush="#afb4db"  unity:GridOptions.ShowBorder="True" Background="#E9EDF4">
             <Grid.RowDefinitions>
                 <RowDefinition/>
                 <RowDefinition/>

File diff suppressed because it is too large
+ 982 - 959
Venus/Venus_MainPages/Views/OverVenusView.xaml


+ 1 - 1
Venus/Venus_RT/App.config

@@ -28,7 +28,7 @@
 	<connectionStrings>
 		<add name="PostgreSQL"   connectionString="Server=localhost;Port=5432;User Id=postgres;Password=123456;Database=postgres;Enlist=true;Preload Reader=true;" />
 		<!--0是other,1是Venus,2是kepler2300,3是Kepler2200,4是VenusSE,5是VenusDE-->
-		<add name="ConfigType"   connectionString="3"/>
+		<add name="ConfigType"   connectionString="2"/>
 	</connectionStrings>
 	<system.serviceModel>
 		<!--<diagnostics>

+ 2 - 1
Venus/Venus_RT/Config/System.sccfg

@@ -21,7 +21,8 @@
 		<config default="True" name="IsIgnoreSaveDB" nameView="IsIgnoreSaveDB" description="IO实时数据是否保存数据库,2023/09/02暂时加参数设计" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 		<config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
 		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
-		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="I是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
 		<configs name="SetUp" nameView="Set Up" visible="false">
 			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />

+ 7 - 6
Venus/Venus_RT/Config/System_Kepler2200.sccfg

@@ -21,7 +21,8 @@
 		<config default="True" name="IsIgnoreSaveDB" nameView="IsIgnoreSaveDB" description="IO实时数据是否保存数据库,2023/09/02暂时加参数设计" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 		<config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
-		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>	
+		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
+		<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
 		
 		<!--<configs name="SetUp" nameView="Set Up" visible="false">
@@ -655,7 +656,7 @@
 			<config default="60" name="SoftDownLimit"         nameView="Soft Down Limit"          description="Soft Down Limit"             max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="60" name="SoftUpLimit"           nameView="Soft Up Limit"            description="Soft Up Limit"               max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="630" name="Temperature"           nameView="Temperature"              description="Temperature"                 max="1200" min="0"    paramter="" tag="" unit="℃" type="Double" />
-			<config default="156" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="100"  min="0"     paramter="" tag="" unit="" type="Double" />
+			<config default="130" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="300"  min="90"     paramter="" tag="" unit="" type="Double" />
 			<config default="true" name="IsOn" nameView="Is On" description="IsOn" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 
 		</configs>
@@ -1028,8 +1029,8 @@
 			<config default="60" name="MaximusMoveSpeed"      nameView="Maximus Move Speed"       description="Maximus Move Speed"          max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="60" name="SoftDownLimit"         nameView="Soft Down Limit"          description="Soft Down Limit"             max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="60" name="SoftUpLimit"           nameView="Soft Up Limit"            description="Soft Up Limit"               max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
-			<config default="0" name="Temperature"           nameView="Temperature"              description="Temperature"                 max="1200" min="0"    paramter="" tag="" unit="℃" type="Double" />
-			<config default="0" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="100"  min="0"    paramter="" tag="" unit=""   type="Double" />
+			<config default="0" name="Temperature"           nameView="Temperature"              description="Temperature"                  max="300" min="90"    paramter="" tag="" unit="℃" type="Double" />
+			<config default="130" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="1000"  min="0"    paramter="" tag="" unit=""   type="Double" />
 		    <config default="true" name="IsOn" nameView="Is On" description="IsOn" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 		</configs>
 	</configs>
@@ -1402,7 +1403,7 @@
 			<config default="60" name="SoftDownLimit"         nameView="Soft Down Limit"          description="Soft Down Limit"             max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="60" name="SoftUpLimit"           nameView="Soft Up Limit"            description="Soft Up Limit"               max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="0" name="Temperature"           nameView="Temperature"              description="Temperature"                 max="1200" min="0"    paramter="" tag="" unit="℃" type="Double" />
-			<config default="0" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="100"  min="0"     paramter="" tag="" unit="" type="Double" />
+			<config default="130" name="Ratio"                 nameView="Ratio"                    description="Ratio"                       max="300"  min="90"     paramter="" tag="" unit="" type="Double" />
 		    <config default="true" name="IsOn" nameView="Is On" description="IsOn" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 		</configs>
 	</configs>
@@ -1775,7 +1776,7 @@
 			<config default="60" name="SoftDownLimit"         nameView="Soft Down Limit"          description="Soft Down Limit"             max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="60" name="SoftUpLimit"           nameView="Soft Up Limit"            description="Soft Up Limit"               max="600"  min="-600" paramter="" tag="" unit="mm" type="Double" />
 			<config default="0" name="Temperature"            nameView="Temperature"              description="Temperature"                 max="1200" min="0"    paramter="" tag="" unit="℃" type="Double" />
-			<config default="0" name="Ratio"                  nameView="Ratio"                    description="Ratio"                       max="100"  min="0"     paramter="" tag="" unit="" type="Double" />
+			<config default="130" name="Ratio"                  nameView="Ratio"                    description="Ratio"                     max="300"  min="90"     paramter="" tag="" unit="" type="Double" />
 		    <config default="true" name="IsOn" nameView="Is On" description="IsOn" max="0" min="0" paramter="" tag="" unit="" type="Bool" />
 		</configs>
 	</configs>

+ 1 - 0
Venus/Venus_RT/Config/System_Kepler2300.sccfg

@@ -22,6 +22,7 @@
 		<config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
 		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
 		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
 		<configs name="SetUp" nameView="Set Up" visible="false">
 			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />

+ 2 - 1
Venus/Venus_RT/Config/System_Venus.sccfg

@@ -21,7 +21,8 @@
 		<config default="True" name="IsIgnoreSaveDB" nameView="IsIgnoreSaveDB" description="IO实时数据是否保存数据库,2023/09/02暂时加参数设计" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 		<config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
 		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
-		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="I是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
 		<configs name="SetUp" nameView="Set Up" visible="false">
 			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />

+ 2 - 1
Venus/Venus_RT/Config/System_VenusDE.sccfg

@@ -21,7 +21,8 @@
 		<config default="True" name="IsIgnoreSaveDB" nameView="IsIgnoreSaveDB" description="IO实时数据是否保存数据库,2023/09/02暂时加参数设计" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
 		<config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
 		<config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
-		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="I是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+		<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
 		<config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
 		<configs name="SetUp" nameView="Set Up" visible="false">
 			<config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />

+ 2 - 1
Venus/Venus_RT/Config/System_VenusSE.sccfg

@@ -21,7 +21,8 @@
     <config default="True" name="IsIgnoreSaveDB" nameView="IsIgnoreSaveDB" description="IO实时数据是否保存数据库,2023/09/02暂时加参数设计" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
     <config default="10"  name="CheckResourceInterval" nameView="CheckResourceInterval" description="进程资源监视间隔,单位为分钟,0为不监视" max="60" min="0" paramter="" tag="" unit="min" type="Integer"/>
     <config default="1000"  name="DataCollectionInterval" nameView="DataCollectionInterval" description="插入数据时间间隔" max="2000" min="200" paramter="" tag="" unit="ms" type="Integer"/>
-    <config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="I是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+    <config default="false" name="IsEnableEthercat" nameView="Is Enable Ethercat" description="是否开启凌华Ethercat" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false"/>
+	<config default="false" name="IsLogExcludeInfoType" nameView="Log Exclude Info Type" description="TopView Log排除info类型信息" max="" min="" paramter="" tag="" unit="" type="Bool" />
     <config default="Kepler" name="Name" nameView="Name" description="Name" tag="" unit="" type="String" />
     <configs name="SetUp" nameView="Set Up" visible="false">
       <config default="true" name="EPDInstalled" nameView="Is EPD installed" description="EPD是否安装" max="" min="" paramter="" tag="" unit="" type="Bool" />

+ 70 - 29
Venus/Venus_RT/Modules/PMs/PumpDownRoutine.cs

@@ -23,7 +23,7 @@ namespace Venus_RT.Modules.PMs
             kOpenTurboPump,
             kGasFinal,
             kFinalStep,
-            kEnd, 
+            kEnd,
         }
 
         //private int _ventTime;
@@ -62,8 +62,6 @@ namespace Venus_RT.Modules.PMs
                 {
                     _chamber.OpenValve(ValveType.HeISO, false);
                     _chamber.OpenValve(ValveType.PVHe3, false);
-
-
                 }
                 _vHe2FlowPressure = SC.GetValue<int>($"{Module}.Pump.PumpVHe2FlowPressure");
 
@@ -74,33 +72,76 @@ namespace Venus_RT.Modules.PMs
         }
         public RState Monitor()
         {
-
-            if (jetChamber == JetChamber.VenusDE)
+            switch (jetChamber)
             {
-                Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
-                .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
-                .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_5s)
-                .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
-                .Run(PumpStep.kISOValve, OpenISOValve, _delay_5s)
-                .Run(PumpStep.kOpenTurboPump, OpenTurboValve, _delay_3s)
-                .Run(PumpStep.kVATValve, OpenVATValve, _delay_2s)
-                .Run(PumpStep.kOpenTurboPump, OpenGuageGasFinalValve, _delay_3s)
-                .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
-                .End(PumpStep.kEnd, NullFun, _delay_1s);
-            }
-            else
-            {
-                Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
-                    .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
-                    .RunIf(PumpStep.kSoftPump, needsoft, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure < _roughPumpPressure; })
-                    .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
-                    .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_2s)
-                    .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
-                    .Run(PumpStep.kVATValve, OpenVATValve, _delay_5s)
-                    .Run(PumpStep.kOpenTurboPumpPurgeGasFinal, OpenTurboPumpPurgeGasFinalValve, _delay_3s)
-                    .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
-                    .End(PumpStep.kEnd, NullFun, _delay_1s);
+                case JetChamber.Venus:
+                case JetChamber.VenusSE:
+                    Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
+                          .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
+                          .Run(PumpStep.kSoftPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure < _roughPumpPressure; })
+                          .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+                          .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_2s)
+                          .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
+                          .Run(PumpStep.kVATValve, OpenVATValve, _delay_5s)
+                          .Run(PumpStep.kOpenTurboPumpPurgeGasFinal, OpenTurboPumpPurgeGasFinalValve, _delay_3s)
+                          .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+                          .End(PumpStep.kEnd, NullFun, _delay_1s);
+                    break;
+
+                case JetChamber.Kepler2300:
+                case JetChamber.Kepler2200A:
+                case JetChamber.Kepler2200B:
+                    Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
+                          .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
+                          .Run(PumpStep.kSoftPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure < _roughPumpPressure; })
+                          .Run(PumpStep.kFastPump, OpenFastPump,  () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+                          .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
+                          .Run(PumpStep.kVATValve, OpenVATValve, _delay_5s)
+                          .Run(PumpStep.kOpenTurboPumpPurgeGasFinal, OpenTurboPumpPurgeGasFinalValve, _delay_3s)
+                          .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+                          .End(PumpStep.kEnd, NullFun, _delay_1s);
+                    break;
+
+                case JetChamber.VenusDE:
+                    Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
+                          .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
+                          .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_5s)
+                          .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+                          .Run(PumpStep.kISOValve, OpenISOValve, _delay_5s)
+                          .Run(PumpStep.kOpenTurboPump, OpenTurboValve, _delay_3s)
+                          .Run(PumpStep.kVATValve, OpenVATValve, _delay_2s)
+                          .Run(PumpStep.kOpenTurboPump, OpenGuageGasFinalValve, _delay_3s)
+                          .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+                          .End(PumpStep.kEnd, NullFun, _delay_1s);
+                    break;
+
             }
+            //if (jetChamber == JetChamber.VenusDE)
+            //{
+            //    Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
+            //    .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
+            //    .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_5s)
+            //    .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+            //    .Run(PumpStep.kISOValve, OpenISOValve, _delay_5s)
+            //    .Run(PumpStep.kOpenTurboPump, OpenTurboValve, _delay_3s)
+            //    .Run(PumpStep.kVATValve, OpenVATValve, _delay_2s)
+            //    .Run(PumpStep.kOpenTurboPump, OpenGuageGasFinalValve, _delay_3s)
+            //    .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+            //    .End(PumpStep.kEnd, NullFun, _delay_1s);
+            //}
+            //else
+            //{
+            //    Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
+            //        .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
+            //        .RunIf(PumpStep.kSoftPump, needsoft, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure < _roughPumpPressure; })
+            //        .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+            //        .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_2s)
+            //        .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
+            //        .Run(PumpStep.kVATValve, OpenVATValve, _delay_5s)
+            //        .Run(PumpStep.kOpenTurboPumpPurgeGasFinal, OpenTurboPumpPurgeGasFinalValve, _delay_3s)
+            //        .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+            //        .End(PumpStep.kEnd, NullFun, _delay_1s);
+            //}
 
 
             return Runner.Status;
@@ -140,7 +181,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool OpenISOValve()
         {
-
+            _chamber.OpenValve(ValveType.FastPump, false);
             _chamber.OpenValve(ValveType.PVHe2, false);
 
             // ISO Valve

+ 5 - 5
Venus/Venus_Simulator/Devices/PendulumValveMockPMA.cs

@@ -42,11 +42,11 @@ namespace Venus_Simulator.Devices
                 }
                 string item2 = item + "\r";
 
-                if (_bHold == false)
-                {
-                    _pressure += _rd.Next(-10, 10);
-                    _position += _rd.Next(-50, 50);
-                }
+                //if (_bHold == false)
+                //{
+                //    _pressure += _rd.Next(-10, 10);
+                //    _position += _rd.Next(-50, 50);
+                //}
 
                 if (_simPendulumValveStatus == PendulumValveStatus.OFF)
                 {

+ 5 - 5
Venus/Venus_Simulator/Devices/PendulumValveMockPMB.cs

@@ -41,11 +41,11 @@ namespace Venus_Simulator.Devices
                 }
                 string item2 = item + "\r";
 
-                if (_bHold == false)
-                {
-                    _pressure += _rd.Next(-10, 10);
-                    _position += _rd.Next(-50, 50);
-                }
+                //if (_bHold == false)
+                //{
+                //    _pressure += _rd.Next(-10, 10);
+                //    _position += _rd.Next(-50, 50);
+                //}
 
                 if (_simPendulumValveStatus == PendulumValveStatus.OFF)
                 {

+ 5 - 5
Venus/Venus_Simulator/Devices/PendulumValveMockPMC.cs

@@ -41,11 +41,11 @@ namespace Venus_Simulator.Devices
                 }
                 string item2 = item + "\r";
 
-                if (_bHold == false)
-                {
-                    _pressure += _rd.Next(-10, 10);
-                    _position += _rd.Next(-50, 50);
-                }
+                //if (_bHold == false)
+                //{
+                //    _pressure += _rd.Next(-10, 10);
+                //    _position += _rd.Next(-50, 50);
+                //}
 
                 if (_simPendulumValveStatus == PendulumValveStatus.OFF)
                 {

+ 5 - 5
Venus/Venus_Simulator/Devices/PendulumValveMockPMD.cs

@@ -41,11 +41,11 @@ namespace Venus_Simulator.Devices
                 }
                 string item2 = item + "\r";
 
-                if (_bHold == false)
-                {
-                    _pressure += _rd.Next(-10, 10);
-                    _position += _rd.Next(-50, 50);
-                }
+                //if (_bHold == false)
+                //{
+                //    _pressure += _rd.Next(-10, 10);
+                //    _position += _rd.Next(-50, 50);
+                //}
 
                 if (_simPendulumValveStatus == PendulumValveStatus.OFF)
                 {