diff --git a/Correlator/ViewModels/MainWindowViewModel.cs b/Correlator/ViewModels/MainWindowViewModel.cs index 0255b8b..39b278f 100644 --- a/Correlator/ViewModels/MainWindowViewModel.cs +++ b/Correlator/ViewModels/MainWindowViewModel.cs @@ -88,6 +88,7 @@ //计算时间 private int _runningSeconds; private int _checkResponseState; + private DateTime _startCollectDataTime; //Matlab算法 private static readonly Lazy LazyCorrelator = @@ -334,6 +335,30 @@ } } + private string _collectDataTime = "0"; + + public string CollectDataTime + { + get => _collectDataTime; + set + { + _collectDataTime = value; + RaisePropertyChanged(); + } + } + + private string _calculateDataTime = "0"; + + public string CalculateDataTime + { + get => _calculateDataTime; + set + { + _calculateDataTime = value; + RaisePropertyChanged(); + } + } + private string _connectColorBrush = "LightGray"; public string ConnectColorBrush @@ -574,7 +599,7 @@ private void Start_Calculate(object sender, EventArgs args) { - StartCalculateData(); + StartCalculateData(false); } private void Show_CheckResponse(object sender, EventArgs args) @@ -592,7 +617,7 @@ if (result.Result == ButtonResult.OK) { //水听器数据采集完毕,开始计算 - StartCalculateData(); + StartCalculateData(false); } }); _checkResponseState = 0; @@ -716,7 +741,7 @@ SoundSpeed = soundVelocity.ToString(); //导入数据完成,可以计算数据 - StartCalculateData(); + StartCalculateData(true); } else { @@ -868,6 +893,9 @@ ResetParam(false); //开始数据采集 + CollectDataTime = "0"; + CalculateDataTime = "0"; + _startCollectDataTime = DateTime.Now; if (RuntimeCache.IsHydrophone) { RuntimeCache.WorkMode = 2; @@ -915,7 +943,11 @@ }); } - private void StartCalculateData() + /// + /// 计算数据 + /// + /// + private void StartCalculateData(bool isImportData) { DialogHub.Get.ShowLoadingDialog(_mainWindow, "数据计算中,请稍后..."); //开始计算就不收集收据了且不能点击开始按钮 @@ -953,6 +985,17 @@ return; } + if (isImportData) + { + CollectDataTime = "0"; + } + else + { + var endTime = DateTime.Now; + var diffTime = Math.Abs((endTime - _startCollectDataTime).TotalMilliseconds) / 1000; + CollectDataTime = diffTime.ToString("F2"); + } + //设置噪声值 CorrelatorData = dataModel; _backgroundWorker.RunWorkerAsync(); @@ -1181,8 +1224,8 @@ ); e.Result = array; var endTime = DateTime.Now; - var diffTime = Convert.ToInt32(Math.Abs((endTime - startTime).TotalSeconds)); - Console.WriteLine($@"MATLAB计算时间是:{diffTime}秒"); + var diffTime = Math.Abs((endTime - startTime).TotalMilliseconds) / 1000; + CalculateDataTime = diffTime.ToString("F2"); } catch (Exception ex) { diff --git a/Correlator/ViewModels/MainWindowViewModel.cs b/Correlator/ViewModels/MainWindowViewModel.cs index 0255b8b..39b278f 100644 --- a/Correlator/ViewModels/MainWindowViewModel.cs +++ b/Correlator/ViewModels/MainWindowViewModel.cs @@ -88,6 +88,7 @@ //计算时间 private int _runningSeconds; private int _checkResponseState; + private DateTime _startCollectDataTime; //Matlab算法 private static readonly Lazy LazyCorrelator = @@ -334,6 +335,30 @@ } } + private string _collectDataTime = "0"; + + public string CollectDataTime + { + get => _collectDataTime; + set + { + _collectDataTime = value; + RaisePropertyChanged(); + } + } + + private string _calculateDataTime = "0"; + + public string CalculateDataTime + { + get => _calculateDataTime; + set + { + _calculateDataTime = value; + RaisePropertyChanged(); + } + } + private string _connectColorBrush = "LightGray"; public string ConnectColorBrush @@ -574,7 +599,7 @@ private void Start_Calculate(object sender, EventArgs args) { - StartCalculateData(); + StartCalculateData(false); } private void Show_CheckResponse(object sender, EventArgs args) @@ -592,7 +617,7 @@ if (result.Result == ButtonResult.OK) { //水听器数据采集完毕,开始计算 - StartCalculateData(); + StartCalculateData(false); } }); _checkResponseState = 0; @@ -716,7 +741,7 @@ SoundSpeed = soundVelocity.ToString(); //导入数据完成,可以计算数据 - StartCalculateData(); + StartCalculateData(true); } else { @@ -868,6 +893,9 @@ ResetParam(false); //开始数据采集 + CollectDataTime = "0"; + CalculateDataTime = "0"; + _startCollectDataTime = DateTime.Now; if (RuntimeCache.IsHydrophone) { RuntimeCache.WorkMode = 2; @@ -915,7 +943,11 @@ }); } - private void StartCalculateData() + /// + /// 计算数据 + /// + /// + private void StartCalculateData(bool isImportData) { DialogHub.Get.ShowLoadingDialog(_mainWindow, "数据计算中,请稍后..."); //开始计算就不收集收据了且不能点击开始按钮 @@ -953,6 +985,17 @@ return; } + if (isImportData) + { + CollectDataTime = "0"; + } + else + { + var endTime = DateTime.Now; + var diffTime = Math.Abs((endTime - _startCollectDataTime).TotalMilliseconds) / 1000; + CollectDataTime = diffTime.ToString("F2"); + } + //设置噪声值 CorrelatorData = dataModel; _backgroundWorker.RunWorkerAsync(); @@ -1181,8 +1224,8 @@ ); e.Result = array; var endTime = DateTime.Now; - var diffTime = Convert.ToInt32(Math.Abs((endTime - startTime).TotalSeconds)); - Console.WriteLine($@"MATLAB计算时间是:{diffTime}秒"); + var diffTime = Math.Abs((endTime - startTime).TotalMilliseconds) / 1000; + CalculateDataTime = diffTime.ToString("F2"); } catch (Exception ex) { diff --git a/Correlator/Views/MainWindow.xaml b/Correlator/Views/MainWindow.xaml index 225abd6..40ebec9 100644 --- a/Correlator/Views/MainWindow.xaml +++ b/Correlator/Views/MainWindow.xaml @@ -752,14 +752,48 @@ - + + + + + + + + + + + + + + + + + + + + + + LazyCorrelator = @@ -334,6 +335,30 @@ } } + private string _collectDataTime = "0"; + + public string CollectDataTime + { + get => _collectDataTime; + set + { + _collectDataTime = value; + RaisePropertyChanged(); + } + } + + private string _calculateDataTime = "0"; + + public string CalculateDataTime + { + get => _calculateDataTime; + set + { + _calculateDataTime = value; + RaisePropertyChanged(); + } + } + private string _connectColorBrush = "LightGray"; public string ConnectColorBrush @@ -574,7 +599,7 @@ private void Start_Calculate(object sender, EventArgs args) { - StartCalculateData(); + StartCalculateData(false); } private void Show_CheckResponse(object sender, EventArgs args) @@ -592,7 +617,7 @@ if (result.Result == ButtonResult.OK) { //水听器数据采集完毕,开始计算 - StartCalculateData(); + StartCalculateData(false); } }); _checkResponseState = 0; @@ -716,7 +741,7 @@ SoundSpeed = soundVelocity.ToString(); //导入数据完成,可以计算数据 - StartCalculateData(); + StartCalculateData(true); } else { @@ -868,6 +893,9 @@ ResetParam(false); //开始数据采集 + CollectDataTime = "0"; + CalculateDataTime = "0"; + _startCollectDataTime = DateTime.Now; if (RuntimeCache.IsHydrophone) { RuntimeCache.WorkMode = 2; @@ -915,7 +943,11 @@ }); } - private void StartCalculateData() + /// + /// 计算数据 + /// + /// + private void StartCalculateData(bool isImportData) { DialogHub.Get.ShowLoadingDialog(_mainWindow, "数据计算中,请稍后..."); //开始计算就不收集收据了且不能点击开始按钮 @@ -953,6 +985,17 @@ return; } + if (isImportData) + { + CollectDataTime = "0"; + } + else + { + var endTime = DateTime.Now; + var diffTime = Math.Abs((endTime - _startCollectDataTime).TotalMilliseconds) / 1000; + CollectDataTime = diffTime.ToString("F2"); + } + //设置噪声值 CorrelatorData = dataModel; _backgroundWorker.RunWorkerAsync(); @@ -1181,8 +1224,8 @@ ); e.Result = array; var endTime = DateTime.Now; - var diffTime = Convert.ToInt32(Math.Abs((endTime - startTime).TotalSeconds)); - Console.WriteLine($@"MATLAB计算时间是:{diffTime}秒"); + var diffTime = Math.Abs((endTime - startTime).TotalMilliseconds) / 1000; + CalculateDataTime = diffTime.ToString("F2"); } catch (Exception ex) { diff --git a/Correlator/Views/MainWindow.xaml b/Correlator/Views/MainWindow.xaml index 225abd6..40ebec9 100644 --- a/Correlator/Views/MainWindow.xaml +++ b/Correlator/Views/MainWindow.xaml @@ -752,14 +752,48 @@ - + + + + + + + + + + + + + + + + + + + + + + ().Subscribe(delegate(MWArray[] array) @@ -101,8 +103,8 @@ ScottplotView.Plot.AxisAuto(); ScottplotView.Refresh(); var endTime = DateTime.Now; - var diffTime = Convert.ToInt32(Math.Abs((endTime - startTime).TotalSeconds)); - Console.WriteLine($@"渲染结果共花费:{diffTime}秒"); + var diffTime = Math.Abs((endTime - startTime).TotalMilliseconds) / 1000; + RenderDataTextBlock.Text = $"渲染耗时:{diffTime:F2} 秒"; })); }); @@ -114,6 +116,8 @@ crosshair = ScottplotView.Plot.AddCrosshair(0, 0); ShowCrossLineCheckBox.IsChecked = true; ScottplotView.Refresh(); + + RenderDataTextBlock.Text = "渲染耗时:0 秒"; })); });