Commit 7969fb3b authored by 540597360@qq.com's avatar 540597360@qq.com

Fix bugs

parent 9baaa760
...@@ -172,95 +172,7 @@ ...@@ -172,95 +172,7 @@
</StackPanel> </StackPanel>
</StackPanel > </StackPanel >
<TabControl Name="tc1" Style="{DynamicResource TabControlStyle_ABC}" > <TabControl Name="tc1" Style="{DynamicResource TabControlStyle_ABC}" >
<TabItem Header="数据选择" Style="{DynamicResource TabItemStyle1}" x:Name="tabitem_dataChoose"> <TabItem Header="数据选择" Style="{DynamicResource TabItemStyle1}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel>
<DockPanel.Resources>
<Style x:Key="tb_style1" TargetType="TextBlock">
<Setter Property="FontSize" Value="16"/>
</Style>
</DockPanel.Resources>
<StackPanel Orientation="Vertical" Margin="5">
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldHeader2}" Text="数据库覆盖时间:" />
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent2}" Text="{Binding DBFrom, StringFormat={}{0:s}}" />
<TextBlock Text="-" FontSize="15"/>
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent2}" Text="{Binding DBTo, StringFormat={}{0:s}}" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical" Margin="5">
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldHeader2}" Text="设定数据范围:" />
<CheckBox x:Name="default_cb" Content="缺省范围"
FontSize="16"
Margin="2"
IsChecked="{Binding IsDefault}"
Click="Default_cb_Click"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent2}" Text="{Binding DataFrom, StringFormat={}{0:MM/dd/yyyy HH:mm:ss}}" />
<TextBlock Text="-" FontSize="15"/>
<TextBlock Style="{StaticResource ResourceKey=TextBlockStyle_FieldContent2}" Text="{Binding DataTo, StringFormat={}{0:s}}" />
</StackPanel>
</StackPanel>
<Button Background="Aquamarine" Click="Button_Click_1" Height="47" Margin="5,0,5,5" Width="68">
<TextBlock Text="按厚度选择Pre" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Button>
<Button Background="Aquamarine" Click="Button_Click_2" Height="47" Margin="5,0,5,5" Width="68">
<TextBlock Text="按厚度选择Nxt" FontSize="13" TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Button>
<Button BorderBrush="Blue"
BorderThickness="2" Content="下一步" Margin="5"
Background="Aquamarine"
Click="Button_Click"/>
</DockPanel>
<Border Grid.Row="1">
<lvc:CartesianChart x:Name="myChart" Series="{Binding MySeries}"
DisableAnimations="True"
Hoverable="False"
DataTooltip="{x:Null}"
LegendLocation="Top"
FontSize="20"
Margin="2,2,2,2"
MouseDown="MyChart_MouseDown"
MouseUp="MyChart_MouseUp"
MouseMove="MyChart_MouseMove"
MouseLeftButtonDown="MyChart_MouseLeftButtonDown">
<lvc:CartesianChart.VisualElements>
<lvc:VisualElement x:Name="ve1" HorizontalAlignment="Right" VerticalAlignment="Bottom" X="{Binding RX}" Y="{Binding RY}">
<lvc:VisualElement.UIElement>
<Rectangle Opacity="0.4"
Visibility="Visible"
Fill="DodgerBlue"
Height="{Binding RH}"
Width="{Binding RW}"/>
</lvc:VisualElement.UIElement>
</lvc:VisualElement>
</lvc:CartesianChart.VisualElements>
<lvc:CartesianChart.AxisY>
<lvc:Axis Foreground="DodgerBlue" Title="厚度">
</lvc:Axis>
<lvc:Axis x:Name="yax2" Foreground="IndianRed" Position="RightTop" Title="2Sigma">
<lvc:Axis.Separator>
<lvc:Separator IsEnabled="False"></lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
<lvc:CartesianChart.AxisX>
<lvc:Axis LabelFormatter="{Binding Formatter}"/>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
</Border>
</Grid>
</TabItem>
<TabItem Header="数据选择new" Style="{DynamicResource TabItemStyle1}">
<local1:UC_SelectData/> <local1:UC_SelectData/>
</TabItem> </TabItem>
<TabItem Header="风环偏转" Style="{DynamicResource TabItemStyle1}" x:Name="tabitem_ringShift"> <TabItem Header="风环偏转" Style="{DynamicResource TabItemStyle1}" x:Name="tabitem_ringShift">
......
...@@ -172,27 +172,30 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -172,27 +172,30 @@ namespace FLY.HeatingHelper.UI.UIModule
public void Init(object dat) public void Init(object dat)
{ {
_data = dat as IThickHeatData; _data = dat as IThickHeatData;
var tmpVM = ViewModel_HeatDetector.Instance; //var tmpVM = ViewModel_HeatDetector.Instance;
vm1.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To); //vm1.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm2.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To); //vm2.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
UpdateData(1); vm1.InitData(_data);
UpdateData(2); vm2.InitData(_data);
UpdateVarChart();
} }
public void Loaded(object s) public void Loaded(object s)
{ {
var tmpVM = ViewModel_HeatDetector.Instance; //var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged += DataSelecter_PropertyChanged; //tmpVM.PropertyChanged += DataSelecter_PropertyChanged;
vm2.SelectedFrame = vm2.MaxFrame; vm1.OnLoaded(true);
vm2.OnLoaded();
vm1.UpdateChart(); vm1.UpdateChart();
vm2.UpdateChart(); vm2.UpdateChart();
UpdateData(1);
UpdateData(2);
UpdateVarChart();
} }
public void UnLoaded(object s) public void UnLoaded(object s)
{ {
var tmpVM = ViewModel_HeatDetector.Instance; //var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged -= DataSelecter_PropertyChanged; //tmpVM.PropertyChanged -= DataSelecter_PropertyChanged;
} }
private double[] vth1; private double[] vth1;
...@@ -205,20 +208,6 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -205,20 +208,6 @@ namespace FLY.HeatingHelper.UI.UIModule
private int resetBolt2; private int resetBolt2;
private double[] correls; private double[] correls;
private void DataSelecter_PropertyChanged(object s, PropertyChangedEventArgs e)
{
if(e.PropertyName== "Selected_Idx_From")
{
vm1.MinFrame = (s as ViewModel_HeatDetector).Selected_Idx_From;
vm2.MinFrame = vm1.MinFrame;
}
if (e.PropertyName == "Selected_Idx_To")
{
vm1.MaxFrame = (s as ViewModel_HeatDetector).Selected_Idx_To;
vm2.MaxFrame = vm1.MaxFrame;
}
}
private void PickerVM_PropertyChanged(object s, PropertyChangedEventArgs e) private void PickerVM_PropertyChanged(object s, PropertyChangedEventArgs e)
{ {
if (e.PropertyName == "SelectedFrame") if (e.PropertyName == "SelectedFrame")
...@@ -247,17 +236,17 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -247,17 +236,17 @@ namespace FLY.HeatingHelper.UI.UIModule
switch (whichframe) switch (whichframe)
{ {
case 1: case 1:
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle); vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat1 = _data.GetHeats(vm1.SelectedFrame, -1, -1); vheat1 = _data.GetHeatsByIndex(vm1.SelectedFrame, -1, -1);
resetBolt1 = _data.GetResetBolt(vm1.SelectedFrame); resetBolt1 = _data.GetResetBoltByIndex(vm1.SelectedFrame);
rotAngle1 = _data.GetRotAngle(vm1.SelectedFrame); rotAngle1 = _data.GetRotAngleByIndex(vm1.SelectedFrame);
break; break;
case 2: case 2:
vth2 = _data.GetThicks(vm2.SelectedFrame, vm2.ResetBolt, RotAngle); vth2 = _data.GetThicksByIndex(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle); vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat2 = _data.GetHeats(vm2.SelectedFrame, -1, -1); vheat2 = _data.GetHeatsByIndex(vm2.SelectedFrame, -1, -1);
resetBolt2 = _data.GetResetBolt(vm2.SelectedFrame); resetBolt2 = _data.GetResetBoltByIndex(vm2.SelectedFrame);
rotAngle2 = _data.GetRotAngle(vm2.SelectedFrame); rotAngle2 = _data.GetRotAngleByIndex(vm2.SelectedFrame);
break; break;
default: default:
return; return;
...@@ -276,8 +265,8 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -276,8 +265,8 @@ namespace FLY.HeatingHelper.UI.UIModule
/// <returns></returns> /// <returns></returns>
private bool UpdateThickData() private bool UpdateThickData()
{ {
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle); vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vth2 = _data.GetThicks(vm2.SelectedFrame, vm2.ResetBolt, RotAngle); vth2 = _data.GetThicksByIndex(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
if ((vth1 == null) || (vth2 == null) || (vheat1 == null) || (vheat2 == null)) if ((vth1 == null) || (vth2 == null) || (vheat1 == null) || (vheat2 == null))
{ {
return false; return false;
...@@ -363,7 +352,7 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -363,7 +352,7 @@ namespace FLY.HeatingHelper.UI.UIModule
if(s == int.MaxValue) if(s == int.MaxValue)
{ {
AirRingShift = 0; AirRingShift = 0;
//ResetBolt = _data.GetResetBolt(vm1.SelectedFrame); //ResetBolt = _data.GetResetBoltByID(vm1.SelectedFrame);
return; return;
} }
else else
...@@ -376,7 +365,7 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -376,7 +365,7 @@ namespace FLY.HeatingHelper.UI.UIModule
{ {
if (double.IsNaN(angle)) if (double.IsNaN(angle))
{ {
RotAngle = _data.GetRotAngle(vm1.SelectedFrame); RotAngle = _data.GetRotAngleByIndex(vm1.SelectedFrame);
return; return;
} }
else else
...@@ -392,8 +381,7 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -392,8 +381,7 @@ namespace FLY.HeatingHelper.UI.UIModule
public void SearchAngle() public void SearchAngle()
{ {
var tmp = _data.SearchMaxSimilarity(_data.GetIndexFromID(vm1.SelectedFrame), var tmp = _data.SearchMaxSimilarity(vm1.SelectedFrame, vm2.SelectedFrame, 15, true);
_data.GetIndexFromID(vm2.SelectedFrame), 15, true);
RotAngle = tmp.Item3 + vm1.RotAngle; RotAngle = tmp.Item3 + vm1.RotAngle;
TandH_Corel = tmp.Item2; TandH_Corel = tmp.Item2;
AirRingShift = tmp.Item1; AirRingShift = tmp.Item1;
...@@ -428,8 +416,9 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -428,8 +416,9 @@ namespace FLY.HeatingHelper.UI.UIModule
}, },
(o, e) => (o, e) =>
{ {
int rb = _data.GetResetBolt(result.frameIdx2); if (result.frameIdx1 < 0 || result.frameIdx2 < 0) return;
double ra = _data.GetRotAngle(result.frameIdx2); int rb = _data.GetResetBoltByIndex(result.frameIdx2);
double ra = _data.GetRotAngleByIndex(result.frameIdx2);
SearchProgressValue = 0; SearchProgressValue = 0;
SearchEnabled = true; SearchEnabled = true;
vm2.SelectedFrame = result.frameIdx1; vm2.SelectedFrame = result.frameIdx1;
......
...@@ -44,10 +44,10 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -44,10 +44,10 @@ namespace FLY.HeatingHelper.UI.UIModule
{ {
return; return;
} }
thick1 = Vector<double>.Build.DenseOfArray(mdata.GetThicks(FrameIdx1, -1, -1)); thick1 = Vector<double>.Build.DenseOfArray(mdata.GetThicksByIndex(FrameIdx1, -1, -1));
thick2 = Vector<double>.Build.DenseOfArray(mdata.GetThicks(FrameIdx2, -1, -1)); thick2 = Vector<double>.Build.DenseOfArray(mdata.GetThicksByIndex(FrameIdx2, -1, -1));
heat1 = Vector<double>.Build.DenseOfArray(mdata.GetHeats(FrameIdx1, -1, -1)); heat1 = Vector<double>.Build.DenseOfArray(mdata.GetHeatsByIndex(FrameIdx1, -1, -1));
heat2 = Vector<double>.Build.DenseOfArray(mdata.GetHeats(FrameIdx2, -1, -1)); heat2 = Vector<double>.Build.DenseOfArray(mdata.GetHeatsByIndex(FrameIdx2, -1, -1));
thickDiff = thick2 - thick1; thickDiff = thick2 - thick1;
heatDiff = heat1 - heat2; heatDiff = heat1 - heat2;
UpdateSeries(); UpdateSeries();
......
...@@ -57,8 +57,10 @@ ...@@ -57,8 +57,10 @@
</c1c:C1Chart> </c1c:C1Chart>
</Border> </Border>
<StackPanel Orientation="Horizontal" Grid.Row="1"> <StackPanel Orientation="Horizontal" Grid.Row="1">
<TextBlock Text="{Binding ResetBolt, StringFormat=复位分区:{0}}"/> <TextBlock Text="{Binding FrameID,StringFormat=ID:{0}, Mode=OneWay}" Margin="0,0,5,0"/>
<TextBlock Text="{Binding RotAngle, StringFormat=旋转角度:{0:f1}}"/> <TextBlock Text="{Binding FrameTime,StringFormat={}{0:MM/dd HH:mm:ss}, Mode=OneWay}" Margin="0,0,5,0"/>
<TextBlock Text="{Binding ResetBolt, StringFormat=复位分区:{0}}" Margin="0,0,5,0"/>
<TextBlock Text="{Binding RotAngle, StringFormat=旋转角度:{0:f1}}" Margin="0,0,5,0"/>
<TextBlock> <TextBlock>
<TextBlock.Text> <TextBlock.Text>
<MultiBinding StringFormat="{}{0}/({1})-({2})"> <MultiBinding StringFormat="{}{0}/({1})-({2})">
......
...@@ -169,6 +169,7 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -169,6 +169,7 @@ namespace FLY.HeatingHelper.UI.UIModule
} }
} }
} }
private double _rotAngle = double.NaN; private double _rotAngle = double.NaN;
public double RotAngle public double RotAngle
{ {
...@@ -185,6 +186,20 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -185,6 +186,20 @@ namespace FLY.HeatingHelper.UI.UIModule
} }
} }
public int FrameID
{
get => _data == null ? -2 : _data.Index2ID(SelectedFrame);
}
public DateTime FrameTime
{
get
{
if (_data == null) return DateTime.MinValue;
if (SelectedFrame < MinFrame && SelectedFrame > MaxFrame) return DateTime.MinValue;
return _data.Dat_Times[SelectedFrame];
}
}
public RelayCommand PreCmd { get; internal set; } public RelayCommand PreCmd { get; internal set; }
public RelayCommand NxtCmd { get; internal set; } public RelayCommand NxtCmd { get; internal set; }
...@@ -211,10 +226,29 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -211,10 +226,29 @@ namespace FLY.HeatingHelper.UI.UIModule
} }
if (update > 0) if (update > 0)
{ {
UpdateData(); //UpdateData();
} }
} }
public void InitData(IThickHeatData _dat)
{
_data = _dat as IThickHeatData; /*ThickHeatData4SQLite_V1*/
MinFrame = _data.AnalystIndexFrom;
MaxFrame = _data.AnalystIndexTo;
//UpdateData();
}
/// <summary>
/// 界面加载时调用
/// </summary>
public void OnLoaded(bool selectMin=false)
{
MinFrame = _data.AnalystIndexFrom;
MaxFrame = _data.AnalystIndexTo;
SelectedFrame = selectMin ? MinFrame : MaxFrame;
UpdateData();
}
//private ChartValues<double> v1 = new ChartValues<double>(); //private ChartValues<double> v1 = new ChartValues<double>();
//private ChartValues<double> v2 = new ChartValues<double>(); //private ChartValues<double> v2 = new ChartValues<double>();
...@@ -224,8 +258,11 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -224,8 +258,11 @@ namespace FLY.HeatingHelper.UI.UIModule
public void UpdateChart() public void UpdateChart()
{ {
DS_thick = new DoubleCollection(_data.GetThicks(SelectedFrame, ResetBolt, RotAngle)); double[] tmp = _data.GetThicksByIndex(SelectedFrame, ResetBolt, RotAngle);
DS_heat = new DoubleCollection(_data.GetHeats(SelectedFrame, -1, -1)); double[] tmph = _data.GetHeatsByIndex(SelectedFrame, -1, -1);
if (tmp == null || tmph == null) return;
DS_thick = new DoubleCollection(tmp);
DS_heat = new DoubleCollection(tmph);
//if (MySeries.Count == 0) //if (MySeries.Count == 0)
//{ //{
// var L1 = new LineSeries // var L1 = new LineSeries
...@@ -249,14 +286,15 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -249,14 +286,15 @@ namespace FLY.HeatingHelper.UI.UIModule
// MySeries.Add(L1); // MySeries.Add(L1);
// MySeries.Add(L2); // MySeries.Add(L2);
//} //}
//v1.Clear(); v1.AddRange(_data.GetThicks(SelectedFrame, ResetBolt, RotAngle)); //v1.Clear(); v1.AddRange(_data.GetThicksByID(SelectedFrame, ResetBolt, RotAngle));
//v2.Clear(); v2.AddRange(_data.GetHeats(SelectedFrame, -1, -1)); //v2.Clear(); v2.AddRange(_data.GetHeatsByID(SelectedFrame, -1, -1));
} }
private void UpdateData() private void UpdateData()
{ {
ResetBolt = _data.GetResetBolt(SelectedFrame); if (SelectedFrame < 0) return;
RotAngle = _data.GetRotAngle(SelectedFrame); ResetBolt = _data.GetResetBoltByIndex(SelectedFrame);
RotAngle = _data.GetRotAngleByIndex(SelectedFrame);
UpdateChart(); UpdateChart();
} }
...@@ -266,18 +304,14 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -266,18 +304,14 @@ namespace FLY.HeatingHelper.UI.UIModule
{ {
if (SelectedFrame > MinFrame) if (SelectedFrame > MinFrame)
{ {
var tmp = _data.GetRelativeID(SelectedFrame, -1); SelectedFrame--;
if (tmp >= 0)
SelectedFrame = tmp;
} }
}); });
NxtCmd = new RelayCommand(() => NxtCmd = new RelayCommand(() =>
{ {
if (SelectedFrame < MaxFrame) if (SelectedFrame < MaxFrame)
{ {
var tmp = _data.GetRelativeID(SelectedFrame, 1); SelectedFrame++;
if (tmp >= 0)
SelectedFrame = tmp;
} }
}); });
} }
......
...@@ -82,10 +82,8 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -82,10 +82,8 @@ namespace FLY.HeatingHelper.UI.UIModule
public void Loaded(object s) public void Loaded(object s)
{ {
var tmpVM = ViewModel_HeatDetector.Instance; vm1.InitData(mdata);
tmpVM.PropertyChanged += DataSelecter_PropertyChanged; vm2.InitData(mdata);
vm1.InitData(mdata, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm2.InitData(mdata, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vmDiff.Init(mdata); vmDiff.Init(mdata);
vm1.UpdateChart(); vm1.UpdateChart();
vm2.UpdateChart(); vm2.UpdateChart();
...@@ -93,22 +91,7 @@ namespace FLY.HeatingHelper.UI.UIModule ...@@ -93,22 +91,7 @@ namespace FLY.HeatingHelper.UI.UIModule
public void UnLoaded(object s) public void UnLoaded(object s)
{ {
var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged -= DataSelecter_PropertyChanged;
}
private void DataSelecter_PropertyChanged(object s, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Selected_Idx_From")
{
vm1.MinFrame = (s as ViewModel_HeatDetector).Selected_Idx_From;
vm2.MinFrame = vm1.MinFrame;
}
if (e.PropertyName == "Selected_Idx_To")
{
vm1.MaxFrame = (s as ViewModel_HeatDetector).Selected_Idx_To;
vm2.MaxFrame = vm1.MaxFrame;
}
} }
public void Wrap_SearchFeaturedBoltsItems() public void Wrap_SearchFeaturedBoltsItems()
......
...@@ -7,6 +7,7 @@ using System.Windows.Media; ...@@ -7,6 +7,7 @@ using System.Windows.Media;
using System.Windows.Controls; using System.Windows.Controls;
using C1.WPF.C1Chart; using C1.WPF.C1Chart;
using System.Windows; using System.Windows;
using System.ComponentModel;
namespace Chart_AlarmZones_WPF_CS namespace Chart_AlarmZones_WPF_CS
{ {
...@@ -19,15 +20,32 @@ namespace Chart_AlarmZones_WPF_CS ...@@ -19,15 +20,32 @@ namespace Chart_AlarmZones_WPF_CS
this.ChartType = C1.WPF.C1Chart.ChartType.PolygonFilled; this.ChartType = C1.WPF.C1Chart.ChartType.PolygonFilled;
this.XValues = new DoubleCollection(); this.XValues = new DoubleCollection();
this.Values = new DoubleCollection(); this.Values = new DoubleCollection();
this.Opacity = 0.5;
UpdateLegend(); UpdateLegend();
Update(); Update();
} }
#endregion #endregion
public static readonly DependencyProperty NearProperty = DependencyProperty.Register("Near", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null)); public static readonly DependencyProperty NearProperty = DependencyProperty.Register("Near", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null,
public static readonly DependencyProperty FarProperty = DependencyProperty.Register("Far", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null)); new PropertyChangedCallback((d, e) =>
public static readonly DependencyProperty LowExtentProperty = DependencyProperty.Register("LowExtent", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null)); {
public static readonly DependencyProperty UpperExtentProperty = DependencyProperty.Register("UpperExtent", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null)); (d as AlarmZone).Update();
})));
public static readonly DependencyProperty FarProperty = DependencyProperty.Register("Far", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null,
new PropertyChangedCallback((d, e) =>
{
(d as AlarmZone).Update();
})));
public static readonly DependencyProperty LowExtentProperty = DependencyProperty.Register("LowExtent", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null,
new PropertyChangedCallback((d, e) =>
{
(d as AlarmZone).Update();
})));
public static readonly DependencyProperty UpperExtentProperty = DependencyProperty.Register("UpperExtent", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null,
new PropertyChangedCallback((d, e) =>
{
(d as AlarmZone).Update();
})));
#region "members" #region "members"
private C1Chart _chart; private C1Chart _chart;
...@@ -36,42 +54,40 @@ namespace Chart_AlarmZones_WPF_CS ...@@ -36,42 +54,40 @@ namespace Chart_AlarmZones_WPF_CS
get { return _chart; } get { return _chart; }
set { _chart = value; } set { _chart = value; }
} }
[Bindable(true)]
public double? Near public double? Near
{ {
get { return (double?)this.GetValue(NearProperty); } get { return (double?)this.GetValue(NearProperty); }
set set
{ {
this.SetValue(NearProperty, value); this.SetValue(NearProperty, value);
Update();
} }
} }
[Bindable(true)]
public double? Far public double? Far
{ {
get { return (double?)this.GetValue(FarProperty); } get { return (double?)this.GetValue(FarProperty); }
set set
{ {
this.SetValue(FarProperty, value); this.SetValue(FarProperty, value);
Update();
} }
} }
[Bindable(true)]
public double? LowExtent public double? LowExtent
{ {
get { return (double?)this.GetValue(LowExtentProperty); } get { return (double?)this.GetValue(LowExtentProperty); }
set set
{ {
this.SetValue(LowExtentProperty, value); this.SetValue(LowExtentProperty, value);
Update();
} }
} }
[Bindable(true)]
public double? UpperExtent public double? UpperExtent
{ {
get { return (double?)this.GetValue(UpperExtentProperty); } get { return (double?)this.GetValue(UpperExtentProperty); }
set set
{ {
this.SetValue(UpperExtentProperty, value); this.SetValue(UpperExtentProperty, value);
Update();
} }
} }
...@@ -139,16 +155,16 @@ namespace Chart_AlarmZones_WPF_CS ...@@ -139,16 +155,16 @@ namespace Chart_AlarmZones_WPF_CS
Far = Chart.View.AxisX.ActualMax; Far = Chart.View.AxisX.ActualMax;
Update(); Update();
} }
if (LowExtent == null) //if (LowExtent == null)
{ //{
LowExtent = Chart.View.AxisY.ActualMin; // LowExtent = Chart.View.AxisY.ActualMin;
Update(); // Update();
} //}
if (UpperExtent == null) //if (UpperExtent == null)
{ //{
UpperExtent = Chart.View.AxisY.ActualMax; // UpperExtent = Chart.View.AxisY.ActualMax;
Update(); // Update();
} //}
} }
} }
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="WhiteSmoke" x:Name="uc1"> d:DesignHeight="450" d:DesignWidth="800" Background="WhiteSmoke" x:Name="uc1" Loaded="uc1_Loaded">
<!--<UserControl.Resources> <!--<UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</StackPanel> </StackPanel>
<StackPanel Orientation="Vertical" Grid.Column="1" Margin="0,0,5,0"> <StackPanel Orientation="Vertical" Grid.Column="1" Margin="0,0,5,0">
<Label Content="选定数据范围:" Margin="0,0,0,3"/> <Label Content="加载数据范围:" Margin="0,0,0,3"/>
<Controls:DateTimePicker Controls:TextBoxHelper.UseFloatingWatermark="False" <Controls:DateTimePicker Controls:TextBoxHelper.UseFloatingWatermark="False"
SelectedDateTime="{Binding Path=Dat.LoadDataFrom}" SelectedDateTime="{Binding Path=Dat.LoadDataFrom}"
Margin="0,0,0,1"> Margin="0,0,0,1">
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<ColumnDefinition Width="auto"/> <ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" Grid.Column="0" Margin="0,0,5,0"> <StackPanel Orientation="Vertical" Grid.Column="0" Margin="0,0,5,0">
<Label Content="选择数据范围:"/> <Label Content="分析数据范围:"/>
<Controls:RangeSlider Minimum="0" <Controls:RangeSlider Minimum="0"
Maximum="{Binding RecordCount, Mode=OneWay}" Maximum="{Binding RecordCount, Mode=OneWay}"
LowerValue="{Binding Dat.AnalystIndexFrom}" LowerValue="{Binding Dat.AnalystIndexFrom}"
...@@ -116,21 +116,29 @@ ...@@ -116,21 +116,29 @@
<Button Content="缺省项" Style="{DynamicResource MahApps.Styles.Button.AccentedSquare}" <Button Content="缺省项" Style="{DynamicResource MahApps.Styles.Button.AccentedSquare}"
Grid.Column="3" MinWidth="80" Grid.Column="3" MinWidth="80"
Command="{Binding DefaultAnalystData}"/> Command="{Binding DefaultAnalystData}"/>
<Button Content="test" Click="Button_Click" Grid.Column="4"/> <Button Content="test" Click="Button_Click" Grid.Column="4"
Command="{Binding Test}"/>
</Grid> </Grid>
<Border Grid.Row="2" Margin="2,5,2,2"> <Border Grid.Row="2" Margin="2,5,2,2">
<c1c:C1Chart ChartType="Line" Margin="5,0,0,0"> <c1c:C1Chart ChartType="Line" Margin="5,0,0,0">
<c1c:C1Chart.Data> <c1c:C1Chart.Data>
<c1c:ChartData> <c1c:ChartData>
<az:AlarmZone Near="{Binding Dat.AnalystIndexFrom}" Far="{Binding Dat.AnalystIndexTo}"/> <az:AlarmZone Near="{Binding Dat.AnalystIndexFrom}"
Far="{Binding Dat.AnalystIndexTo}"
LowExtent="-1"
UpperExtent="11"
ConnectionFill="AliceBlue"/>
<c1c:DataSeries ValuesSource="{Binding DS_thick}" AxisY="ay0" Label="厚度"/> <c1c:DataSeries ValuesSource="{Binding DS_thick}" AxisY="ay0" Label="厚度"/>
</c1c:ChartData> </c1c:ChartData>
</c1c:C1Chart.Data> </c1c:C1Chart.Data>
<c1c:C1Chart.View> <c1c:C1Chart.View>
<c1c:ChartView> <c1c:ChartView>
<c1c:ChartView.AxisY> <c1c:ChartView.AxisY>
<c1c:Axis Visible="False"/> <c1c:Axis Visible="False" Min="0" Max="10"/>
</c1c:ChartView.AxisY> </c1c:ChartView.AxisY>
<c1c:ChartView.AxisX>
<c1c:Axis Max="{Binding RecordCount, Mode=OneWay}"/>
</c1c:ChartView.AxisX>
<c1c:Axis Name="ay0" AxisType="Y" Title="厚度" Position="Near"/> <c1c:Axis Name="ay0" AxisType="Y" Title="厚度" Position="Near"/>
</c1c:ChartView> </c1c:ChartView>
</c1c:C1Chart.View> </c1c:C1Chart.View>
......
...@@ -30,5 +30,10 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData ...@@ -30,5 +30,10 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
{ {
} }
private void uc1_Loaded(object sender, RoutedEventArgs e)
{
(DataContext as ViewModel_UC_SelectData).OnLoaded();
}
} }
} }
...@@ -18,6 +18,8 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData ...@@ -18,6 +18,8 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
PreData = new RelayCommand(Command_PreData); PreData = new RelayCommand(Command_PreData);
NextData = new RelayCommand(Command_NextData); NextData = new RelayCommand(Command_NextData);
DefaultAnalystData = new RelayCommand(Command_DefaultAnalystData); DefaultAnalystData = new RelayCommand(Command_DefaultAnalystData);
Test = new RelayCommand(Command_Test);
Command_DefaultLoadDataRange();
} }
#region UI界面 #region UI界面
...@@ -29,14 +31,26 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData ...@@ -29,14 +31,26 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
{ {
get get
{ {
if (Dat is null) return 0; if (Dat is null) return -1;
return Dat.Dat_Times.Count(); return Dat.Dat_Times.Count();
} }
set
{
}
} }
public double[] DS_thick { get; set; } public double[] DS_thick { get; set; }
#endregion #endregion
#region 内部功能函数
private void UpdateChart()
{
if (RecordCount <= 0) return;
DS_thick = Dat.Dat_Means.ToArray();
}
#endregion
#region UI界面按钮功能(Command) #region UI界面按钮功能(Command)
public RelayCommand DefaultLoadDataRange { get; internal set; } = null; public RelayCommand DefaultLoadDataRange { get; internal set; } = null;
...@@ -53,20 +67,24 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData ...@@ -53,20 +67,24 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
Dat.LoadDataFromDB(1); Dat.LoadDataFromDB(1);
Dat.ResetCluster(); Dat.ResetCluster();
Dat.ClusterOnThickMean(); Dat.ClusterOnThickMean();
RecordCount = 1;
UpdateChart();
} }
public RelayCommand PreData { get; internal set; } = null; public RelayCommand PreData { get; internal set; } = null;
private void Command_PreData() private void Command_PreData()
{ {
int from = 0, to = 0;
if (Dat.CalculateFromToByClass(int.MaxValue, ref from, ref to) < 0) return;
} }
public RelayCommand NextData { get; internal set; } = null; public RelayCommand NextData { get; internal set; } = null;
private void Command_NextData() private void Command_NextData()
{ {
int from = 0, to = 0;
if (Dat.CalculateFromToByClass(int.MinValue, ref from, ref to) < 0) return;
} }
public RelayCommand DefaultAnalystData { get; internal set; } = null; public RelayCommand DefaultAnalystData { get; internal set; } = null;
...@@ -75,6 +93,19 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData ...@@ -75,6 +93,19 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
{ {
Dat.SetDefaultAnalystIndexs(); Dat.SetDefaultAnalystIndexs();
} }
public RelayCommand Test { get; set; } = null;
private void Command_Test()
{
}
public void OnLoaded()
{
Command_DefaultAnalystData();
UpdateChart();
}
#endregion #endregion
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
} }
......
...@@ -81,11 +81,19 @@ namespace FLY.HeatingHelper ...@@ -81,11 +81,19 @@ namespace FLY.HeatingHelper
/// </summary> /// </summary>
/// <param name="idx"></param> /// <param name="idx"></param>
/// <returns></returns> /// <returns></returns>
double[] GetThicks(int idx, int from, int to); double[] GetThicksByID(int idx, int from, int to);
double[] GetHeats(int idx, int from, int to); double[] GetHeatsByID(int idx, int from, int to);
double[] GetThicks(int idx, int newResetBolt, double newAngle); double[] GetThicksByID(int idx, int newResetBolt, double newAngle);
int GetResetBolt(int idx); int GetResetBoltByID(int idx);
double GetRotAngle(int idx); double GetRotAngleByID(int idx);
double[] GetThicksByIndex(int idx, int from, int to);
double[] GetHeatsByIndex(int idx, int from, int to);
double[] GetThicksByIndex(int idx, int newResetBolt, double newAngle);
int GetResetBoltByIndex(int idx);
double GetRotAngleByIndex(int idx);
int Index2ID(int idx);
int NormalBolt(int bolt, int boltcnt); int NormalBolt(int bolt, int boltcnt);
List<DateTime> Dat_Times { get; } List<DateTime> Dat_Times { get; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment