diff --git a/Project.FLY.FlyADBase/FlyADBase/FlyADBase.csproj b/Project.FLY.FlyADBase/FlyADBase/FlyADBase.csproj index e84a9dc9d196bef91c7425c37ce1d3b833dc011a..a8a2a12047c885151eda929fc134e1a40122d864 100644 --- a/Project.FLY.FlyADBase/FlyADBase/FlyADBase.csproj +++ b/Project.FLY.FlyADBase/FlyADBase/FlyADBase.csproj @@ -80,7 +80,7 @@ <Version>10.1.1</Version> </PackageReference> <PackageReference Include="NLog"> - <Version>5.1.0</Version> + <Version>4.6.8</Version> </PackageReference> <PackageReference Include="PropertyChanged.Fody"> <Version>4.1.0</Version> diff --git a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml index 4be0b22a1fb6dfa7e420823999a8cece8cfb32eb..1e0ac8af7720865016f16638f61cbd7aad5e8dcc 100644 --- a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml +++ b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml @@ -11,8 +11,7 @@ <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> - <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Dictionary_MyConv.xaml"/> - <ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/Styles.xaml"/> + <ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Converter/Converters.xaml"/> <ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/GraphStyle.xaml"/> </ResourceDictionary.MergedDictionaries> <local:FixGraphVmUt x:Key="viewModel" Max="65540" Min="655" Average="123" Sigma3="3.2"/> @@ -36,23 +35,23 @@ <lvc:LineSeries Values="{Binding Values}" StrokeThickness = "3" - Stroke = "{StaticResource Brushes.Activity}" - + Stroke = "{StaticResource Brushes.Accent}" Fill = "Transparent" PointGeometry ="{x:Null}"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> - <lvc:Axis LabelFormatter="{Binding XFormatter}" FontSize="16" Foreground="Black" + <lvc:Axis LabelFormatter="{Binding XFormatter}" Foreground="{StaticResource Brushes.Text.Black}" MaxValue="{Binding XMax}" MinValue="{Binding XMin}"> <lvc:Axis.Separator> - <lvc:Separator Stroke="LightGray"/> + <lvc:Separator Stroke="{StaticResource Brushes.Text.Gray}" StrokeDashArray="3" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> - <lvc:Axis LabelFormatter="{Binding YFormatter}" MaxValue="{Binding YMax}" MinValue="{Binding YMin}" Panel.ZIndex="0" Foreground="Black"> + <lvc:Axis LabelFormatter="{Binding YFormatter}" Foreground="{StaticResource Brushes.Text.Black}" + MaxValue="{Binding YMax}" MinValue="{Binding YMin}" > <lvc:Axis.Separator> - <lvc:Separator StrokeThickness="1" Stroke="LightGray" /> + <lvc:Separator Stroke="{StaticResource Brushes.Text.Gray}" StrokeDashArray="3" /> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY > @@ -68,43 +67,51 @@ </TextBlock> </Grid> </Button> - <Grid Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" > + <Grid Grid.Column="1" Grid.RowSpan="2" Panel.ZIndex="2" VerticalAlignment="Top" > <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="auto"/> </Grid.ColumnDefinitions> - <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left" Margin="{StaticResource ControlMargin}"> - <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> - <StackPanel Orientation="Horizontal" > - <TextBlock Style="{StaticResource TitleStyle}" Text="AD值" Foreground="{StaticResource Brushes.Highlight}" Visibility="{Binding IsADMode,Converter={StaticResource visbilityconv}}"/> - <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Time,StringFormat={}{0:HH:mm:ss}}"/> - </StackPanel> - </Viewbox> - <Viewbox MaxHeight="{StaticResource FontSize.Value}" HorizontalAlignment="Left" Margin="2"> - <StackPanel Orientation="Horizontal"> - <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" - Background="{StaticResource SemiTransparentGreyBrush2}"> - <TextBlock Style="{StaticResource TitleStyle}" Text="é—´éš”:" /> - <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Intervalms}"/> - <TextBlock Style="{StaticResource UnitStyle}" Text="ms" /> + <Grid + HorizontalAlignment="Left" > + <Viewbox MaxHeight="{StaticResource GraphInfo2RowMaxHeight}" Margin="{StaticResource ControlMargin}"> + <StackPanel> + <StackPanel Orientation="Horizontal" > + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"> + <TextBlock Style="{StaticResource TitleStyle}" Text="AD" Foreground="{StaticResource Brushes.Highlight}" Visibility="{Binding IsADMode,Converter={StaticResource visbilityconv}}"/> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}"> + <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Time,StringFormat={}{0:HH:mm:ss}}"/> + </StackPanel> </StackPanel> - <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" - Background="{StaticResource SemiTransparentGreyBrush2}"> - <TextBlock Style="{StaticResource TitleStyle}" Text="æ··åˆ:" /> - <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Mix}"/> + <StackPanel Orientation="Horizontal"> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" + Background="{StaticResource TextTransparentBackgroundBrush}"> + <TextBlock Style="{StaticResource TitleStyle}" Text="é—´éš”" /> + <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Intervalms}"/> + <TextBlock Style="{StaticResource UnitStyle}" Text="ms" /> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" + Background="{StaticResource TextTransparentBackgroundBrush}"> + <TextBlock Style="{StaticResource TitleStyle}" Text="æ··åˆ" /> + <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Mix}"/> + </StackPanel> </StackPanel> </StackPanel> </Viewbox> - </StackPanel> + </Grid> - <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Grid.Column="2" Grid.RowSpan="2"> - <Button Click="button_pause_Click" > + <StackPanel Orientation="Horizontal" Grid.Column="1" > + <Button Style="{StaticResource Styles.Button.Icon.Rectangle}" Command="{Binding ClearCmd}"> + <iconPacks:PackIconMaterial Kind="Delete"/> + </Button> + <Button Command="{Binding PauseCmd}"> <Button.Style> <Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}"> - <Setter Property="Background" Value="{StaticResource Brushes.Activity}"/> + <Setter Property="Background" Value="{StaticResource Brushes.Fault}"/> <Style.Triggers> <DataTrigger Binding="{Binding IsPaused}" Value="True"> - <Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/> + <Setter Property="Background" Value="{StaticResource Brushes.Pass}"/> </DataTrigger> </Style.Triggers> </Style> @@ -122,98 +129,54 @@ </iconPacks:PackIconMaterial.Style> </iconPacks:PackIconMaterial> </Button> - <Button Click="button_save_Click" IsEnabled="{Binding IsPaused}" > - <Button.Style> - <Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}"> - <Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/> - <Style.Triggers> - <DataTrigger Binding="{Binding IsPaused}" Value="True"> - <Setter Property="Background" Value="{StaticResource Brushes.Activity}"/> - </DataTrigger> - </Style.Triggers> - </Style> - </Button.Style> - <iconPacks:PackIconMaterial Kind="Floppy" /> + <Button Style="{StaticResource Styles.Button.Icon.Rectangle}" IsEnabled="{Binding IsPaused}" Command="{Binding SaveCmd}"> + <iconPacks:PackIconMaterial Kind="Floppy"/> </Button> - <Button Click="button_analyze_Click" IsEnabled="{Binding IsPaused}" > - <Button.Style> - <Style TargetType="Button" BasedOn="{StaticResource Styles.Button.Icon.Rectangle}"> - <Setter Property="Background" Value="{StaticResource Brushes.NoAct}"/> - <Style.Triggers> - <DataTrigger Binding="{Binding IsPaused}" Value="True"> - <Setter Property="Background" Value="{StaticResource Brushes.Activity}"/> - </DataTrigger> - </Style.Triggers> - </Style> - </Button.Style> - <iconPacks:PackIconMaterial Kind="ChartLine" /> + <Button Style="{StaticResource Styles.Button.Icon.Rectangle}" IsEnabled="{Binding IsPaused}" Command="{Binding AnalyzeCmd}"> + <iconPacks:PackIconMaterial Kind="ChartLine"/> </Button> </StackPanel> </Grid> - <Grid Grid.Column="2" Grid.RowSpan="2" Panel.ZIndex="1" Margin="10,0" VerticalAlignment="Top" HorizontalAlignment="Right" Background="{StaticResource SemiTransparentGreyBrush}" > - <Viewbox MaxHeight="50"> - <StackPanel Margin="{StaticResource ControlMargin}"> - <StackPanel.Resources> - <Style TargetType="Viewbox"> - <Setter Property="Height" Value="25"/> - <Setter Property="Width" Value="120"/> - <Setter Property="HorizontalAlignment" Value="Left"/> - <Setter Property="VerticalAlignment" Value="Top"/> - </Style> - </StackPanel.Resources> - <StackPanel Orientation="Horizontal"> - <Viewbox > - <StackPanel Orientation="Horizontal"> - <TextBlock Style="{StaticResource TitleStyle}" + <Viewbox MaxHeight="{StaticResource GraphInfo2RowMaxHeight}" Margin="{StaticResource ControlMargin}"> + <UniformGrid Columns="2"> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" + Background="{StaticResource TextBrush}"> + <TextBlock Style="{StaticResource TitleStyle}" Foreground="{StaticResource WhiteBrush}" - Background="{StaticResource TextBrush}" - Opacity="0.8" - Text="å¹³å‡: " + Text="å¹³å‡" /> - <TextBlock Style="{StaticResource ValueStyle}" + <TextBlock Style="{StaticResource ValueStyle}" Foreground="{StaticResource WhiteBrush}" - Background="{StaticResource TextBrush}" Text="{Binding Average,StringFormat={}{0:F1}}" /> - </StackPanel> - </Viewbox> - <Viewbox> - <StackPanel Orientation="Horizontal"> - <TextBlock Style="{StaticResource TitleStyle}" + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" + Background="{StaticResource TextBrush}"> + <TextBlock Style="{StaticResource TitleStyle}" Foreground="{StaticResource WhiteBrush}" - Background="{StaticResource TextBrush}" - Opacity="0.8" - Text="3σ: " + Text="2σ" /> - <TextBlock Style="{StaticResource ValueStyle}" + <TextBlock Style="{StaticResource ValueStyle}" Foreground="{StaticResource WhiteBrush}" - Background="{StaticResource TextBrush}" - Text="{Binding Sigma3,StringFormat={}{0:F1}}" + Text="{Binding Sigma2,StringFormat={}{0:F2}}" /> - </StackPanel> - </Viewbox> </StackPanel> - <StackPanel Orientation="Horizontal"> - <Viewbox > - <StackPanel Orientation="Horizontal"> - <TextBlock Style="{StaticResource TitleStyle}" Text="最大: "/> - <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Max,StringFormat={}{0:F1}}"/> - </StackPanel> - </Viewbox> - <Viewbox > - <StackPanel Orientation="Horizontal" > - <TextBlock Style="{StaticResource TitleStyle}" - Text="最å°: " /> - <TextBlock Style="{StaticResource ValueStyle}" + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" > + <TextBlock Style="{StaticResource TitleStyle}" + Text="最大" /> + <TextBlock Style="{StaticResource ValueStyle}" + Text="{Binding Max,StringFormat={}{0:F1}}"/> + </StackPanel> + <StackPanel Orientation="Horizontal" Margin="{StaticResource TextMargin}" > + <TextBlock Style="{StaticResource TitleStyle}" + Text="最å°" /> + <TextBlock Style="{StaticResource ValueStyle}" Text="{Binding Min,StringFormat={}{0:F1}}"/> - </StackPanel> - </Viewbox> </StackPanel> - - </StackPanel> + </UniformGrid> </Viewbox> </Grid> </Grid> diff --git a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml.cs b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml.cs index 44798b5e07a749e07693834c44627b4b9fe66eb9..32867b74755dfc0b6061db9b26bba9d4c800ec17 100644 --- a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml.cs +++ b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraph.xaml.cs @@ -1,27 +1,6 @@ -using FLY.Thick.Base.Client; -using FLY.Thick.Base.Common; -using FLY.Thick.Base.IService; -using MultiLayout.UiModule; -using FObjBase; -using LiveCharts; -using Misc; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using FLY.Thick.Base.IService; 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; -using FLY.Thick.Base.UI; using Unity; namespace FLY.Thick.Base.UI.UiModule @@ -38,7 +17,7 @@ namespace FLY.Thick.Base.UI.UiModule InitializeComponent(); } [InjectionMethod] - public void Init(int id, IUnityContainer container, + public void Init(int id, IUnityContainer container, IFixService fixService, ITDGageService gageService) { //查找å‚æ•° @@ -68,27 +47,6 @@ namespace FLY.Thick.Base.UI.UiModule w.ShowDialog(); viewModel.IsPaused = isPaused; } - - private void button_pause_Click(object sender, RoutedEventArgs e) - { - viewModel.IsPaused = !viewModel.IsPaused; - } - - private void button_save_Click(object sender, RoutedEventArgs e) - { - viewModel.PreSave(); - WdSaveDatas w = new WdSaveDatas(); - w.Init(viewModel); - w.ShowDialog(); - } - - private void button_analyze_Click(object sender, RoutedEventArgs e) - { - viewModel.GetDatas(out double intervalms, out List<double> datas); - PgFixAnalyze p = new PgFixAnalyze(); - p.Init(intervalms, datas); - MultiLayout.FlyLayoutManager.NavigationService.Navigate(p); - } } diff --git a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraphVm.cs b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraphVm.cs index 0471cb80c19cc30d3414c3432f1105c9e5ea42e9..bfda5822256d1797d9c6ea82f580756ee6357619 100644 --- a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraphVm.cs +++ b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/UiModule/FixGraph/FixGraphVm.cs @@ -11,6 +11,7 @@ using System.Text; using System.Threading.Tasks; using FLY.Thick.Base.UI; using FLY.Thick.Base.Common; +using CommunityToolkit.Mvvm.Input; namespace FLY.Thick.Base.UI.UiModule { @@ -61,9 +62,9 @@ namespace FLY.Thick.Base.UI.UiModule /// </summary> public double Min { get; set; } /// <summary> - /// 3sigma + /// 2sigma /// </summary> - public double Sigma3 { get; set; } + public double Sigma2 { get; set; } #endregion #region çŠ¶æ€ @@ -92,6 +93,12 @@ namespace FLY.Thick.Base.UI.UiModule /// </summary> public bool IsADMode { get; private set; } #endregion + + public RelayCommand PauseCmd { get; private set; } + public RelayCommand SaveCmd { get; private set; } + public RelayCommand AnalyzeCmd { get; private set; } + public RelayCommand ClearCmd { get; private set; } + /// <summary> /// 真实接收的数æ®ï¼Œä¸Ž Values ä¸ä¸€æ ·ï¼Œ Valuesåªæ˜¯mDatas的一部分 /// </summary> @@ -119,6 +126,11 @@ namespace FLY.Thick.Base.UI.UiModule DynArea dynArea; public FixGraphVm() { + PauseCmd = new RelayCommand(Pause); + SaveCmd = new RelayCommand(Save); + AnalyzeCmd = new RelayCommand(Analyze); + ClearCmd = new RelayCommand(UpdateIsADMode); + #region 与数æ®æ— 关界é¢å‚æ•° XFormatter = (x) => { @@ -147,7 +159,26 @@ namespace FLY.Thick.Base.UI.UiModule IsPaused = this.dynArea.ControllerState != CTRL_STATE.FIX; } + private void Analyze() + { + GetDatas(out double intervalms, out List<double> datas); + var p = new FLY.Thick.Base.UI.UiModule.PgFixAnalyze(); + p.Init(intervalms, datas); + MultiLayout.FlyLayoutManager.NavigationService.Navigate(p); + } + private void Save() + { + PreSave(); + WdSaveDatas w = new WdSaveDatas(); + w.Init(this); + w.ShowDialog(); + } + + private void Pause() + { + IsPaused = !IsPaused; + } private void DynArea_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(DynArea.ControllerState)) { @@ -426,7 +457,7 @@ namespace FLY.Thick.Base.UI.UiModule Max = double.NaN; Min = double.NaN; Average = double.NaN; - Sigma3 = double.NaN; + Sigma2 = double.NaN; AutoTarget = double.NaN; return; } @@ -434,7 +465,7 @@ namespace FLY.Thick.Base.UI.UiModule Max = mDatas.Max(); Min = mDatas.Min(); Average = mDatas.Average(); - Sigma3 = mDatas.Sigma() * 3; + Sigma2 = mDatas.Sigma() * 2; if (mDatas.Count > 100) { diff --git a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/WdPassword.xaml.cs b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/WdPassword.xaml.cs index a14465e828c6b6778788f3d27b4d1778ab95f406..92802d942cb05e2c93cd5b426b50896b9a47664b 100644 --- a/Project.FLY.Thick.Base/FLY.Thick.Base.UI/WdPassword.xaml.cs +++ b/Project.FLY.Thick.Base/FLY.Thick.Base.UI/WdPassword.xaml.cs @@ -73,23 +73,23 @@ namespace FLY.Thick.Base.UI /// <returns></returns> public static bool Authorize(string uiName, out int pwLv, string msg=null) { - pwLv = 0; - //ä»Žå®¹å™¨èŽ·å– - var container = Application.Current.Properties["container"] as IUnityContainer; - if (container == null) - return true; + return Authorize(uiName, 0, out pwLv, msg); + } - var passwordAuthorize = container.Resolve<PasswordAuthorize>(); - int level = passwordAuthorize.GetLv(uiName); - if (level <= 0) - return true; + /// <summary> + /// + /// </summary> + /// <param name="level">è¦æ±‚的级别</param> + /// <param name="pwLv">当密ç æ£ç¡®æ—¶ï¼Œå¯†ç 的级别</param> + /// <returns></returns> + public static bool Authorize(int level, out int pwLv) + { + return Authorize(null, level, out pwLv); + } - WdPassword w = new WdPassword(); - w.Init(passwordAuthorize, level, msg); - w.Owner = Application.Current.MainWindow; - bool ret = (bool)w.ShowDialog(); - pwLv = w.PwLv; - return ret; + public static bool Authorize(int level, string msg) + { + return Authorize(null, level, out int pwLv, msg); } /// <summary> @@ -98,7 +98,7 @@ namespace FLY.Thick.Base.UI /// <param name="level">è¦æ±‚的级别</param> /// <param name="pwLv">当密ç æ£ç¡®æ—¶ï¼Œå¯†ç 的级别</param> /// <returns></returns> - public static bool Authorize(int level, out int pwLv) + public static bool Authorize(string uiName, int level, out int pwLv, string msg = null) { pwLv = 0; //ä»Žå®¹å™¨èŽ·å– @@ -107,11 +107,16 @@ namespace FLY.Thick.Base.UI return true; var passwordAuthorize = container.Resolve<PasswordAuthorize>(); + + if (!string.IsNullOrEmpty(uiName)) + { + level = passwordAuthorize.GetLv(uiName); + } + if (level <= 0) return true; - WdPassword w = new WdPassword(); - w.Init(passwordAuthorize, level); + w.Init(passwordAuthorize, level, msg); w.Owner = Application.Current.MainWindow; bool ret = (bool)w.ShowDialog(); pwLv = w.PwLv;