diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Correlator.csproj b/Correlator/Correlator.csproj
index a82d912..95dd9f3 100644
--- a/Correlator/Correlator.csproj
+++ b/Correlator/Correlator.csproj
@@ -178,6 +178,7 @@
+
AddSoundSpeedDialog.xaml
diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Correlator.csproj b/Correlator/Correlator.csproj
index a82d912..95dd9f3 100644
--- a/Correlator/Correlator.csproj
+++ b/Correlator/Correlator.csproj
@@ -178,6 +178,7 @@
+
AddSoundSpeedDialog.xaml
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml
index 106b68c..c888f23 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml
+++ b/Correlator/Dialog/CheckResponseDialog.xaml
@@ -2,10 +2,12 @@
x:Class="Correlator.Dialog.CheckResponseDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:hc="https://handyorg.github.io/handycontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="780"
- Height="560"
+ Height="660"
AllowsTransparency="True"
Background="Transparent"
Closed="CheckResponseDialog_OnClosed"
@@ -16,6 +18,11 @@
WindowStartupLocation="CenterOwner"
WindowStyle="None"
mc:Ignorable="d">
+
+
+
+
+
-
-
+
@@ -73,8 +93,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步" />
-
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
@@ -117,8 +147,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步"
+ IsEnabled="{Binding ElementName=RedSensorStepBar, Path=StepIndex, Converter={StaticResource StepButtonStateConverter}}" />
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Correlator.csproj b/Correlator/Correlator.csproj
index a82d912..95dd9f3 100644
--- a/Correlator/Correlator.csproj
+++ b/Correlator/Correlator.csproj
@@ -178,6 +178,7 @@
+
AddSoundSpeedDialog.xaml
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml
index 106b68c..c888f23 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml
+++ b/Correlator/Dialog/CheckResponseDialog.xaml
@@ -2,10 +2,12 @@
x:Class="Correlator.Dialog.CheckResponseDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:hc="https://handyorg.github.io/handycontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="780"
- Height="560"
+ Height="660"
AllowsTransparency="True"
Background="Transparent"
Closed="CheckResponseDialog_OnClosed"
@@ -16,6 +18,11 @@
WindowStartupLocation="CenterOwner"
WindowStyle="None"
mc:Ignorable="d">
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ Source="/Correlator;component/Image/tubiao_45.png" />
+
-
-
-
-
-
-
+
@@ -73,8 +93,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步" />
-
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
@@ -117,8 +147,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步"
+ IsEnabled="{Binding ElementName=RedSensorStepBar, Path=StepIndex, Converter={StaticResource StepButtonStateConverter}}" />
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs
index 151e273..d940a20 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml.cs
+++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs
@@ -1,10 +1,12 @@
using System;
+using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Threading;
using Correlator.SensorHubTag;
using Correlator.Util;
+using MessageBox = HandyControl.Controls.MessageBox;
namespace Correlator.Dialog
{
@@ -23,75 +25,13 @@
Interval = TimeSpan.FromSeconds(1)
};
- private readonly DispatcherTimer _statusTimer = new DispatcherTimer
- {
- Interval = TimeSpan.FromSeconds(1)
- };
-
- private bool _isAllRight = true;
-
public CheckResponseDialog()
{
InitializeComponent();
- GoBackButton.Click += delegate
- {
- if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
- {
- var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
- MessageBoxImage.Error);
- if (boxResult == MessageBoxResult.OK)
- {
- Close();
- }
- }
- else
- {
- Close();
- }
- };
+ InitDot();
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- RedResponsePanel.Children.Add(ellipse);
- }
-
- RedCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
-
- _blueResponseTimer.Stop();
- _redResponseTimer.Start();
- };
-
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- BlueResponsePanel.Children.Add(ellipse);
- }
-
- BlueCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
-
- _redResponseTimer.Stop();
- _blueResponseTimer.Start();
- };
+ InitEvent();
_redResponseTimer.Tick += delegate
{
@@ -120,26 +60,177 @@
}
}
};
+ }
- _statusTimer.Tick += delegate
+ private void InitDot()
+ {
+ for (var i = 0; i < 60; i++)
{
- foreach (Ellipse child in RedResponsePanel.Children)
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ RedResponsePanel.Children.Add(ellipse);
+ }
- foreach (Ellipse child in BlueResponsePanel.Children)
+ for (var i = 0; i < 60; i++)
+ {
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ BlueResponsePanel.Children.Add(ellipse);
+ }
+ }
- if (_isAllRight)
+ private void InitEvent()
+ {
+ GoBackButton.Click += delegate
+ {
+ if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
{
- _redResponseTimer.Stop();
- _blueResponseTimer.Stop();
+ var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
+ MessageBoxImage.Error);
+ if (boxResult == MessageBoxResult.OK)
+ {
+ Close();
+ }
+ }
+ else
+ {
+ Close();
}
};
- _statusTimer.Start();
+
+
+ RedNextStepButton.Click += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ RedSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ RedSensorStepBar.Next();
+ }
+ };
+
+ RedSensorStepBar.StepChanged += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
+
+ _redResponseTimer.Start();
+ }
+ else if (RedSensorStepBar.StepIndex == 2)
+ {
+ //下发数据全部正常指令
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (RedSensorStepBar.StepIndex == 3)
+ {
+ _redResponseTimer.Stop();
+ RedNextStepButton.IsEnabled = false;
+
+ //TODO 分析数据
+ }
+ };
+
+ BlueNextStepButton.Click += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ BlueSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ BlueSensorStepBar.Next();
+ }
+ };
+
+ BlueSensorStepBar.StepChanged += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
+
+ _blueResponseTimer.Start();
+ }
+ else if (BlueSensorStepBar.StepIndex == 2)
+ {
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (BlueSensorStepBar.StepIndex == 3)
+ {
+ _blueResponseTimer.Stop();
+ //TODO 分析数据
+
+ //关闭窗口
+ Close();
+ }
+ };
+
+ ReCheckButton.Click += delegate
+ {
+ //说明红色信号无误,则检查蓝色信号,反之检查红色
+ if (RedSensorStepBar.StepIndex == 3)
+ {
+ var redIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < RedResponsePanel.Children.Count; i++)
+ {
+ var child = RedResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ redIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ redIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, redIndexs);
+ }
+ else
+ {
+ var blueIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < BlueResponsePanel.Children.Count; i++)
+ {
+ var child = BlueResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ blueIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ blueIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, blueIndexs);
+ }
+ };
}
private void CheckResponseDialog_OnLoaded(object sender, RoutedEventArgs e)
@@ -150,7 +241,6 @@
private void CheckResponseDialog_OnClosed(object sender, EventArgs e)
{
FlowStatus.IsShowing = false;
- _statusTimer.Stop();
}
}
}
\ No newline at end of file
diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Correlator.csproj b/Correlator/Correlator.csproj
index a82d912..95dd9f3 100644
--- a/Correlator/Correlator.csproj
+++ b/Correlator/Correlator.csproj
@@ -178,6 +178,7 @@
+
AddSoundSpeedDialog.xaml
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml
index 106b68c..c888f23 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml
+++ b/Correlator/Dialog/CheckResponseDialog.xaml
@@ -2,10 +2,12 @@
x:Class="Correlator.Dialog.CheckResponseDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:hc="https://handyorg.github.io/handycontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="780"
- Height="560"
+ Height="660"
AllowsTransparency="True"
Background="Transparent"
Closed="CheckResponseDialog_OnClosed"
@@ -16,6 +18,11 @@
WindowStartupLocation="CenterOwner"
WindowStyle="None"
mc:Ignorable="d">
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ Source="/Correlator;component/Image/tubiao_45.png" />
+
-
-
-
-
-
-
+
@@ -73,8 +93,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步" />
-
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
@@ -117,8 +147,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步"
+ IsEnabled="{Binding ElementName=RedSensorStepBar, Path=StepIndex, Converter={StaticResource StepButtonStateConverter}}" />
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs
index 151e273..d940a20 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml.cs
+++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs
@@ -1,10 +1,12 @@
using System;
+using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Threading;
using Correlator.SensorHubTag;
using Correlator.Util;
+using MessageBox = HandyControl.Controls.MessageBox;
namespace Correlator.Dialog
{
@@ -23,75 +25,13 @@
Interval = TimeSpan.FromSeconds(1)
};
- private readonly DispatcherTimer _statusTimer = new DispatcherTimer
- {
- Interval = TimeSpan.FromSeconds(1)
- };
-
- private bool _isAllRight = true;
-
public CheckResponseDialog()
{
InitializeComponent();
- GoBackButton.Click += delegate
- {
- if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
- {
- var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
- MessageBoxImage.Error);
- if (boxResult == MessageBoxResult.OK)
- {
- Close();
- }
- }
- else
- {
- Close();
- }
- };
+ InitDot();
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- RedResponsePanel.Children.Add(ellipse);
- }
-
- RedCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
-
- _blueResponseTimer.Stop();
- _redResponseTimer.Start();
- };
-
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- BlueResponsePanel.Children.Add(ellipse);
- }
-
- BlueCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
-
- _redResponseTimer.Stop();
- _blueResponseTimer.Start();
- };
+ InitEvent();
_redResponseTimer.Tick += delegate
{
@@ -120,26 +60,177 @@
}
}
};
+ }
- _statusTimer.Tick += delegate
+ private void InitDot()
+ {
+ for (var i = 0; i < 60; i++)
{
- foreach (Ellipse child in RedResponsePanel.Children)
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ RedResponsePanel.Children.Add(ellipse);
+ }
- foreach (Ellipse child in BlueResponsePanel.Children)
+ for (var i = 0; i < 60; i++)
+ {
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ BlueResponsePanel.Children.Add(ellipse);
+ }
+ }
- if (_isAllRight)
+ private void InitEvent()
+ {
+ GoBackButton.Click += delegate
+ {
+ if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
{
- _redResponseTimer.Stop();
- _blueResponseTimer.Stop();
+ var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
+ MessageBoxImage.Error);
+ if (boxResult == MessageBoxResult.OK)
+ {
+ Close();
+ }
+ }
+ else
+ {
+ Close();
}
};
- _statusTimer.Start();
+
+
+ RedNextStepButton.Click += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ RedSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ RedSensorStepBar.Next();
+ }
+ };
+
+ RedSensorStepBar.StepChanged += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
+
+ _redResponseTimer.Start();
+ }
+ else if (RedSensorStepBar.StepIndex == 2)
+ {
+ //下发数据全部正常指令
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (RedSensorStepBar.StepIndex == 3)
+ {
+ _redResponseTimer.Stop();
+ RedNextStepButton.IsEnabled = false;
+
+ //TODO 分析数据
+ }
+ };
+
+ BlueNextStepButton.Click += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ BlueSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ BlueSensorStepBar.Next();
+ }
+ };
+
+ BlueSensorStepBar.StepChanged += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
+
+ _blueResponseTimer.Start();
+ }
+ else if (BlueSensorStepBar.StepIndex == 2)
+ {
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (BlueSensorStepBar.StepIndex == 3)
+ {
+ _blueResponseTimer.Stop();
+ //TODO 分析数据
+
+ //关闭窗口
+ Close();
+ }
+ };
+
+ ReCheckButton.Click += delegate
+ {
+ //说明红色信号无误,则检查蓝色信号,反之检查红色
+ if (RedSensorStepBar.StepIndex == 3)
+ {
+ var redIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < RedResponsePanel.Children.Count; i++)
+ {
+ var child = RedResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ redIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ redIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, redIndexs);
+ }
+ else
+ {
+ var blueIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < BlueResponsePanel.Children.Count; i++)
+ {
+ var child = BlueResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ blueIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ blueIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, blueIndexs);
+ }
+ };
}
private void CheckResponseDialog_OnLoaded(object sender, RoutedEventArgs e)
@@ -150,7 +241,6 @@
private void CheckResponseDialog_OnClosed(object sender, EventArgs e)
{
FlowStatus.IsShowing = false;
- _statusTimer.Stop();
}
}
}
\ No newline at end of file
diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs
index 7570df9..d68fee7 100644
--- a/Correlator/Util/CommandSender.cs
+++ b/Correlator/Util/CommandSender.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Globalization;
using System.IO.Ports;
@@ -252,6 +253,17 @@
}
///
+ /// 发送校验结果指令给下位机
+ ///
+ ///
+ ///
+ /// 异常数据角标集合
+ public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs)
+ {
+
+ }
+
+ ///
/// 下发状态采集指令
///
///
diff --git a/Correlator/Converter/StepButtonStateConverter.cs b/Correlator/Converter/StepButtonStateConverter.cs
new file mode 100644
index 0000000..6ff4b5e
--- /dev/null
+++ b/Correlator/Converter/StepButtonStateConverter.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Correlator.Converter
+{
+ public class StepButtonStateConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ try
+ {
+ return (int)value == 3;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Correlator/Correlator.csproj b/Correlator/Correlator.csproj
index a82d912..95dd9f3 100644
--- a/Correlator/Correlator.csproj
+++ b/Correlator/Correlator.csproj
@@ -178,6 +178,7 @@
+
AddSoundSpeedDialog.xaml
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml b/Correlator/Dialog/CheckResponseDialog.xaml
index 106b68c..c888f23 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml
+++ b/Correlator/Dialog/CheckResponseDialog.xaml
@@ -2,10 +2,12 @@
x:Class="Correlator.Dialog.CheckResponseDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:hc="https://handyorg.github.io/handycontrol"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Width="780"
- Height="560"
+ Height="660"
AllowsTransparency="True"
Background="Transparent"
Closed="CheckResponseDialog_OnClosed"
@@ -16,6 +18,11 @@
WindowStartupLocation="CenterOwner"
WindowStyle="None"
mc:Ignorable="d">
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ Source="/Correlator;component/Image/tubiao_45.png" />
+
-
-
-
-
-
-
+
@@ -73,8 +93,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步" />
-
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
@@ -117,8 +147,8 @@
-
-
+
+
+ Margin="0,10"
+ VerticalAlignment="Top"
+ Content="下一步"
+ IsEnabled="{Binding ElementName=RedSensorStepBar, Path=StepIndex, Converter={StaticResource StepButtonStateConverter}}" />
-
-
-
+ VerticalAlignment="Center"
+ Orientation="Vertical">
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Correlator/Dialog/CheckResponseDialog.xaml.cs b/Correlator/Dialog/CheckResponseDialog.xaml.cs
index 151e273..d940a20 100644
--- a/Correlator/Dialog/CheckResponseDialog.xaml.cs
+++ b/Correlator/Dialog/CheckResponseDialog.xaml.cs
@@ -1,10 +1,12 @@
using System;
+using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Threading;
using Correlator.SensorHubTag;
using Correlator.Util;
+using MessageBox = HandyControl.Controls.MessageBox;
namespace Correlator.Dialog
{
@@ -23,75 +25,13 @@
Interval = TimeSpan.FromSeconds(1)
};
- private readonly DispatcherTimer _statusTimer = new DispatcherTimer
- {
- Interval = TimeSpan.FromSeconds(1)
- };
-
- private bool _isAllRight = true;
-
public CheckResponseDialog()
{
InitializeComponent();
- GoBackButton.Click += delegate
- {
- if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
- {
- var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
- MessageBoxImage.Error);
- if (boxResult == MessageBoxResult.OK)
- {
- Close();
- }
- }
- else
- {
- Close();
- }
- };
+ InitDot();
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- RedResponsePanel.Children.Add(ellipse);
- }
-
- RedCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
-
- _blueResponseTimer.Stop();
- _redResponseTimer.Start();
- };
-
- for (var i = 0; i < 60; i++)
- {
- var ellipse = new Ellipse
- {
- Width = 25,
- Height = 25,
- Margin = new Thickness(8),
- Fill = new SolidColorBrush(Colors.LightGray)
- };
- BlueResponsePanel.Children.Add(ellipse);
- }
-
- BlueCheckButton.Click += delegate
- {
- FlowStatus.SeqCaches.Clear();
- CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
-
- _redResponseTimer.Stop();
- _blueResponseTimer.Start();
- };
+ InitEvent();
_redResponseTimer.Tick += delegate
{
@@ -120,26 +60,177 @@
}
}
};
+ }
- _statusTimer.Tick += delegate
+ private void InitDot()
+ {
+ for (var i = 0; i < 60; i++)
{
- foreach (Ellipse child in RedResponsePanel.Children)
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ RedResponsePanel.Children.Add(ellipse);
+ }
- foreach (Ellipse child in BlueResponsePanel.Children)
+ for (var i = 0; i < 60; i++)
+ {
+ var ellipse = new Ellipse
{
- _isAllRight = child.Fill == new SolidColorBrush(Colors.LimeGreen);
- }
+ Width = 25,
+ Height = 25,
+ Margin = new Thickness(8),
+ Fill = new SolidColorBrush(Colors.LightGray)
+ };
+ BlueResponsePanel.Children.Add(ellipse);
+ }
+ }
- if (_isAllRight)
+ private void InitEvent()
+ {
+ GoBackButton.Click += delegate
+ {
+ if (_redResponseTimer.IsEnabled || _blueResponseTimer.IsEnabled)
{
- _redResponseTimer.Stop();
- _blueResponseTimer.Stop();
+ var boxResult = MessageBox.Show("数据未校验结束,确定要退出吗?", "温馨提示", MessageBoxButton.OKCancel,
+ MessageBoxImage.Error);
+ if (boxResult == MessageBoxResult.OK)
+ {
+ Close();
+ }
+ }
+ else
+ {
+ Close();
}
};
- _statusTimer.Start();
+
+
+ RedNextStepButton.Click += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ RedSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ RedSensorStepBar.Next();
+ }
+ };
+
+ RedSensorStepBar.StepChanged += delegate
+ {
+ if (RedSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev1);
+
+ _redResponseTimer.Start();
+ }
+ else if (RedSensorStepBar.StepIndex == 2)
+ {
+ //下发数据全部正常指令
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (RedSensorStepBar.StepIndex == 3)
+ {
+ _redResponseTimer.Stop();
+ RedNextStepButton.IsEnabled = false;
+
+ //TODO 分析数据
+ }
+ };
+
+ BlueNextStepButton.Click += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ var result = MessageBox.Show("请确认数据是否已接收完整", "温馨提示", MessageBoxButton.YesNo,
+ MessageBoxImage.Warning);
+ if (result == MessageBoxResult.Yes)
+ {
+ BlueSensorStepBar.Next();
+ }
+ }
+ else
+ {
+ BlueSensorStepBar.Next();
+ }
+ };
+
+ BlueSensorStepBar.StepChanged += delegate
+ {
+ if (BlueSensorStepBar.StepIndex == 1)
+ {
+ FlowStatus.SeqCaches.Clear();
+ CommandSender.StartCheckResponse(SerialPortManager.Get.Sp, DevCode.Dev2);
+
+ _blueResponseTimer.Start();
+ }
+ else if (BlueSensorStepBar.StepIndex == 2)
+ {
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, new List());
+ }
+ else if (BlueSensorStepBar.StepIndex == 3)
+ {
+ _blueResponseTimer.Stop();
+ //TODO 分析数据
+
+ //关闭窗口
+ Close();
+ }
+ };
+
+ ReCheckButton.Click += delegate
+ {
+ //说明红色信号无误,则检查蓝色信号,反之检查红色
+ if (RedSensorStepBar.StepIndex == 3)
+ {
+ var redIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < RedResponsePanel.Children.Count; i++)
+ {
+ var child = RedResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ redIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ redIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev2, redIndexs);
+ }
+ else
+ {
+ var blueIndexs = new List();
+ //查找ResponsePanel中颜色为浅灰色的index
+ for (var i = 0; i < BlueResponsePanel.Children.Count; i++)
+ {
+ var child = BlueResponsePanel.Children[i] as Ellipse;
+ if (child == null)
+ {
+ blueIndexs.Add(i);
+ }
+ else if (child.Fill.ToString().Equals("#FFD3D3D3"))
+ {
+ blueIndexs.Add(i);
+ }
+ }
+
+ CommandSender.SendDataCheckResultCmd(SerialPortManager.Get.Sp, DevCode.Dev1, blueIndexs);
+ }
+ };
}
private void CheckResponseDialog_OnLoaded(object sender, RoutedEventArgs e)
@@ -150,7 +241,6 @@
private void CheckResponseDialog_OnClosed(object sender, EventArgs e)
{
FlowStatus.IsShowing = false;
- _statusTimer.Stop();
}
}
}
\ No newline at end of file
diff --git a/Correlator/Util/CommandSender.cs b/Correlator/Util/CommandSender.cs
index 7570df9..d68fee7 100644
--- a/Correlator/Util/CommandSender.cs
+++ b/Correlator/Util/CommandSender.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Globalization;
using System.IO.Ports;
@@ -252,6 +253,17 @@
}
///
+ /// 发送校验结果指令给下位机
+ ///
+ ///
+ ///
+ /// 异常数据角标集合
+ public static void SendDataCheckResultCmd(SerialPort sp, string devCode, List indexs)
+ {
+
+ }
+
+ ///
/// 下发状态采集指令
///
///
diff --git a/Correlator/Util/SerialPortManager.cs b/Correlator/Util/SerialPortManager.cs
index 82903d5..acddd53 100644
--- a/Correlator/Util/SerialPortManager.cs
+++ b/Correlator/Util/SerialPortManager.cs
@@ -37,6 +37,8 @@
//左右传感器设备数据
private CorrelatorDataModel _dataModel = new CorrelatorDataModel();
+ private List> _tempTagList = new List>();
+
///
/// 数据监听委托解注册
///
@@ -101,7 +103,17 @@
//取出seq,确定收到的是第几包数据
FlowStatus.SeqCaches.Add(receiveData[15]);
- HandleHydrophoneData(strDeviceId, tags);
+ //TODO 收集数据
+ // _tempTagList.Add(tags);
+
+ // foreach (var list in _tempTagList)
+ // {
+ // foreach (var tag in list)
+ // {
+ // _tempTags.Add(tag);
+ // }
+ // }
+ // HandleCorrelatorData(strDeviceId, tags);
}
break;
@@ -254,6 +266,54 @@
}
}
+ ///
+ /// 水听器数据
+ ///
+ ///
+ ///
+ private void HandleHydrophoneData(string devCode, List tags)
+ {
+ var clobData = new double[3750 * 60]; //3750*60个采样点
+ //处理接到的噪声数据
+ var noiseTag = tags.GetUploadNoiseTag();
+ if (noiseTag != null)
+ {
+ var len = noiseTag.Len;
+ var dataValue = noiseTag.DataValue;
+
+ var num = len / 3; //上传的噪声数据个数,修改末3个字节
+ for (var i = 0; i < num; i++)
+ {
+ var dStr = new byte[3];
+ Array.Copy(dataValue, i * 3, dStr, 0, 3);
+
+ clobData[i] = dStr.HexToDouble();
+ }
+
+ _dataModel.DevCode = devCode;
+ if (devCode.Equals(DevCode.Dev1))
+ {
+ _dataModel.LeftDeviceDataArray = clobData;
+ }
+ else
+ {
+ _dataModel.RightDeviceDataArray = clobData;
+ }
+
+ //发送消息计算数据
+ if (_dataModel.LeftDeviceDataArray != null && _dataModel.RightDeviceDataArray != null)
+ {
+ Messenger.Default.Send(_dataModel, MessengerToken.HomePageDeviceData);
+ //重新定义dataModel,清空之前的缓存
+ _dataModel = new CorrelatorDataModel();
+ }
+ else
+ {
+ "SerialPortManager".WriteLog("数据未收集完整,无法计算");
+ }
+ }
+ }
+
private void HandleListenData(List tags)
{
//处理接到的噪声数据
@@ -315,23 +375,6 @@
}
///
- /// 水听器数据
- ///
- ///
- ///
- private void HandleHydrophoneData(string devCode, List tags)
- {
- if (DevCode.Dev1 == devCode)
- {
- }
- else
- {
- }
-
- Debug.WriteLine("SerialPortManager => " + devCode);
- }
-
- ///
/// 获取设备信号
///
///