Browse Source

1.添加efem/sequence等界面
2.优化数据分析图表界面

lixiang 1 year ago
parent
commit
e9951fa64d

+ 11 - 2
Venus/Venus_MainPages/Venus_MainPages.csproj

@@ -33,8 +33,7 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Caliburn.Micro, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Caliburn.Micro">
       <HintPath>..\ThirdParty\selfbuild\Caliburn.Micro.dll</HintPath>
     </Reference>
     <Reference Include="CommonServiceLocator">
@@ -52,6 +51,7 @@
     <Reference Include="log4net">
       <HintPath>..\ThirdParty\log4net.dll</HintPath>
     </Reference>
+    <Reference Include="Microsoft.VisualBasic" />
     <Reference Include="OpenSEMI.ClientBase, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\ThirdParty\selfbuild\OpenSEMI.ClientBase.dll</HintPath>
@@ -142,6 +142,7 @@
     <Compile Include="Unity\WaferStatusImp.cs" />
     <Compile Include="ViewModels\ButterflyValveViewModel.cs" />
     <Compile Include="ViewModels\DataHistoryViewModel.cs" />
+    <Compile Include="ViewModels\EfemViewModel.cs" />
     <Compile Include="ViewModels\EventViewModel.cs" />
     <Compile Include="ViewModels\GasLeakCheckViewModel.cs" />
     <Compile Include="ViewModels\IOViewModel.cs" />
@@ -155,6 +156,7 @@
     <Compile Include="ViewModels\RecipeViewModel.cs" />
     <Compile Include="ViewModels\RFCalibrationViewModel.cs" />
     <Compile Include="ViewModels\RoleViewModel.cs" />
+    <Compile Include="ViewModels\SequenceViewModel.cs" />
     <Compile Include="ViewModels\SystemConfigViewModel.cs" />
     <Compile Include="ViewModels\TMViewModel.cs" />
     <Compile Include="ViewModels\TopViewModel.cs" />
@@ -166,6 +168,9 @@
     <Compile Include="Views\DataHistoryView.xaml.cs">
       <DependentUpon>DataHistoryView.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Views\EfemView.xaml.cs">
+      <DependentUpon>EfemView.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Views\EventView.xaml.cs">
       <DependentUpon>EventView.xaml</DependentUpon>
     </Compile>
@@ -258,6 +263,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Views\EfemView.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="Views\EventView.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 121 - 20
Venus/Venus_MainPages/ViewModels/DataHistoryViewModel.cs

@@ -19,9 +19,12 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Forms;
+using System.Windows.Input;
 using System.Windows.Media;
+using System.Windows.Threading;
 using Venus_MainPages.Unity;
 using Venus_MainPages.Views;
+using WPF.Themes.UserControls;
 using Xceed.Wpf.DataGrid;
 
 namespace Venus_MainPages.ViewModels
@@ -35,6 +38,8 @@ namespace Venus_MainPages.ViewModels
         private object _lockSelection = new object();
         ConcurrentBag<QueryIndexer> _lstTokenTimeData = new ConcurrentBag<QueryIndexer>();
         List<string> keys=new List<string> ();
+        DispatcherTimer timer = new DispatcherTimer();
+        DateTime currentTime;
         #endregion
 
         #region 属性
@@ -58,13 +63,29 @@ namespace Venus_MainPages.ViewModels
         private DelegateCommand _StartCommand;
         public DelegateCommand StartCommand =>
             _StartCommand ?? (_StartCommand = new DelegateCommand(OnStart));
+
+        private DelegateCommand _ClearCommand;
+        public DelegateCommand ClearCommand =>
+            _ClearCommand ?? (_ClearCommand = new DelegateCommand(OnClear));
+
+        private DelegateCommand _StartRealTimeCommand;
+        public DelegateCommand StartRealTimeCommand =>
+            _StartRealTimeCommand ?? (_StartRealTimeCommand = new DelegateCommand(OnStartRealTime));
+
+        private DelegateCommand _StopRealTimeCommand;
+        public DelegateCommand StopRealTimeCommand =>
+            _StopRealTimeCommand ?? (_StopRealTimeCommand = new DelegateCommand(OnStopRealTime));
         #endregion
 
         #region 构造函数
         public DataHistoryViewModel() 
         {
             ParameterNodes = _provider.GetParameters();
+            timer.Interval = TimeSpan.FromSeconds(0.5);
+            timer.Tick += Timer_Tick; ;
         }
+
+       
         #endregion
 
         #region 命令方法
@@ -79,7 +100,6 @@ namespace Venus_MainPages.ViewModels
         private void OnParameterCheck(object obj)
         {      
             ParameterNode node = obj as ParameterNode;
-            //keys.Add(node.Name);
             if (!RefreshTreeStatusToChild(node))
             {
                 node.Selected = !node.Selected;
@@ -89,6 +109,57 @@ namespace Venus_MainPages.ViewModels
                 RefreshTreeStatusToParent(node);
             }
         }
+
+        private void OnStartRealTime()
+        {
+            currentTime = DateTime.Now;
+            timer.Start();
+        }
+        private void OnStopRealTime()
+        {
+            timer.Stop();
+        }
+      
+        private void OnStart()
+        {
+            keys.Clear();
+            for (int i = 0; i < ParameterNodes.Count; i++)
+            {
+                CalKeys(ParameterNodes[i]);
+            }
+            if (keys.Count > 10)
+            {
+                WPFMessageBox.ShowWarning("最多显示10个数据");
+                return;
+            }
+            this.DataHistoryView.MyDrawGraphicsControl.ClearPlotPoints();
+            var result = GetData(keys.Distinct().ToList(), this.DataHistoryView.wfTimeFrom.Value, this.DataHistoryView.wfTimeTo.Value);
+            if (result == null)
+            {
+                return;
+            }
+            List<PointCollection> cls = new List<PointCollection>(); 
+            for (int i = 0; i < keys.Count; i++)
+            {
+                PointCollection points = new PointCollection();
+                int k = 1;
+                result[keys[i]].ForEach(point => 
+                {
+                    points.Add(new Point() { X = point.dateTime.ToOADate(), Y = point.value });
+                    k += 1;
+                });
+                cls.Add(points);
+            }
+            this.DataHistoryView.MyDrawGraphicsControl.PointCollections = cls;
+            this.DataHistoryView.MyDrawGraphicsControl.FitControl();
+        }
+        private void OnClear()
+        {
+            this.DataHistoryView.MyDrawGraphicsControl.ClearPlotPoints();
+        }
+        #endregion
+
+        #region 私有方法
         private bool RefreshTreeStatusToChild(ParameterNode node)
         {
             if (node.ChildNodes.Count > 0)
@@ -110,17 +181,17 @@ namespace Venus_MainPages.ViewModels
                     }
                 }
             }
-            else
-            {
-                if (node.Selected == true)
-                {
-                    keys.Add(node.Name);
-                }
-                else
-                { 
-                keys.Remove(node.Name);
-                }
-            }     
+            //else
+            //{
+            //    if (node.Selected == true)
+            //    {
+            //        keys.Add(node.Name);
+            //    }
+            //    else
+            //    { 
+            //    keys.Remove(node.Name);
+            //    }
+            //}     
             return true;
         }
         private void RefreshTreeStatusToParent(ParameterNode node)
@@ -146,11 +217,11 @@ namespace Venus_MainPages.ViewModels
                     node.ParentNode.Selected = false;
                 }
                 RefreshTreeStatusToParent(node.ParentNode);
-            }        
+            }
         }
 
         private Dictionary<string, List<HistoryDataItem>> GetData(List<string> keys, DateTime from, DateTime to)
-        {                        
+        {
             string sql = "select time AS InternalTimeStamp";
             foreach (var dataId in keys)
             {
@@ -221,21 +292,50 @@ namespace Venus_MainPages.ViewModels
             return historyData;
 
         }
+        private void CalKeys(ParameterNode parameterNode)
+        {
 
-        private void OnStart()
+            if (parameterNode.ChildNodes.Count > 0)
+            {
+                foreach (var item in parameterNode.ChildNodes)
+                {
+                    CalKeys(item);
+                }
+            }
+            else
+            {
+                if (parameterNode.Selected == true)
+                {
+                    keys.Add(parameterNode.Name);
+                }
+            }
+
+        }
+
+        private void Timer_Tick(object sender, EventArgs e)
         {
-            this.DataHistoryView.MyDrawGraphicsControl.ClearPlot();
-            var result = GetData(keys.Distinct().ToList(), this.DataHistoryView.wfTimeFrom.Value, this.DataHistoryView.wfTimeTo.Value);
+            keys.Clear();
+            for (int i = 0; i < ParameterNodes.Count; i++)
+            {
+                CalKeys(ParameterNodes[i]);
+            }
+            if (keys.Count > 10)
+            {
+                WPFMessageBox.ShowWarning("最多显示10个数据");
+                return;
+            }
+            this.DataHistoryView.MyDrawGraphicsControl.ClearPlotPoints();
+            var result = GetData(keys.Distinct().ToList(), currentTime, DateTime.Now);
             if (result == null)
             {
                 return;
             }
-            List<PointCollection> cls = new List<PointCollection>(); 
+            List<PointCollection> cls = new List<PointCollection>();
             for (int i = 0; i < keys.Count; i++)
             {
                 PointCollection points = new PointCollection();
                 int k = 1;
-                result[keys[i]].ForEach(point => 
+                result[keys[i]].ForEach(point =>
                 {
                     points.Add(new Point() { X = point.dateTime.ToOADate(), Y = point.value });
                     k += 1;
@@ -243,9 +343,10 @@ namespace Venus_MainPages.ViewModels
                 cls.Add(points);
             }
             this.DataHistoryView.MyDrawGraphicsControl.PointCollections = cls;
+            //this.DataHistoryView.MyDrawGraphicsControl.FitControl();
         }
-
         #endregion
+
     }
 
     public class QueryIndexer

+ 13 - 0
Venus/Venus_MainPages/ViewModels/EfemViewModel.cs

@@ -0,0 +1,13 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Venus_MainPages.ViewModels
+{
+    internal class EfemViewModel:BindableBase
+    {
+    }
+}

+ 2 - 2
Venus/Venus_MainPages/ViewModels/OverViewModel.cs

@@ -1565,11 +1565,11 @@ namespace Venus_MainPages.ViewModels
 
             if (Math.Abs(100 - ProcessLowPressure) > 1 && ProcessLowPressure<100)
             {
-                ChamberPressureFeedBack = ProcessLowPressure;
+                ChamberPressureFeedBack =  ProcessLowPressure;
             }
             else
             { 
-                ChamberPressureFeedBack = ProcessHighPressure;
+                ChamberPressureFeedBack =  ProcessHighPressure;
             }
         }
        

+ 15 - 2
Venus/Venus_MainPages/ViewModels/RFCalibrationViewModel.cs

@@ -125,13 +125,19 @@ namespace Venus_MainPages.ViewModels
         #region 命令方法
         public void OnCheck()
         {
-            if (TableData != null && TableData.Count > 0) { }
+            if (TableData != null && TableData.Count > 0) 
+            {
+                for (int i = 0; i < TableData.Count; i++)
+                {
+                    TableData[i].IsSelected = true;
+                }
+            }
             //TableData.ForEachDo(x =>
             //{
             //    x.IsSelected = true;
             //    x.InvokePropertyChanged("IsSelected");
             //});
-            //for(int i=0;i<)
+           
         }
 
         public void OnUnCheck()
@@ -142,6 +148,13 @@ namespace Venus_MainPages.ViewModels
             //        x.IsSelected = false;
             //        x.InvokePropertyChanged("IsSelected");
             //    });
+            if (TableData != null && TableData.Count > 0)
+            {
+                for (int i = 0; i < TableData.Count; i++)
+                {
+                    TableData[i].IsSelected = false;
+                }
+            }
         }
         #endregion
 

+ 47 - 12
Venus/Venus_MainPages/ViewModels/RecipeViewModel.cs

@@ -2,10 +2,14 @@
 using Aitex.Core.UI.View.Common;
 using Aitex.UI.RecipeEditor;
 using Aitex.UI.RecipeEditor.View;
+using MECF.Framework.Common.DataCenter;
+using MECF.Framework.Common.Equipment;
+using Microsoft.VisualBasic;
 using Microsoft.Win32;
 using Prism.Commands;
 using Prism.Mvvm;
 using Prism.Regions;
+using Prism.Services.Dialogs;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -242,13 +246,11 @@ namespace Venus_MainPages.ViewModels
             menuItem.Header = "Save As Recipe";
             treeViewRcpList.ContextMenu.Items.Add(menuItem);
 
-            //treeViewRcpList.ContextMenu.Items.Add(new Separator());
-
-            //menuItem = new MenuItem();
-            //menuItem.Tag = "\\";
-            ////menuItem.Click += new RoutedEventHandler(menuItem_MouseClick_CreateFolder);
-            //menuItem.Header = Application.Current.Resources["GlobalLableMenuNewFolder"];
-            //treeViewRcpList.ContextMenu.Items.Add(menuItem);
+            menuItem = new MenuItem();
+            menuItem.Tag = "\\";
+            menuItem.Click += new RoutedEventHandler(menuItem_MouseClick_RenameRecipe);
+            menuItem.Header = "Rename";
+            treeViewRcpList.ContextMenu.Items.Add(menuItem);
 
             treeViewRcpList.ContextMenu.Visibility = Visibility.Visible;
         }
@@ -310,11 +312,19 @@ namespace Venus_MainPages.ViewModels
         /// <param name="e"></param>
         private void menuItem_MouseClick_DeleteRecipe(object sender, RoutedEventArgs e)
         {
-            MenuItem mit = sender as MenuItem;
-            //string recipename = mit.Header.ToString();
-            m_uiRecipeManager.DeleteRecipe(m_chamId, CurrentRecipeName);
-            //PerformCreateRecipe(folderName);
-            treeViewRcpList.Items.Remove(selectedItem);
+            if (CurrentRecipe == null)
+            {
+                return;
+            }
+            if (WPFMessageBox.ShowQuestion($"Delete {CurrentRecipeName}?","删除后无法恢复!!!") == MessageBoxResult.Yes)
+            {
+                MenuItem mit = sender as MenuItem;
+                //string recipename = mit.Header.ToString();
+                m_uiRecipeManager.DeleteRecipe(m_chamId, CurrentRecipeName);
+                //PerformCreateRecipe(folderName);
+                treeViewRcpList.Items.Remove(selectedItem);
+            }
+            
         }
         /// <summary>
         /// 另存为配方
@@ -323,6 +333,10 @@ namespace Venus_MainPages.ViewModels
         /// <param name="e"></param>
         private void menuItem_MouseClick_SaveAsRecipe(object sender, RoutedEventArgs e)
         {
+            if (CurrentRecipe == null)
+            {
+                return;
+            }
             var dlg = new SaveFileDialog()
             {
                 Title = "Save As",
@@ -335,6 +349,27 @@ namespace Venus_MainPages.ViewModels
             }
             UpdateRecipeFileList();
         }
+
+        private void menuItem_MouseClick_RenameRecipe(object sender, RoutedEventArgs e)
+        {
+            if (CurrentRecipe == null)
+            {
+                return;
+            }
+            var newName= Interaction.InputBox("Rename Recipe", "", CurrentRecipeName, -1, -1);
+            if (newName != CurrentRecipeName && newName!="")
+            {
+                var oldrecipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", m_chamId, CurrentRecipeName + ".rcp");
+                var newrecipePath = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "Recipes", m_chamId, newName + ".rcp");
+
+                File.Move(oldrecipePath, newrecipePath);
+
+                UpdateRecipeFileList();
+            }
+            
+
+        }
+
         /// <summary>
         /// SaveAs recipe by recipe name and recipe data
         /// </summary>

+ 14 - 0
Venus/Venus_MainPages/ViewModels/SequenceViewModel.cs

@@ -0,0 +1,14 @@
+using Prism.Mvvm;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Venus_MainPages.ViewModels
+{
+    internal class SequenceViewModel:BindableBase
+    {
+
+    }
+}

File diff suppressed because it is too large
+ 16 - 5
Venus/Venus_MainPages/Views/DataHistoryView.xaml


+ 12 - 0
Venus/Venus_MainPages/Views/EfemView.xaml

@@ -0,0 +1,12 @@
+<UserControl x:Class="Venus_MainPages.Views.EfemView"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
+             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+             xmlns:local="clr-namespace:Venus_MainPages.Views"
+             mc:Ignorable="d" 
+             d:DesignHeight="450" d:DesignWidth="800">
+    <Grid>
+            
+    </Grid>
+</UserControl>

+ 28 - 0
Venus/Venus_MainPages/Views/EfemView.xaml.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Venus_MainPages.Views
+{
+    /// <summary>
+    /// EfemView.xaml 的交互逻辑
+    /// </summary>
+    public partial class EfemView : UserControl
+    {
+        public EfemView()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 7 - 7
Venus/Venus_MainPages/Views/OverView.xaml

@@ -867,8 +867,8 @@
                 <TextBlock Grid.Row="5"  Grid.Column="1" Text="{Binding BiasMatchC1}"           Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
                 <TextBlock Grid.Row="6"  Grid.Column="1" Text="{Binding BiasMatchC2}"           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="8"  Grid.Column="1" Text="{Binding ChamberPressureFeedBack}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9"  Grid.Column="1" Text="{Binding PositionValue}"       Background="#D0D8E8"   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="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="12"  Grid.Column="1" Text="{Binding MFC3Data.FeedBack,StringFormat='F1'}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
@@ -883,14 +883,14 @@
                 <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="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="2"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[1].MaxReflectedPower}"           Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,5,0,0" Block.TextAlignment="Center"/>
+                <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="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="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="8"  Grid.Column="2" Text=""       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
-                <TextBlock Grid.Row="9"  Grid.Column="2" Text=""       Background="#D0D8E8"   TextBlock.TextAlignment="Center" Padding="0,6,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="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="12"  Grid.Column="2" Text="{Binding CurrentRecipeStep.LstUnit[3].Gas3}"       Background="#E9EDF4"   TextBlock.TextAlignment="Center" Padding="0,6,0,0" Block.TextAlignment="Center"/>
@@ -901,7 +901,7 @@
                 <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="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="20"  Grid.Column="2" Text=""       Background="#E9EDF4"   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="1" Grid.Column="3"  Text="W"           Background="#D0D8E8"   TextBlock.TextAlignment="Center"    Block.TextAlignment="Center" Padding="0,6,0,0"/>
@@ -1089,7 +1089,7 @@
 
             <!--<Button Grid.Row="0" Grid.Column="3" Content="Set" Style="{x:Null}" Margin="2" Command="{Binding SetChillerTempCommand}" Cursor="Hand"/>-->
             <StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="3">
-                <Ellipse Width="18" Height="18" Fill="{Binding ChillerIsOn,Converter={StaticResource boolToColor5}}"  Stroke="Silver" StrokeThickness="2"/>
+                <Ellipse Width="18" Height="18" Fill="{Binding ChillerIsOn,Converter={StaticResource boolToColor2}}"  Stroke="Silver" StrokeThickness="2"/>
                 <Button Margin="5,0,0,0" Height="20" Width="70"  Style="{x:Null}" Content="ON/OFF"          Command="{Binding OnOffChillerCommand}"    CommandParameter="True"  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="True"  IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Cursor="Hand"/>
 

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

@@ -135,7 +135,7 @@
 
             <Canvas Grid.Row="2">
                 <TextBlock Text="Select All:" Canvas.Left="74" Canvas.Top="0"/>
-                <CheckBox   IsEnabled="{Binding IsSelectedAllEnable,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Left" VerticalAlignment="Top" Canvas.Left="143" Canvas.Top="3" Margin="0,-4,0,0">
+                <CheckBox    FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_Black}" HorizontalAlignment="Left" VerticalAlignment="Top" Canvas.Left="143" Canvas.Top="3" Margin="0,-4,0,0">
                     <i:Interaction.Triggers>
                         <i:EventTrigger EventName="Checked">
                             <i:InvokeCommandAction  Command="{Binding CheckCommand}"/>

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

@@ -80,7 +80,7 @@
                 </StackPanel>
             </Border>
             <Border Grid.Row="1" BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_Content}" Padding="5,1">
-                <TreeView Name="treeViewRcpList" Margin="0,6"  
+                <TreeView Name="treeViewRcpList" Margin="0,6"
                       FontSize="18" BorderThickness="1" BorderBrush="Black" Canvas.Top="140" Canvas.Left="4" Opacity="1" Background="LightSteelBlue"  AllowDrop="True" 
                       >
                     <i:Interaction.Triggers>

+ 41 - 34
Venus/Venus_Themes/UserControls/DrawGraphicsControl.xaml.cs

@@ -6,10 +6,12 @@ using System.Drawing.Imaging;
 using System.Globalization;
 using System.IO;
 using System.Linq;
+using System.Reflection.Emit;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Input;
 using System.Windows.Media;
+using System.Windows.Media.Animation;
 using System.Windows.Media.Imaging;
 
 namespace Venus_Themes.UserControls
@@ -31,7 +33,7 @@ namespace Venus_Themes.UserControls
         private double m_StartDrawLineX = 0;
 
         private System.Drawing.Brush m_BrushText = System.Drawing.Brushes.Black;
-        private System.Drawing.Brush m_BrushXYText = System.Drawing.Brushes.Blue;
+        private System.Drawing.Brush m_BrushXYText = System.Drawing.Brushes.DarkRed;
         private System.Drawing.Pen m_PenLine;
         private System.Drawing.Pen m_PenLightGray;
         private System.Drawing.Pen m_PenBlue;
@@ -47,6 +49,8 @@ namespace Venus_Themes.UserControls
         private System.Windows.Point m_EndPoint;
         private System.Windows.Point m_CurrentPoint;
 
+        private float LineThickness = 2.0f;
+
         #region Property
         public PointCollection PlotDataPoints
         {
@@ -173,22 +177,22 @@ namespace Venus_Themes.UserControls
             m_PenASData = new System.Drawing.Pen(System.Drawing.Brushes.Red, 1);
             m_PenCollencteions = new System.Drawing.Pen[]
             {
-                new System.Drawing.Pen(System.Drawing.Brushes.Green,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Red,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Blue,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Orange,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Yellow,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.YellowGreen,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.AliceBlue,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Chocolate,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Cyan,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.DarkGreen,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.LightBlue,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.DarkBlue,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Pink,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.DarkViolet,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.Cyan,1),
-                new System.Drawing.Pen(System.Drawing.Brushes.HotPink,1),
+                new System.Drawing.Pen(System.Drawing.Brushes.Green,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Red,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Blue,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Orange,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Yellow,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.YellowGreen,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.AliceBlue,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Chocolate,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Cyan,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.DarkGreen,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.LightBlue,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.DarkBlue,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Pink,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.DarkViolet,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.Cyan,LineThickness),
+                new System.Drawing.Pen(System.Drawing.Brushes.HotPink,LineThickness),
             };
 
             IsHorizontalNavigationEnabled = false;
@@ -217,8 +221,9 @@ namespace Venus_Themes.UserControls
             {
                 m_WavePlotX = m_WavePlotMinX;
                 m_WavePlotWidth = m_WavePlotMaxX - m_WavePlotMinX;
-                m_WavePlotY = m_WavePlotMinY;
-                m_WavePlotHeight = m_WavePlotMaxY - m_WavePlotMinY;
+
+                m_WavePlotY = m_WavePlotMinY-1000;
+                m_WavePlotHeight = (m_WavePlotMaxY - m_WavePlotMinY)+2000;
                 GraphicDraw();
             }
         }
@@ -643,18 +648,18 @@ namespace Venus_Themes.UserControls
                     {
                         double X = m_WavePlotX + (m_CurrentPoint.X - m_StartDrawLineX) / ((this.ActualWidth - m_StartDrawLineX) / m_WavePlotWidth);
                         double Y = m_WavePlotY + (this.ActualHeight - 50 - m_CurrentPoint.Y) / ((this.ActualHeight - 50) / m_WavePlotHeight);
-                        if (this.PointCollections == null || this.PointCollections.Count <= 1)
+                        if (this.PointCollections == null || this.PointCollections.Count <= 10)
                         {
                             graphics.DrawLine(m_PenBlue, new System.Drawing.PointF((float)m_StartDrawLineX, (float)m_CurrentPoint.Y), new PointF((float)Canvas_Main.ActualWidth, (float)m_CurrentPoint.Y));
                             graphics.DrawLine(m_PenBlue, new System.Drawing.PointF((float)m_CurrentPoint.X, 0), new PointF((float)m_CurrentPoint.X, (float)Canvas_Main.ActualHeight - 50));
-                            if (IsHorizontalDateTimeAxis)
-                            {
-                                graphics.DrawString(string.Format("X={0};Y={1}", DateTime.FromOADate(X), Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)m_CurrentPoint.X + 10, (float)m_CurrentPoint.Y + 10));
-                            }
-                            else
-                            {
-                                graphics.DrawString(string.Format("X={0};Y={1}", X.ToString("0.00"), Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)m_CurrentPoint.X + 10, (float)m_CurrentPoint.Y + 10));
-                            }
+                            //if (IsHorizontalDateTimeAxis)
+                            //{
+                            //    graphics.DrawString(string.Format("X={0};Y={1}", DateTime.FromOADate(X), Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)m_CurrentPoint.X + 10, (float)m_CurrentPoint.Y + 10));
+                            //}
+                            //else
+                            //{
+                            //    graphics.DrawString(string.Format("X={0};Y={1}", X.ToString("0.00"), Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)m_CurrentPoint.X + 10, (float)m_CurrentPoint.Y + 10));
+                            //}
                         }
                         //
                         if (this.PlotDataPoints != null && this.PlotDataPoints.Count > 0)
@@ -745,7 +750,7 @@ namespace Venus_Themes.UserControls
                             }
                         }
                         //
-                        if (this.PointCollections != null && this.PointCollections.Count <= 1)
+                        if (this.PointCollections != null && this.PointCollections.Count <= 10)
                         {
                             foreach (PointCollection point in this.PointCollections)
                             {
@@ -770,11 +775,11 @@ namespace Venus_Themes.UserControls
                                             graphics.DrawEllipse(m_PenBlue, rectangle);
                                             if (IsHorizontalDateTimeAxis)
                                             {
-                                                graphics.DrawString(string.Format("X={0};Y={1}", DateTime.FromOADate(point[index].X), point[index].Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)StartX + 10, (float)StartY + 10));
+                                                graphics.DrawString(string.Format("X={0};Y={1}", DateTime.FromOADate(point[index].X), point[index].Y.ToString("0.00")), new Font("Times New Roman", 15.0F), m_BrushXYText, new PointF((float)StartX + 10, (float)StartY + 10));
                                             }
                                             else
                                             {
-                                                graphics.DrawString(string.Format("X={0};Y={1}", point[index].X.ToString("0.00"), point[index].Y.ToString("0.00")), System.Drawing.SystemFonts.DefaultFont, m_BrushXYText, new PointF((float)StartX + 10, (float)StartY + 10));
+                                                graphics.DrawString(string.Format("X={0};Y={1}", point[index].X.ToString("0.00"), point[index].Y.ToString("0.00")),     new Font("Times New Roman", 15.0F),   m_BrushXYText, new PointF((float)StartX + 10, (float)StartY + 10));
                                             }
                                         }
                                     }
@@ -825,6 +830,7 @@ namespace Venus_Themes.UserControls
 
         private void Canvas_Main_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
         {
+            this.Cursor = Cursors.Hand;
             if (e.ClickCount == 2)
             {
                 FitControl();
@@ -855,7 +861,7 @@ namespace Venus_Themes.UserControls
                 m_StartPoint = m_EndPoint;
                 GraphicDraw();
             }
-            else if (this.PointCollections == null || this.PointCollections.Count <= 1)
+            else if (this.PointCollections == null || this.PointCollections.Count <= 10)
             {
                 GraphicDraw();
             }
@@ -863,6 +869,7 @@ namespace Venus_Themes.UserControls
 
         private void Canvas_Main_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
         {
+            this.Cursor = Cursors.Arrow;
             if (m_StartMouseMove && m_MouseMove && e.LeftButton == MouseButtonState.Released)
             {
                 m_StartMouseMove = false;
@@ -885,7 +892,7 @@ namespace Venus_Themes.UserControls
 
         private void Canvas_Main_MouseEnter(object sender, MouseEventArgs e)
         {
-            if (this.PointCollections == null || this.PointCollections.Count <= 1)
+            if (this.PointCollections == null || this.PointCollections.Count <= 10)
             {
                 m_MouseEnter = true;
             } 
@@ -893,7 +900,7 @@ namespace Venus_Themes.UserControls
 
         private void Canvas_Main_MouseLeave(object sender, MouseEventArgs e)
         {
-            if (this.PointCollections == null || this.PointCollections.Count <= 1) m_MouseEnter = false;
+            if (this.PointCollections == null || this.PointCollections.Count <= 10) m_MouseEnter = false;
             GraphicDraw();
         }
 

+ 2 - 3
Venus/Venus_Themes/Venus_Themes.csproj

@@ -31,9 +31,8 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Caliburn.Micro, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\..\jet.svn\jet.plasma\trunk\MetisMars\ThirdParty\dlls\Caliburn.Micro.dll</HintPath>
+    <Reference Include="Caliburn.Micro">
+      <HintPath>..\ThirdParty\selfbuild\Caliburn.Micro.dll</HintPath>
     </Reference>
     <Reference Include="OpenSEMI.ClientBase">
       <HintPath>..\ThirdParty\selfbuild\OpenSEMI.ClientBase.dll</HintPath>

+ 12 - 0
Venus/Venus_UI/Config/VenusMenu.json

@@ -230,6 +230,18 @@
         "IsShow": "true",
         "Name": "OverView",
         "View": "OperationOverView"
+      },
+      {
+        "Id": "SequenceView",
+        "IsShow": "true",
+        "Name": "Sequence",
+        "View": "SequenceView"
+      },
+      {
+        "Id": "EfemView",
+        "IsShow": "true",
+        "Name": "EFEM",
+        "View": "EfemView"
       }
     ]
   },