diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/SensorHubTag/TimeTag.cs b/Correlator/SensorHubTag/TimeTag.cs index b83a915..4a93e77 100644 --- a/Correlator/SensorHubTag/TimeTag.cs +++ b/Correlator/SensorHubTag/TimeTag.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; using Correlator.Util; @@ -28,7 +27,7 @@ var seconds = Convert.ToInt32(temp[5], 16).AppendLeftZero(); timeBuilder.Append(year).Append(month).Append(day).Append(hour).Append(minute).Append(seconds); Time = timeBuilder.ToString(); - Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); + // Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); } } } \ No newline at end of file diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/SensorHubTag/TimeTag.cs b/Correlator/SensorHubTag/TimeTag.cs index b83a915..4a93e77 100644 --- a/Correlator/SensorHubTag/TimeTag.cs +++ b/Correlator/SensorHubTag/TimeTag.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; using Correlator.Util; @@ -28,7 +27,7 @@ var seconds = Convert.ToInt32(temp[5], 16).AppendLeftZero(); timeBuilder.Append(year).Append(month).Append(day).Append(hour).Append(minute).Append(seconds); Time = timeBuilder.ToString(); - Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); + // Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); } } } \ No newline at end of file diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs index a9b0de0..beec8a9 100644 --- a/Correlator/Util/CommandSender.cs +++ b/Correlator/Util/CommandSender.cs @@ -271,8 +271,8 @@ /// /// /// - /// 异常数据角标集合 - public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs) + /// 异常数据角标集合 + public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexArray) { try { @@ -305,7 +305,7 @@ var btSeq = byte.Parse(seq, NumberStyles.HexNumber); //check result tag - var byteArray = indexs.ToByteArray(); + var byteArray = indexArray.ToByteArray(); byte[] oidTag = { 0x60, 0x00, 0x03, 0x00, diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/SensorHubTag/TimeTag.cs b/Correlator/SensorHubTag/TimeTag.cs index b83a915..4a93e77 100644 --- a/Correlator/SensorHubTag/TimeTag.cs +++ b/Correlator/SensorHubTag/TimeTag.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; using Correlator.Util; @@ -28,7 +27,7 @@ var seconds = Convert.ToInt32(temp[5], 16).AppendLeftZero(); timeBuilder.Append(year).Append(month).Append(day).Append(hour).Append(minute).Append(seconds); Time = timeBuilder.ToString(); - Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); + // Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); } } } \ No newline at end of file diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs index a9b0de0..beec8a9 100644 --- a/Correlator/Util/CommandSender.cs +++ b/Correlator/Util/CommandSender.cs @@ -271,8 +271,8 @@ /// /// /// - /// 异常数据角标集合 - public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs) + /// 异常数据角标集合 + public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexArray) { try { @@ -305,7 +305,7 @@ var btSeq = byte.Parse(seq, NumberStyles.HexNumber); //check result tag - var byteArray = indexs.ToByteArray(); + var byteArray = indexArray.ToByteArray(); byte[] oidTag = { 0x60, 0x00, 0x03, 0x00, diff --git a/Correlator/Util/FlowStatus.cs b/Correlator/Util/FlowStatus.cs index 4220840..cd5bc99 100644 --- a/Correlator/Util/FlowStatus.cs +++ b/Correlator/Util/FlowStatus.cs @@ -34,21 +34,21 @@ public static bool IsShowing = false; //数据包index - public static readonly List SeqCaches = new List(); + public static readonly List SeqCaches = new List(); //水听器下发唤醒指令时间戳 public static byte[] HydrophoneWakeUpTimeBytes = new byte[6]; //水听器红色信号接收器原始数据 - public static readonly List RedSensorOriginalResp = new List(); + public static readonly Dictionary RedSensorOriginalResp = new Dictionary(); //水听器红色信号接收器解析之后的Tags - public static readonly List> RedSensorResponseTags = new List>(); + public static readonly Dictionary> RedSensorResponseTags = new Dictionary>(); //水听器红色信号接收器原始数据 - public static readonly List BlueSensorOriginalResp = new List(); + public static readonly Dictionary BlueSensorOriginalResp = new Dictionary(); //水听器蓝色信号接收器解析之后的Tags - public static readonly List> BlueSensorResponseTags = new List>(); + public static readonly Dictionary> BlueSensorResponseTags = new Dictionary>(); } } \ No newline at end of file diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/SensorHubTag/TimeTag.cs b/Correlator/SensorHubTag/TimeTag.cs index b83a915..4a93e77 100644 --- a/Correlator/SensorHubTag/TimeTag.cs +++ b/Correlator/SensorHubTag/TimeTag.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; using Correlator.Util; @@ -28,7 +27,7 @@ var seconds = Convert.ToInt32(temp[5], 16).AppendLeftZero(); timeBuilder.Append(year).Append(month).Append(day).Append(hour).Append(minute).Append(seconds); Time = timeBuilder.ToString(); - Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); + // Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); } } } \ No newline at end of file diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs index a9b0de0..beec8a9 100644 --- a/Correlator/Util/CommandSender.cs +++ b/Correlator/Util/CommandSender.cs @@ -271,8 +271,8 @@ /// /// /// - /// 异常数据角标集合 - public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs) + /// 异常数据角标集合 + public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexArray) { try { @@ -305,7 +305,7 @@ var btSeq = byte.Parse(seq, NumberStyles.HexNumber); //check result tag - var byteArray = indexs.ToByteArray(); + var byteArray = indexArray.ToByteArray(); byte[] oidTag = { 0x60, 0x00, 0x03, 0x00, diff --git a/Correlator/Util/FlowStatus.cs b/Correlator/Util/FlowStatus.cs index 4220840..cd5bc99 100644 --- a/Correlator/Util/FlowStatus.cs +++ b/Correlator/Util/FlowStatus.cs @@ -34,21 +34,21 @@ public static bool IsShowing = false; //数据包index - public static readonly List SeqCaches = new List(); + public static readonly List SeqCaches = new List(); //水听器下发唤醒指令时间戳 public static byte[] HydrophoneWakeUpTimeBytes = new byte[6]; //水听器红色信号接收器原始数据 - public static readonly List RedSensorOriginalResp = new List(); + public static readonly Dictionary RedSensorOriginalResp = new Dictionary(); //水听器红色信号接收器解析之后的Tags - public static readonly List> RedSensorResponseTags = new List>(); + public static readonly Dictionary> RedSensorResponseTags = new Dictionary>(); //水听器红色信号接收器原始数据 - public static readonly List BlueSensorOriginalResp = new List(); + public static readonly Dictionary BlueSensorOriginalResp = new Dictionary(); //水听器蓝色信号接收器解析之后的Tags - public static readonly List> BlueSensorResponseTags = new List>(); + public static readonly Dictionary> BlueSensorResponseTags = new Dictionary>(); } } \ No newline at end of file diff --git a/Correlator/Util/MethodExtensions.cs b/Correlator/Util/MethodExtensions.cs index 44d58f5..6bb154b 100644 --- a/Correlator/Util/MethodExtensions.cs +++ b/Correlator/Util/MethodExtensions.cs @@ -282,8 +282,6 @@ bitIndex[i + 6], bitIndex[i + 7] }; - //二进制高低位反序 - bytes.Reverse(); var builder = new StringBuilder(); foreach (var b in bytes) { diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml index 758d2fd..28e5973 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml +++ b/Correlator/Dialog/CheckResponseDialog.xaml @@ -80,7 +80,7 @@ Height="20" Margin="0,0,5,0" Source="/Correlator;component/Image/tubiao_45.png" /> - + diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs index 2d44977..69dc968 100644 --- a/Correlator/Dialog/CheckResponseDialog.xaml.cs +++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs @@ -28,9 +28,17 @@ Interval = TimeSpan.FromSeconds(1) }; + private readonly DispatcherTimer _checkResponseTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1) + }; + private static readonly Lazy LazyDataBase = new Lazy(() => new DataBaseManager()); + private bool _isCheckRedSensor; + private bool _isCheckBlueSensor; + public CheckResponseDialog() { InitializeComponent(); @@ -45,7 +53,7 @@ //如果配置里面的日期相同,则取配置里面的Pipe作为index,如果配置里面的日期不相同,则默认index=1 var pipeIndex = configModel.Date.Equals(today) ? configModel.Pipe : 1; var locateDataDir = DirectoryManager.GetLocateDataDir(pipeIndex); - + InitDot(); InitEvent(locateDataDir); @@ -54,7 +62,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (RedResponsePanel.Children[i - 1] is Ellipse child) { @@ -68,7 +76,7 @@ { for (var i = 1; i <= 60; i++) { - if (FlowStatus.SeqCaches.Contains((byte)i)) + if (FlowStatus.SeqCaches.Contains(i)) { if (BlueResponsePanel.Children[i - 1] is Ellipse child) { @@ -77,6 +85,37 @@ } } }; + + _checkResponseTimer.Start(); + _checkResponseTimer.Tick += delegate + { + if (_isCheckRedSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (RedResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + else if (_isCheckBlueSensor) + { + for (var i = 1; i <= 60; i++) + { + if (FlowStatus.SeqCaches.Contains(i)) + { + if (BlueResponsePanel.Children[i - 1] is Ellipse child) + { + child.Fill = new SolidColorBrush(Colors.LimeGreen); + } + } + } + } + }; } private void InitDot() @@ -125,7 +164,6 @@ } }; - RedNextStepButton.Click += delegate { if (RedSensorStepBar.StepIndex == 1) @@ -158,20 +196,34 @@ //下发数据全部正常指令 CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; - fileName.SaveSensorResponse(FlowStatus.RedSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev1}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.RedSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.RedSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.RedSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev1, tags); + + #endregion } else if (RedSensorStepBar.StepIndex == 3) { @@ -212,20 +264,34 @@ { CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, new List()); - //保存原始数据 - var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; - fileName.SaveSensorResponse(FlowStatus.BlueSensorOriginalResp); + #region 保存原始数据 - //处理数据 + var fileName = $"{locateDataDir}\\原始数据.{DevCode.Dev2}.txt"; + //将Dictionary按照index排序 + var sortResult = from pair in FlowStatus.BlueSensorOriginalResp orderby pair.Key select pair; + + //Dictionary排序结果转List + var result = sortResult.Select(valuePair => valuePair.Value).ToList(); + + fileName.SaveSensorResponse(result); + + #endregion + + #region 处理数据 + + //将Dictionary按照index排序 + var tagsSortResult = from pair in FlowStatus.BlueSensorResponseTags orderby pair.Key select pair; var tags = new List(); - foreach (var list in FlowStatus.BlueSensorResponseTags) + foreach (var valuePair in tagsSortResult) { //每个List均包含[CellTag,TimeTag,UploadTag],所以需要挑选出每个List里面的UploadTag - var noiseTag = list.GetUploadNoiseTag(); + var noiseTag = valuePair.Value.GetUploadNoiseTag(); tags.Add(noiseTag); } SerialPortManager.Get.HandleHydrophoneData(DevCode.Dev2, tags); + + #endregion } else if (BlueSensorStepBar.StepIndex == 3) { @@ -241,7 +307,8 @@ { if (_redResponseTimer.IsEnabled) { - var redIndexs = new List(); + _isCheckRedSensor = true; + var redIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < RedResponsePanel.Children.Count; i++) { @@ -249,19 +316,20 @@ var index = i + 1; if (child == null) { - redIndexs.Add(index); + redIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - redIndexs.Add(index); + redIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, redIndexArray); } else { - var blueIndexs = new List(); + _isCheckBlueSensor = true; + var blueIndexArray = new List(); //查找ResponsePanel中颜色为浅灰色的index for (var i = 0; i < BlueResponsePanel.Children.Count; i++) { @@ -269,15 +337,15 @@ var index = i + 1; if (child == null) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } else if (child.Fill.ToString().Equals("#FFD3D3D3")) { - blueIndexs.Add(index); + blueIndexArray.Add(index); } } - CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexs); + CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, blueIndexArray); } }; } @@ -289,6 +357,7 @@ private void CheckResponseDialog_OnClosed(object sender, EventArgs e) { + _checkResponseTimer.Stop(); Messenger.Default.Send("", MessengerToken.HomePageDeviceData); FlowStatus.IsShowing = false; } diff --git a/Correlator/SensorHubTag/CellTag.cs b/Correlator/SensorHubTag/CellTag.cs index 1eb26d6..b6b46a3 100644 --- a/Correlator/SensorHubTag/CellTag.cs +++ b/Correlator/SensorHubTag/CellTag.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; namespace Correlator.SensorHubTag { @@ -11,7 +10,7 @@ { var hex = BitConverter.ToString(dataValue).Replace("-", ""); Cell = Convert.ToInt32(hex, 16).ToString(); - Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); + // Debug.WriteLine($"CellTag => [Oid:{oid}, Cell:{Cell}]"); } } } \ No newline at end of file diff --git a/Correlator/SensorHubTag/TimeTag.cs b/Correlator/SensorHubTag/TimeTag.cs index b83a915..4a93e77 100644 --- a/Correlator/SensorHubTag/TimeTag.cs +++ b/Correlator/SensorHubTag/TimeTag.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Text; using Correlator.Util; @@ -28,7 +27,7 @@ var seconds = Convert.ToInt32(temp[5], 16).AppendLeftZero(); timeBuilder.Append(year).Append(month).Append(day).Append(hour).Append(minute).Append(seconds); Time = timeBuilder.ToString(); - Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); + // Debug.WriteLine($"TimeTag => [Oid:{oid}, Time:{Time}]"); } } } \ No newline at end of file diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs index a9b0de0..beec8a9 100644 --- a/Correlator/Util/CommandSender.cs +++ b/Correlator/Util/CommandSender.cs @@ -271,8 +271,8 @@ /// /// /// - /// 异常数据角标集合 - public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs) + /// 异常数据角标集合 + public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexArray) { try { @@ -305,7 +305,7 @@ var btSeq = byte.Parse(seq, NumberStyles.HexNumber); //check result tag - var byteArray = indexs.ToByteArray(); + var byteArray = indexArray.ToByteArray(); byte[] oidTag = { 0x60, 0x00, 0x03, 0x00, diff --git a/Correlator/Util/FlowStatus.cs b/Correlator/Util/FlowStatus.cs index 4220840..cd5bc99 100644 --- a/Correlator/Util/FlowStatus.cs +++ b/Correlator/Util/FlowStatus.cs @@ -34,21 +34,21 @@ public static bool IsShowing = false; //数据包index - public static readonly List SeqCaches = new List(); + public static readonly List SeqCaches = new List(); //水听器下发唤醒指令时间戳 public static byte[] HydrophoneWakeUpTimeBytes = new byte[6]; //水听器红色信号接收器原始数据 - public static readonly List RedSensorOriginalResp = new List(); + public static readonly Dictionary RedSensorOriginalResp = new Dictionary(); //水听器红色信号接收器解析之后的Tags - public static readonly List> RedSensorResponseTags = new List>(); + public static readonly Dictionary> RedSensorResponseTags = new Dictionary>(); //水听器红色信号接收器原始数据 - public static readonly List BlueSensorOriginalResp = new List(); + public static readonly Dictionary BlueSensorOriginalResp = new Dictionary(); //水听器蓝色信号接收器解析之后的Tags - public static readonly List> BlueSensorResponseTags = new List>(); + public static readonly Dictionary> BlueSensorResponseTags = new Dictionary>(); } } \ No newline at end of file diff --git a/Correlator/Util/MethodExtensions.cs b/Correlator/Util/MethodExtensions.cs index 44d58f5..6bb154b 100644 --- a/Correlator/Util/MethodExtensions.cs +++ b/Correlator/Util/MethodExtensions.cs @@ -282,8 +282,6 @@ bitIndex[i + 6], bitIndex[i + 7] }; - //二进制高低位反序 - bytes.Reverse(); var builder = new StringBuilder(); foreach (var b in bytes) { diff --git a/Correlator/Util/SerialPortManager.cs b/Correlator/Util/SerialPortManager.cs index 9ad8733..a84f9e0 100644 --- a/Correlator/Util/SerialPortManager.cs +++ b/Correlator/Util/SerialPortManager.cs @@ -98,24 +98,26 @@ case 22543: if (receiveData[0] == 0xA3 && receiveData[1] == 0x20) { + int index = receiveData[15]; + Debug.WriteLine($"SerialPortManager => {index}"); //取出seq,确定收到的是第几包数据 - FlowStatus.SeqCaches.Add(receiveData[15]); + FlowStatus.SeqCaches.Add(index); var response = BitConverter.ToString(receiveData).Replace("-", ""); //收集数据 if (deviceId.Equals(DevCode.Dev1)) { //原始数据 - FlowStatus.RedSensorOriginalResp.Add(response); + FlowStatus.RedSensorOriginalResp.Add(index, response); //解析之后的数据 - FlowStatus.RedSensorResponseTags.Add(tags); + FlowStatus.RedSensorResponseTags.Add(index, tags); } else { //原始数据 - FlowStatus.BlueSensorOriginalResp.Add(response); + FlowStatus.BlueSensorOriginalResp.Add(index, response); //解析之后的数据 - FlowStatus.BlueSensorResponseTags.Add(tags); + FlowStatus.BlueSensorResponseTags.Add(index, tags); } }