diff --git a/Correlator.sln.DotSettings.user b/Correlator.sln.DotSettings.user
index 15da52d..f74df5c 100644
--- a/Correlator.sln.DotSettings.user
+++ b/Correlator.sln.DotSettings.user
@@ -7,4 +7,5 @@
<Assembly Path="D:\Code\Rider Projects\相关仪\测试版\correlator\packages\log4net.2.0.15\lib\net45\log4net.dll" />
</AssemblyExplorer>
True
+ True
True
\ No newline at end of file
diff --git a/Correlator.sln.DotSettings.user b/Correlator.sln.DotSettings.user
index 15da52d..f74df5c 100644
--- a/Correlator.sln.DotSettings.user
+++ b/Correlator.sln.DotSettings.user
@@ -7,4 +7,5 @@
<Assembly Path="D:\Code\Rider Projects\相关仪\测试版\correlator\packages\log4net.2.0.15\lib\net45\log4net.dll" />
</AssemblyExplorer>
True
+ True
True
\ No newline at end of file
diff --git a/Correlator/Util/MessengerToken.cs b/Correlator/Util/MessengerToken.cs
index 18cfcb5..ce6dbda 100644
--- a/Correlator/Util/MessengerToken.cs
+++ b/Correlator/Util/MessengerToken.cs
@@ -71,6 +71,9 @@
//选频重新计算
public const string ReStartCalculate = "202212090104";
+ //渲染相关系数关系图
+ public const string RenderOscillogram = "202301130101";
+ public const string ClearOscillogram = "202301150101";
#endregion
}
}
\ No newline at end of file
diff --git a/Correlator.sln.DotSettings.user b/Correlator.sln.DotSettings.user
index 15da52d..f74df5c 100644
--- a/Correlator.sln.DotSettings.user
+++ b/Correlator.sln.DotSettings.user
@@ -7,4 +7,5 @@
<Assembly Path="D:\Code\Rider Projects\相关仪\测试版\correlator\packages\log4net.2.0.15\lib\net45\log4net.dll" />
</AssemblyExplorer>
True
+ True
True
\ No newline at end of file
diff --git a/Correlator/Util/MessengerToken.cs b/Correlator/Util/MessengerToken.cs
index 18cfcb5..ce6dbda 100644
--- a/Correlator/Util/MessengerToken.cs
+++ b/Correlator/Util/MessengerToken.cs
@@ -71,6 +71,9 @@
//选频重新计算
public const string ReStartCalculate = "202212090104";
+ //渲染相关系数关系图
+ public const string RenderOscillogram = "202301130101";
+ public const string ClearOscillogram = "202301150101";
#endregion
}
}
\ No newline at end of file
diff --git a/Correlator/View/HomePageWindow.xaml b/Correlator/View/HomePageWindow.xaml
index ca21565..8d35134 100644
--- a/Correlator/View/HomePageWindow.xaml
+++ b/Correlator/View/HomePageWindow.xaml
@@ -4,8 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:Correlator.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:gd="clr-namespace:LiveCharts.Geared;assembly=LiveCharts.Geared"
- xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="相关仪"
d:DesignHeight="768"
@@ -87,23 +85,20 @@
-
+
+
-
-
+
@@ -132,25 +127,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -161,7 +141,10 @@
VerticalAlignment="Bottom" />
-
+
@@ -181,7 +164,10 @@
-
+
diff --git a/Correlator.sln.DotSettings.user b/Correlator.sln.DotSettings.user
index 15da52d..f74df5c 100644
--- a/Correlator.sln.DotSettings.user
+++ b/Correlator.sln.DotSettings.user
@@ -7,4 +7,5 @@
<Assembly Path="D:\Code\Rider Projects\相关仪\测试版\correlator\packages\log4net.2.0.15\lib\net45\log4net.dll" />
</AssemblyExplorer>
True
+ True
True
\ No newline at end of file
diff --git a/Correlator/Util/MessengerToken.cs b/Correlator/Util/MessengerToken.cs
index 18cfcb5..ce6dbda 100644
--- a/Correlator/Util/MessengerToken.cs
+++ b/Correlator/Util/MessengerToken.cs
@@ -71,6 +71,9 @@
//选频重新计算
public const string ReStartCalculate = "202212090104";
+ //渲染相关系数关系图
+ public const string RenderOscillogram = "202301130101";
+ public const string ClearOscillogram = "202301150101";
#endregion
}
}
\ No newline at end of file
diff --git a/Correlator/View/HomePageWindow.xaml b/Correlator/View/HomePageWindow.xaml
index ca21565..8d35134 100644
--- a/Correlator/View/HomePageWindow.xaml
+++ b/Correlator/View/HomePageWindow.xaml
@@ -4,8 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:Correlator.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:gd="clr-namespace:LiveCharts.Geared;assembly=LiveCharts.Geared"
- xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="相关仪"
d:DesignHeight="768"
@@ -87,23 +85,20 @@
-
+
+
-
-
+
@@ -132,25 +127,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -161,7 +141,10 @@
VerticalAlignment="Bottom" />
-
+
@@ -181,7 +164,10 @@
-
+
diff --git a/Correlator/View/HomePageWindow.xaml.cs b/Correlator/View/HomePageWindow.xaml.cs
index 77d0163..45b032a 100644
--- a/Correlator/View/HomePageWindow.xaml.cs
+++ b/Correlator/View/HomePageWindow.xaml.cs
@@ -1,8 +1,14 @@
-using System.Windows;
+using System;
+using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using Correlator.Util;
using GalaSoft.MvvmLight.Messaging;
+using MathWorks.MATLAB.NET.Arrays;
+using ScottPlot;
+using ScottPlot.Plottable;
+using Color = System.Drawing.Color;
+using HorizontalAlignment = System.Windows.HorizontalAlignment;
namespace Correlator.View
{
@@ -12,6 +18,34 @@
{
InitializeComponent();
+ //渲染数据波形图
+ Messenger.Default.Register(this, MessengerToken.RenderOscillogram, array =>
+ {
+ LogWithConsole.WriteLine("开始渲染波形图", "HomePageWindow");
+ //柱状图横坐标集合
+ var xDoubles = GetArray((MWNumericArray)array[5]);
+ //柱状图纵坐标集合
+ var yDoubles = GetArray((MWNumericArray)array[4]);
+ Application.Current.Dispatcher.Invoke(delegate
+ {
+ //点如果较少,可以直接AddBar,但是超过一千个点,不能直接AddBar,否则Bar颜色会被边框覆盖从而呈现黑色
+ ScottplotView.Plot.Add(new BarPlot(DataGen.Consecutive(xDoubles.Length), yDoubles, null, null)
+ {
+ FillColor = Color.FromArgb(255, 49, 151, 36),
+ BorderColor = Color.FromArgb(255, 49, 151, 36),
+ BorderLineWidth = 0.1f
+ });
+ ScottplotView.Refresh();
+ });
+ });
+
+ Messenger.Default.Register(this, MessengerToken.ClearOscillogram, s =>
+ {
+ LogWithConsole.WriteLine("清空波形图", "HomePageWindow");
+ ScottplotView.Plot.Clear();
+ ScottplotView.Refresh();
+ });
+
Messenger.Default.Register(this, MessengerToken.CloseHomePageWindow, s => { Close(); });
//频段过滤
@@ -152,7 +186,7 @@
private void Window_Loaded(object sender, RoutedEventArgs e)
{
- var colorBrush = new SolidColorBrush(Color.FromArgb(255, 84, 84, 84));
+ var colorBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 84, 84, 84));
const int strokeThickness = 1;
//水平线
var horizontalLine = new Line
@@ -198,5 +232,17 @@
HorizontalLineGrid.Children.Add(shorterScale);
}
}
+
+ private static double[] GetArray(MWNumericArray inputMw)
+ {
+ var num = inputMw.NumberOfElements;
+ var outArray = new double[num];
+ for (var i = 0; i < num; i++)
+ {
+ outArray[i] = Convert.ToDouble(inputMw[i + 1].ToString());
+ }
+
+ return outArray;
+ }
}
}
\ No newline at end of file
diff --git a/Correlator.sln.DotSettings.user b/Correlator.sln.DotSettings.user
index 15da52d..f74df5c 100644
--- a/Correlator.sln.DotSettings.user
+++ b/Correlator.sln.DotSettings.user
@@ -7,4 +7,5 @@
<Assembly Path="D:\Code\Rider Projects\相关仪\测试版\correlator\packages\log4net.2.0.15\lib\net45\log4net.dll" />
</AssemblyExplorer>
True
+ True
True
\ No newline at end of file
diff --git a/Correlator/Util/MessengerToken.cs b/Correlator/Util/MessengerToken.cs
index 18cfcb5..ce6dbda 100644
--- a/Correlator/Util/MessengerToken.cs
+++ b/Correlator/Util/MessengerToken.cs
@@ -71,6 +71,9 @@
//选频重新计算
public const string ReStartCalculate = "202212090104";
+ //渲染相关系数关系图
+ public const string RenderOscillogram = "202301130101";
+ public const string ClearOscillogram = "202301150101";
#endregion
}
}
\ No newline at end of file
diff --git a/Correlator/View/HomePageWindow.xaml b/Correlator/View/HomePageWindow.xaml
index ca21565..8d35134 100644
--- a/Correlator/View/HomePageWindow.xaml
+++ b/Correlator/View/HomePageWindow.xaml
@@ -4,8 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:Correlator.Converter"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:gd="clr-namespace:LiveCharts.Geared;assembly=LiveCharts.Geared"
- xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="相关仪"
d:DesignHeight="768"
@@ -87,23 +85,20 @@
-
+
+
-
-
+
@@ -132,25 +127,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -161,7 +141,10 @@
VerticalAlignment="Bottom" />
-
+
@@ -181,7 +164,10 @@
-
+
diff --git a/Correlator/View/HomePageWindow.xaml.cs b/Correlator/View/HomePageWindow.xaml.cs
index 77d0163..45b032a 100644
--- a/Correlator/View/HomePageWindow.xaml.cs
+++ b/Correlator/View/HomePageWindow.xaml.cs
@@ -1,8 +1,14 @@
-using System.Windows;
+using System;
+using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using Correlator.Util;
using GalaSoft.MvvmLight.Messaging;
+using MathWorks.MATLAB.NET.Arrays;
+using ScottPlot;
+using ScottPlot.Plottable;
+using Color = System.Drawing.Color;
+using HorizontalAlignment = System.Windows.HorizontalAlignment;
namespace Correlator.View
{
@@ -12,6 +18,34 @@
{
InitializeComponent();
+ //渲染数据波形图
+ Messenger.Default.Register(this, MessengerToken.RenderOscillogram, array =>
+ {
+ LogWithConsole.WriteLine("开始渲染波形图", "HomePageWindow");
+ //柱状图横坐标集合
+ var xDoubles = GetArray((MWNumericArray)array[5]);
+ //柱状图纵坐标集合
+ var yDoubles = GetArray((MWNumericArray)array[4]);
+ Application.Current.Dispatcher.Invoke(delegate
+ {
+ //点如果较少,可以直接AddBar,但是超过一千个点,不能直接AddBar,否则Bar颜色会被边框覆盖从而呈现黑色
+ ScottplotView.Plot.Add(new BarPlot(DataGen.Consecutive(xDoubles.Length), yDoubles, null, null)
+ {
+ FillColor = Color.FromArgb(255, 49, 151, 36),
+ BorderColor = Color.FromArgb(255, 49, 151, 36),
+ BorderLineWidth = 0.1f
+ });
+ ScottplotView.Refresh();
+ });
+ });
+
+ Messenger.Default.Register(this, MessengerToken.ClearOscillogram, s =>
+ {
+ LogWithConsole.WriteLine("清空波形图", "HomePageWindow");
+ ScottplotView.Plot.Clear();
+ ScottplotView.Refresh();
+ });
+
Messenger.Default.Register(this, MessengerToken.CloseHomePageWindow, s => { Close(); });
//频段过滤
@@ -152,7 +186,7 @@
private void Window_Loaded(object sender, RoutedEventArgs e)
{
- var colorBrush = new SolidColorBrush(Color.FromArgb(255, 84, 84, 84));
+ var colorBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 84, 84, 84));
const int strokeThickness = 1;
//水平线
var horizontalLine = new Line
@@ -198,5 +232,17 @@
HorizontalLineGrid.Children.Add(shorterScale);
}
}
+
+ private static double[] GetArray(MWNumericArray inputMw)
+ {
+ var num = inputMw.NumberOfElements;
+ var outArray = new double[num];
+ for (var i = 0; i < num; i++)
+ {
+ outArray[i] = Convert.ToDouble(inputMw[i + 1].ToString());
+ }
+
+ return outArray;
+ }
}
}
\ No newline at end of file
diff --git a/Correlator/ViewModel/HomePageViewModel.cs b/Correlator/ViewModel/HomePageViewModel.cs
index 9ae0e0d..03939ff 100644
--- a/Correlator/ViewModel/HomePageViewModel.cs
+++ b/Correlator/ViewModel/HomePageViewModel.cs
@@ -16,8 +16,6 @@
using GalaSoft.MvvmLight.Command;
using GalaSoft.MvvmLight.Messaging;
using HandyControl.Controls;
-using LiveCharts.Defaults;
-using LiveCharts.Geared;
using MathWorks.MATLAB.NET.Arrays;
using Newtonsoft.Json;
using MessageBox = HandyControl.Controls.MessageBox;
@@ -310,21 +308,6 @@
}
}
- ///
- /// Chart点数据
- ///
- private GearedValues _columnValues;
-
- public GearedValues ColumnValues
- {
- get => _columnValues;
- set
- {
- _columnValues = value;
- RaisePropertyChanged(() => ColumnValues);
- }
- }
-
#endregion
#region ButtonIsEnabled
@@ -861,10 +844,10 @@
SoundSpeed = "0";
NoiseValue = "未设置";
PassTime = "0";
- //复位时将波形图数据清空
- ColumnValues?.Clear();
_runningSeconds = 0;
_runningTimer.Stop();
+ //清空波形图
+ Messenger.Default.Send("", MessengerToken.ClearOscillogram);
}
///
@@ -903,6 +886,39 @@
SenderClass.SendCorrelatorWakeUpCmd(SerialPortManager.Instance.SerialPort);
Thread.Sleep(10 * 1000);
}
+
+ //TODO 测试数据
+ // var dataModel = new CorrelatorDataModel
+ // {
+ // LeftDeviceDataArray = new double[3750],
+ // RightDeviceDataArray = new double[3750]
+ // };
+ // using (var streamReader = new StreamReader(new FileStream(
+ // @"C:\Users\Administrator\Desktop\LeftData.txt", FileMode.Open, FileAccess.Read))
+ // )
+ // {
+ // var data = streamReader.ReadToEnd();
+ // var dataArray = data.Split(new[] { "\r\n" }, StringSplitOptions.None);
+ // for (var i = 0; i < dataArray.Length; i++)
+ // {
+ // dataModel.LeftDeviceDataArray[i] = double.Parse(dataArray[i]);
+ // }
+ // }
+ //
+ // using (var streamReader = new StreamReader(new FileStream(
+ // @"C:\Users\Administrator\Desktop\RightData.txt", FileMode.Open, FileAccess.Read))
+ // )
+ // {
+ // var data = streamReader.ReadToEnd();
+ // var dataArray = data.Split(new[] { "\r\n" }, StringSplitOptions.None);
+ // for (var i = 0; i < dataArray.Length; i++)
+ // {
+ // dataModel.RightDeviceDataArray[i] = double.Parse(dataArray[i]);
+ // }
+ // }
+ //
+ // Thread.Sleep(3 * 1000);
+ // Messenger.Default.Send(dataModel, MessengerToken.HomePageDeviceData);
}
///
@@ -941,23 +957,8 @@
// SpeedDistance = timeDiff;
// SpeedValue = timeDiff.ToString(CultureInfo.InvariantCulture) + "ms";
- //柱状图纵坐标集合
- var yDoubles = GetArray((MWNumericArray)array[4]);
- //柱状图横坐标集合
- var xDoubles = GetArray((MWNumericArray)array[5]);
- //绑定柱状图
- ColumnValues = new GearedValues();
- var count = xDoubles.Length;
- for (var i = 0; i < count; i++)
- {
- ColumnValues.Add(new ObservablePoint
- {
- X = xDoubles[i],
- Y = yDoubles[i]
- });
- }
-
- ColumnValues.WithQuality(Quality.Medium);
+ //将数据发送到HomePageWindow.xaml.cs页面进行渲染
+ Messenger.Default.Send(array, MessengerToken.RenderOscillogram);
var maxFreLowOut = Convert.ToInt32(array[6].ToString()); //低频
var maxFreHighOut = Convert.ToInt32(array[7].ToString()); //高频
@@ -973,17 +974,5 @@
FlowStatus.CanGetSignal = true;
return true;
}
-
- private static double[] GetArray(MWNumericArray inputMw)
- {
- var num = inputMw.NumberOfElements;
- var outArray = new double[num];
- for (var i = 0; i < num; i++)
- {
- outArray[i] = Convert.ToDouble(inputMw[i + 1].ToString());
- }
-
- return outArray;
- }
}
}
\ No newline at end of file