diff --git a/Correlator/DataService/SerialPortServiceImpl.cs b/Correlator/DataService/SerialPortServiceImpl.cs index fe1476b..33e98a5 100644 --- a/Correlator/DataService/SerialPortServiceImpl.cs +++ b/Correlator/DataService/SerialPortServiceImpl.cs @@ -222,12 +222,20 @@ //接收到数据之后时间重新赋值 _dataModel.LeftReceiveDataTime = DateTime.Now; _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.LeftNoiseSumValue = Math.Abs(noiseValue); } else { //接收到数据之后时间重新赋值 _dataModel.RightReceiveDataTime = DateTime.Now; _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } //发送消息计算数据 @@ -316,11 +324,21 @@ _dataModel.DevCode = devCode; if (devCode.Equals(RuntimeCache.Dev1)) { - _dataModel.LeftDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } else { - _dataModel.RightDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } RuntimeCache.CorrelatorData = _dataModel; diff --git a/Correlator/DataService/SerialPortServiceImpl.cs b/Correlator/DataService/SerialPortServiceImpl.cs index fe1476b..33e98a5 100644 --- a/Correlator/DataService/SerialPortServiceImpl.cs +++ b/Correlator/DataService/SerialPortServiceImpl.cs @@ -222,12 +222,20 @@ //接收到数据之后时间重新赋值 _dataModel.LeftReceiveDataTime = DateTime.Now; _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.LeftNoiseSumValue = Math.Abs(noiseValue); } else { //接收到数据之后时间重新赋值 _dataModel.RightReceiveDataTime = DateTime.Now; _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } //发送消息计算数据 @@ -316,11 +324,21 @@ _dataModel.DevCode = devCode; if (devCode.Equals(RuntimeCache.Dev1)) { - _dataModel.LeftDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } else { - _dataModel.RightDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } RuntimeCache.CorrelatorData = _dataModel; diff --git a/Correlator/Model/CorrelatorDataModel.cs b/Correlator/Model/CorrelatorDataModel.cs index 5b9d7c0..2db47e3 100644 --- a/Correlator/Model/CorrelatorDataModel.cs +++ b/Correlator/Model/CorrelatorDataModel.cs @@ -7,7 +7,18 @@ public string DevCode { get; set; } public double[] LeftDeviceDataArray { get; set; } public DateTime LeftReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double LeftNoiseSumValue { get; set; } + public double[] RightDeviceDataArray { get; set; } public DateTime RightReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double RightNoiseSumValue { get; set; } } } \ No newline at end of file diff --git a/Correlator/DataService/SerialPortServiceImpl.cs b/Correlator/DataService/SerialPortServiceImpl.cs index fe1476b..33e98a5 100644 --- a/Correlator/DataService/SerialPortServiceImpl.cs +++ b/Correlator/DataService/SerialPortServiceImpl.cs @@ -222,12 +222,20 @@ //接收到数据之后时间重新赋值 _dataModel.LeftReceiveDataTime = DateTime.Now; _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.LeftNoiseSumValue = Math.Abs(noiseValue); } else { //接收到数据之后时间重新赋值 _dataModel.RightReceiveDataTime = DateTime.Now; _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } //发送消息计算数据 @@ -316,11 +324,21 @@ _dataModel.DevCode = devCode; if (devCode.Equals(RuntimeCache.Dev1)) { - _dataModel.LeftDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } else { - _dataModel.RightDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } RuntimeCache.CorrelatorData = _dataModel; diff --git a/Correlator/Model/CorrelatorDataModel.cs b/Correlator/Model/CorrelatorDataModel.cs index 5b9d7c0..2db47e3 100644 --- a/Correlator/Model/CorrelatorDataModel.cs +++ b/Correlator/Model/CorrelatorDataModel.cs @@ -7,7 +7,18 @@ public string DevCode { get; set; } public double[] LeftDeviceDataArray { get; set; } public DateTime LeftReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double LeftNoiseSumValue { get; set; } + public double[] RightDeviceDataArray { get; set; } public DateTime RightReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double RightNoiseSumValue { get; set; } } } \ No newline at end of file diff --git a/Correlator/ViewModels/MainWindowViewModel.cs b/Correlator/ViewModels/MainWindowViewModel.cs index 4c9ef4b..7d4847f 100644 --- a/Correlator/ViewModels/MainWindowViewModel.cs +++ b/Correlator/ViewModels/MainWindowViewModel.cs @@ -326,7 +326,7 @@ public ObservableCollection PipeMaterialsArray { get => _pipeMaterialsArray; - private set + set { _pipeMaterialsArray = value; RaisePropertyChanged(); @@ -430,6 +430,18 @@ } } + private CorrelatorDataModel _correlatorData = new CorrelatorDataModel(); + + public CorrelatorDataModel CorrelatorData + { + get => _correlatorData; + set + { + _correlatorData = value; + RaisePropertyChanged(); + } + } + #endregion #region PC电量状态 @@ -645,6 +657,9 @@ FilterValue = maxFreLowOut + " ~ " + maxFreHighOut + "Hz"; + //设置噪声值 + CorrelatorData = dataModel; + _eventAggregator.GetEvent().Publish(array); var time = DateTime.Now.ToString("HHmmss"); @@ -724,17 +739,7 @@ _checkSerialPortTimer.Start(); //实时显示时间 - _timer.Tick += delegate - { - var dateTime = DateTime.Now; - var strDateTime = dateTime.ToString("yyyy年MM月dd日") + - dateTime.ToString("\0 \0 \0 dddd \0 \0 \0", new CultureInfo("zh-cn")) + - dateTime.ToString("HH:mm:ss"); - CurrentTime = strDateTime; - - //同时监听串口状态 - ConnectColorBrush = _serialPortService.Sp.IsOpen ? "LimeGreen" : "LightGray"; - }; + _timer.Tick += RealTime; _timer.Start(); //获取电池电量 @@ -965,8 +970,7 @@ { if (RuntimeCache.CorrelatorData != null) { - var filePath = - $"{DirectoryManager.GetAudioDir()}\\音频_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.wav"; + var filePath = $"{DirectoryManager.GetAudioDir()}\\音频_{DateTime.Now:yyyyMMdd_HHmmss}.wav"; filePath.SaveWavFile( RuntimeCache.CorrelatorData.LeftDeviceDataArray, RuntimeCache.CorrelatorData.RightDeviceDataArray @@ -999,7 +1003,7 @@ //截屏 SnapShotCommand = new DelegateCommand(delegate { - var filePath = $"{DirectoryManager.GetPictureDir()}\\快照_{DateTime.Now.ToString("yyyyMMddHHmmss")}.png"; + var filePath = $"{DirectoryManager.GetPictureDir()}\\快照_{DateTime.Now:yyyyMMddHHmmss}.png"; filePath.SnapShot(); }); @@ -1191,5 +1195,40 @@ SoundSpeed = soundVelocity.ToString(); return true; } + + /// + /// 实时显示时间,并监听串口状态 + /// + /// + /// + private void RealTime(object sender, EventArgs args) + { + var dateTime = DateTime.Now; + var strDateTime = dateTime.ToString("yyyy年MM月dd日") + + dateTime.ToString("\0 \0 \0 dddd \0 \0 \0", new CultureInfo("zh-cn")) + + dateTime.ToString("HH:mm:ss"); + Application.Current.Dispatcher.Invoke(delegate + { + CurrentTime = strDateTime; + + //同时监听串口状态 + if (_serialPortService.Sp.IsOpen) + { + ConnectColorBrush = "LimeGreen"; + } + else + { + ConnectColorBrush = "LightGray"; + + RedTransmitterBattery = 0; + RedTransmitterSignalIntensity = 0; + RedTransmitterState = false; + + BlueTransmitterBattery = 0; + BlueTransmitterSignalIntensity = 0; + BlueTransmitterState = false; + } + }); + } } } \ No newline at end of file diff --git a/Correlator/DataService/SerialPortServiceImpl.cs b/Correlator/DataService/SerialPortServiceImpl.cs index fe1476b..33e98a5 100644 --- a/Correlator/DataService/SerialPortServiceImpl.cs +++ b/Correlator/DataService/SerialPortServiceImpl.cs @@ -222,12 +222,20 @@ //接收到数据之后时间重新赋值 _dataModel.LeftReceiveDataTime = DateTime.Now; _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.LeftNoiseSumValue = Math.Abs(noiseValue); } else { //接收到数据之后时间重新赋值 _dataModel.RightReceiveDataTime = DateTime.Now; _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } //发送消息计算数据 @@ -316,11 +324,21 @@ _dataModel.DevCode = devCode; if (devCode.Equals(RuntimeCache.Dev1)) { - _dataModel.LeftDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.LeftDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } else { - _dataModel.RightDeviceDataArray = doubleArrays.ToOneDimensionalArray(); + var realData = doubleArrays.ToOneDimensionalArray(); + _dataModel.RightDeviceDataArray = realData; + + var noiseValue = 0.0; + Array.ForEach(realData, i => noiseValue += i); + _dataModel.RightNoiseSumValue = Math.Abs(noiseValue); } RuntimeCache.CorrelatorData = _dataModel; diff --git a/Correlator/Model/CorrelatorDataModel.cs b/Correlator/Model/CorrelatorDataModel.cs index 5b9d7c0..2db47e3 100644 --- a/Correlator/Model/CorrelatorDataModel.cs +++ b/Correlator/Model/CorrelatorDataModel.cs @@ -7,7 +7,18 @@ public string DevCode { get; set; } public double[] LeftDeviceDataArray { get; set; } public DateTime LeftReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double LeftNoiseSumValue { get; set; } + public double[] RightDeviceDataArray { get; set; } public DateTime RightReceiveDataTime { get; set; } + + /// + /// 噪音总和值绝对值 + /// + public double RightNoiseSumValue { get; set; } } } \ No newline at end of file diff --git a/Correlator/ViewModels/MainWindowViewModel.cs b/Correlator/ViewModels/MainWindowViewModel.cs index 4c9ef4b..7d4847f 100644 --- a/Correlator/ViewModels/MainWindowViewModel.cs +++ b/Correlator/ViewModels/MainWindowViewModel.cs @@ -326,7 +326,7 @@ public ObservableCollection PipeMaterialsArray { get => _pipeMaterialsArray; - private set + set { _pipeMaterialsArray = value; RaisePropertyChanged(); @@ -430,6 +430,18 @@ } } + private CorrelatorDataModel _correlatorData = new CorrelatorDataModel(); + + public CorrelatorDataModel CorrelatorData + { + get => _correlatorData; + set + { + _correlatorData = value; + RaisePropertyChanged(); + } + } + #endregion #region PC电量状态 @@ -645,6 +657,9 @@ FilterValue = maxFreLowOut + " ~ " + maxFreHighOut + "Hz"; + //设置噪声值 + CorrelatorData = dataModel; + _eventAggregator.GetEvent().Publish(array); var time = DateTime.Now.ToString("HHmmss"); @@ -724,17 +739,7 @@ _checkSerialPortTimer.Start(); //实时显示时间 - _timer.Tick += delegate - { - var dateTime = DateTime.Now; - var strDateTime = dateTime.ToString("yyyy年MM月dd日") + - dateTime.ToString("\0 \0 \0 dddd \0 \0 \0", new CultureInfo("zh-cn")) + - dateTime.ToString("HH:mm:ss"); - CurrentTime = strDateTime; - - //同时监听串口状态 - ConnectColorBrush = _serialPortService.Sp.IsOpen ? "LimeGreen" : "LightGray"; - }; + _timer.Tick += RealTime; _timer.Start(); //获取电池电量 @@ -965,8 +970,7 @@ { if (RuntimeCache.CorrelatorData != null) { - var filePath = - $"{DirectoryManager.GetAudioDir()}\\音频_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.wav"; + var filePath = $"{DirectoryManager.GetAudioDir()}\\音频_{DateTime.Now:yyyyMMdd_HHmmss}.wav"; filePath.SaveWavFile( RuntimeCache.CorrelatorData.LeftDeviceDataArray, RuntimeCache.CorrelatorData.RightDeviceDataArray @@ -999,7 +1003,7 @@ //截屏 SnapShotCommand = new DelegateCommand(delegate { - var filePath = $"{DirectoryManager.GetPictureDir()}\\快照_{DateTime.Now.ToString("yyyyMMddHHmmss")}.png"; + var filePath = $"{DirectoryManager.GetPictureDir()}\\快照_{DateTime.Now:yyyyMMddHHmmss}.png"; filePath.SnapShot(); }); @@ -1191,5 +1195,40 @@ SoundSpeed = soundVelocity.ToString(); return true; } + + /// + /// 实时显示时间,并监听串口状态 + /// + /// + /// + private void RealTime(object sender, EventArgs args) + { + var dateTime = DateTime.Now; + var strDateTime = dateTime.ToString("yyyy年MM月dd日") + + dateTime.ToString("\0 \0 \0 dddd \0 \0 \0", new CultureInfo("zh-cn")) + + dateTime.ToString("HH:mm:ss"); + Application.Current.Dispatcher.Invoke(delegate + { + CurrentTime = strDateTime; + + //同时监听串口状态 + if (_serialPortService.Sp.IsOpen) + { + ConnectColorBrush = "LimeGreen"; + } + else + { + ConnectColorBrush = "LightGray"; + + RedTransmitterBattery = 0; + RedTransmitterSignalIntensity = 0; + RedTransmitterState = false; + + BlueTransmitterBattery = 0; + BlueTransmitterSignalIntensity = 0; + BlueTransmitterState = false; + } + }); + } } } \ No newline at end of file diff --git a/Correlator/Views/MainWindow.xaml b/Correlator/Views/MainWindow.xaml index bb6a481..64f80bf 100644 --- a/Correlator/Views/MainWindow.xaml +++ b/Correlator/Views/MainWindow.xaml @@ -621,9 +621,9 @@ - + + + + + + + + + + + - + + + + + + + + + @@ -750,7 +799,7 @@