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

Fix bugs

parent 9baaa760
......@@ -172,95 +172,7 @@
</StackPanel>
</StackPanel >
<TabControl Name="tc1" Style="{DynamicResource TabControlStyle_ABC}" >
<TabItem Header="数据选择" Style="{DynamicResource TabItemStyle1}" x:Name="tabitem_dataChoose">
<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}">
<TabItem Header="数据选择" Style="{DynamicResource TabItemStyle1}">
<local1:UC_SelectData/>
</TabItem>
<TabItem Header="风环偏转" Style="{DynamicResource TabItemStyle1}" x:Name="tabitem_ringShift">
......
......@@ -172,27 +172,30 @@ namespace FLY.HeatingHelper.UI.UIModule
public void Init(object dat)
{
_data = dat as IThickHeatData;
var tmpVM = ViewModel_HeatDetector.Instance;
vm1.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm2.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
UpdateData(1);
UpdateData(2);
UpdateVarChart();
//var tmpVM = ViewModel_HeatDetector.Instance;
//vm1.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
//vm2.InitData(dat, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm1.InitData(_data);
vm2.InitData(_data);
}
public void Loaded(object s)
{
var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged += DataSelecter_PropertyChanged;
vm2.SelectedFrame = vm2.MaxFrame;
//var tmpVM = ViewModel_HeatDetector.Instance;
//tmpVM.PropertyChanged += DataSelecter_PropertyChanged;
vm1.OnLoaded(true);
vm2.OnLoaded();
vm1.UpdateChart();
vm2.UpdateChart();
UpdateData(1);
UpdateData(2);
UpdateVarChart();
}
public void UnLoaded(object s)
{
var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged -= DataSelecter_PropertyChanged;
//var tmpVM = ViewModel_HeatDetector.Instance;
//tmpVM.PropertyChanged -= DataSelecter_PropertyChanged;
}
private double[] vth1;
......@@ -205,20 +208,6 @@ namespace FLY.HeatingHelper.UI.UIModule
private int resetBolt2;
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)
{
if (e.PropertyName == "SelectedFrame")
......@@ -247,17 +236,17 @@ namespace FLY.HeatingHelper.UI.UIModule
switch (whichframe)
{
case 1:
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat1 = _data.GetHeats(vm1.SelectedFrame, -1, -1);
resetBolt1 = _data.GetResetBolt(vm1.SelectedFrame);
rotAngle1 = _data.GetRotAngle(vm1.SelectedFrame);
vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat1 = _data.GetHeatsByIndex(vm1.SelectedFrame, -1, -1);
resetBolt1 = _data.GetResetBoltByIndex(vm1.SelectedFrame);
rotAngle1 = _data.GetRotAngleByIndex(vm1.SelectedFrame);
break;
case 2:
vth2 = _data.GetThicks(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat2 = _data.GetHeats(vm2.SelectedFrame, -1, -1);
resetBolt2 = _data.GetResetBolt(vm2.SelectedFrame);
rotAngle2 = _data.GetRotAngle(vm2.SelectedFrame);
vth2 = _data.GetThicksByIndex(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vheat2 = _data.GetHeatsByIndex(vm2.SelectedFrame, -1, -1);
resetBolt2 = _data.GetResetBoltByIndex(vm2.SelectedFrame);
rotAngle2 = _data.GetRotAngleByIndex(vm2.SelectedFrame);
break;
default:
return;
......@@ -276,8 +265,8 @@ namespace FLY.HeatingHelper.UI.UIModule
/// <returns></returns>
private bool UpdateThickData()
{
vth1 = _data.GetThicks(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vth2 = _data.GetThicks(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
vth1 = _data.GetThicksByIndex(vm1.SelectedFrame, vm2.ResetBolt, RotAngle);
vth2 = _data.GetThicksByIndex(vm2.SelectedFrame, vm2.ResetBolt, RotAngle);
if ((vth1 == null) || (vth2 == null) || (vheat1 == null) || (vheat2 == null))
{
return false;
......@@ -363,7 +352,7 @@ namespace FLY.HeatingHelper.UI.UIModule
if(s == int.MaxValue)
{
AirRingShift = 0;
//ResetBolt = _data.GetResetBolt(vm1.SelectedFrame);
//ResetBolt = _data.GetResetBoltByID(vm1.SelectedFrame);
return;
}
else
......@@ -376,7 +365,7 @@ namespace FLY.HeatingHelper.UI.UIModule
{
if (double.IsNaN(angle))
{
RotAngle = _data.GetRotAngle(vm1.SelectedFrame);
RotAngle = _data.GetRotAngleByIndex(vm1.SelectedFrame);
return;
}
else
......@@ -392,8 +381,7 @@ namespace FLY.HeatingHelper.UI.UIModule
public void SearchAngle()
{
var tmp = _data.SearchMaxSimilarity(_data.GetIndexFromID(vm1.SelectedFrame),
_data.GetIndexFromID(vm2.SelectedFrame), 15, true);
var tmp = _data.SearchMaxSimilarity(vm1.SelectedFrame, vm2.SelectedFrame, 15, true);
RotAngle = tmp.Item3 + vm1.RotAngle;
TandH_Corel = tmp.Item2;
AirRingShift = tmp.Item1;
......@@ -428,8 +416,9 @@ namespace FLY.HeatingHelper.UI.UIModule
},
(o, e) =>
{
int rb = _data.GetResetBolt(result.frameIdx2);
double ra = _data.GetRotAngle(result.frameIdx2);
if (result.frameIdx1 < 0 || result.frameIdx2 < 0) return;
int rb = _data.GetResetBoltByIndex(result.frameIdx2);
double ra = _data.GetRotAngleByIndex(result.frameIdx2);
SearchProgressValue = 0;
SearchEnabled = true;
vm2.SelectedFrame = result.frameIdx1;
......
......@@ -44,10 +44,10 @@ namespace FLY.HeatingHelper.UI.UIModule
{
return;
}
thick1 = Vector<double>.Build.DenseOfArray(mdata.GetThicks(FrameIdx1, -1, -1));
thick2 = Vector<double>.Build.DenseOfArray(mdata.GetThicks(FrameIdx2, -1, -1));
heat1 = Vector<double>.Build.DenseOfArray(mdata.GetHeats(FrameIdx1, -1, -1));
heat2 = Vector<double>.Build.DenseOfArray(mdata.GetHeats(FrameIdx2, -1, -1));
thick1 = Vector<double>.Build.DenseOfArray(mdata.GetThicksByIndex(FrameIdx1, -1, -1));
thick2 = Vector<double>.Build.DenseOfArray(mdata.GetThicksByIndex(FrameIdx2, -1, -1));
heat1 = Vector<double>.Build.DenseOfArray(mdata.GetHeatsByIndex(FrameIdx1, -1, -1));
heat2 = Vector<double>.Build.DenseOfArray(mdata.GetHeatsByIndex(FrameIdx2, -1, -1));
thickDiff = thick2 - thick1;
heatDiff = heat1 - heat2;
UpdateSeries();
......
......@@ -57,8 +57,10 @@
</c1c:C1Chart>
</Border>
<StackPanel Orientation="Horizontal" Grid.Row="1">
<TextBlock Text="{Binding ResetBolt, StringFormat=复位分区:{0}}"/>
<TextBlock Text="{Binding RotAngle, StringFormat=旋转角度:{0:f1}}"/>
<TextBlock Text="{Binding FrameID,StringFormat=ID:{0}, Mode=OneWay}" Margin="0,0,5,0"/>
<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.Text>
<MultiBinding StringFormat="{}{0}/({1})-({2})">
......
......@@ -169,6 +169,7 @@ namespace FLY.HeatingHelper.UI.UIModule
}
}
}
private double _rotAngle = double.NaN;
public double RotAngle
{
......@@ -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 NxtCmd { get; internal set; }
......@@ -211,10 +226,29 @@ namespace FLY.HeatingHelper.UI.UIModule
}
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> v2 = new ChartValues<double>();
......@@ -224,8 +258,11 @@ namespace FLY.HeatingHelper.UI.UIModule
public void UpdateChart()
{
DS_thick = new DoubleCollection(_data.GetThicks(SelectedFrame, ResetBolt, RotAngle));
DS_heat = new DoubleCollection(_data.GetHeats(SelectedFrame, -1, -1));
double[] tmp = _data.GetThicksByIndex(SelectedFrame, ResetBolt, RotAngle);
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)
//{
// var L1 = new LineSeries
......@@ -249,14 +286,15 @@ namespace FLY.HeatingHelper.UI.UIModule
// MySeries.Add(L1);
// MySeries.Add(L2);
//}
//v1.Clear(); v1.AddRange(_data.GetThicks(SelectedFrame, ResetBolt, RotAngle));
//v2.Clear(); v2.AddRange(_data.GetHeats(SelectedFrame, -1, -1));
//v1.Clear(); v1.AddRange(_data.GetThicksByID(SelectedFrame, ResetBolt, RotAngle));
//v2.Clear(); v2.AddRange(_data.GetHeatsByID(SelectedFrame, -1, -1));
}
private void UpdateData()
{
ResetBolt = _data.GetResetBolt(SelectedFrame);
RotAngle = _data.GetRotAngle(SelectedFrame);
if (SelectedFrame < 0) return;
ResetBolt = _data.GetResetBoltByIndex(SelectedFrame);
RotAngle = _data.GetRotAngleByIndex(SelectedFrame);
UpdateChart();
}
......@@ -266,18 +304,14 @@ namespace FLY.HeatingHelper.UI.UIModule
{
if (SelectedFrame > MinFrame)
{
var tmp = _data.GetRelativeID(SelectedFrame, -1);
if (tmp >= 0)
SelectedFrame = tmp;
SelectedFrame--;
}
});
NxtCmd = new RelayCommand(() =>
{
if (SelectedFrame < MaxFrame)
{
var tmp = _data.GetRelativeID(SelectedFrame, 1);
if (tmp >= 0)
SelectedFrame = tmp;
SelectedFrame++;
}
});
}
......
......@@ -82,10 +82,8 @@ namespace FLY.HeatingHelper.UI.UIModule
public void Loaded(object s)
{
var tmpVM = ViewModel_HeatDetector.Instance;
tmpVM.PropertyChanged += DataSelecter_PropertyChanged;
vm1.InitData(mdata, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm2.InitData(mdata, tmpVM.Selected_Idx_From, tmpVM.Selected_Idx_To);
vm1.InitData(mdata);
vm2.InitData(mdata);
vmDiff.Init(mdata);
vm1.UpdateChart();
vm2.UpdateChart();
......@@ -93,22 +91,7 @@ namespace FLY.HeatingHelper.UI.UIModule
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()
......
......@@ -7,6 +7,7 @@ using System.Windows.Media;
using System.Windows.Controls;
using C1.WPF.C1Chart;
using System.Windows;
using System.ComponentModel;
namespace Chart_AlarmZones_WPF_CS
{
......@@ -19,15 +20,32 @@ namespace Chart_AlarmZones_WPF_CS
this.ChartType = C1.WPF.C1Chart.ChartType.PolygonFilled;
this.XValues = new DoubleCollection();
this.Values = new DoubleCollection();
this.Opacity = 0.5;
UpdateLegend();
Update();
}
#endregion
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));
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));
public static readonly DependencyProperty NearProperty = DependencyProperty.Register("Near", typeof(double?), typeof(AlarmZone), new FrameworkPropertyMetadata(null,
new PropertyChangedCallback((d, e) =>
{
(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"
private C1Chart _chart;
......@@ -36,42 +54,40 @@ namespace Chart_AlarmZones_WPF_CS
get { return _chart; }
set { _chart = value; }
}
[Bindable(true)]
public double? Near
{
get { return (double?)this.GetValue(NearProperty); }
set
{
this.SetValue(NearProperty, value);
Update();
}
}
[Bindable(true)]
public double? Far
{
get { return (double?)this.GetValue(FarProperty); }
set
{
this.SetValue(FarProperty, value);
Update();
}
}
[Bindable(true)]
public double? LowExtent
{
get { return (double?)this.GetValue(LowExtentProperty); }
set
{
this.SetValue(LowExtentProperty, value);
Update();
}
}
[Bindable(true)]
public double? UpperExtent
{
get { return (double?)this.GetValue(UpperExtentProperty); }
set
{
this.SetValue(UpperExtentProperty, value);
Update();
}
}
......@@ -139,16 +155,16 @@ namespace Chart_AlarmZones_WPF_CS
Far = Chart.View.AxisX.ActualMax;
Update();
}
if (LowExtent == null)
{
LowExtent = Chart.View.AxisY.ActualMin;
Update();
}
if (UpperExtent == null)
{
UpperExtent = Chart.View.AxisY.ActualMax;
Update();
}
//if (LowExtent == null)
//{
// LowExtent = Chart.View.AxisY.ActualMin;
// Update();
//}
//if (UpperExtent == null)
//{
// UpperExtent = Chart.View.AxisY.ActualMax;
// Update();
//}
}
}
}
......
......@@ -9,7 +9,7 @@
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
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>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
......@@ -59,7 +59,7 @@
</StackPanel>
<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"
SelectedDateTime="{Binding Path=Dat.LoadDataFrom}"
Margin="0,0,0,1">
......@@ -98,7 +98,7 @@
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" Grid.Column="0" Margin="0,0,5,0">
<Label Content="选择数据范围:"/>
<Label Content="分析数据范围:"/>
<Controls:RangeSlider Minimum="0"
Maximum="{Binding RecordCount, Mode=OneWay}"
LowerValue="{Binding Dat.AnalystIndexFrom}"
......@@ -116,21 +116,29 @@
<Button Content="缺省项" Style="{DynamicResource MahApps.Styles.Button.AccentedSquare}"
Grid.Column="3" MinWidth="80"
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>
<Border Grid.Row="2" Margin="2,5,2,2">
<c1c:C1Chart ChartType="Line" Margin="5,0,0,0">
<c1c:C1Chart.Data>
<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:ChartData>
</c1c:C1Chart.Data>
<c1c:C1Chart.View>
<c1c:ChartView>
<c1c:ChartView.AxisY>
<c1c:Axis Visible="False"/>
<c1c:Axis Visible="False" Min="0" Max="10"/>
</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:ChartView>
</c1c:C1Chart.View>
......
......@@ -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
PreData = new RelayCommand(Command_PreData);
NextData = new RelayCommand(Command_NextData);
DefaultAnalystData = new RelayCommand(Command_DefaultAnalystData);
Test = new RelayCommand(Command_Test);
Command_DefaultLoadDataRange();
}
#region UI界面
......@@ -29,14 +31,26 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
{
get
{
if (Dat is null) return 0;
if (Dat is null) return -1;
return Dat.Dat_Times.Count();
}
set
{
}
}
public double[] DS_thick { get; set; }
#endregion
#region 内部功能函数
private void UpdateChart()
{
if (RecordCount <= 0) return;
DS_thick = Dat.Dat_Means.ToArray();
}
#endregion
#region UI界面按钮功能(Command)
public RelayCommand DefaultLoadDataRange { get; internal set; } = null;
......@@ -53,20 +67,24 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
Dat.LoadDataFromDB(1);
Dat.ResetCluster();
Dat.ClusterOnThickMean();
RecordCount = 1;
UpdateChart();
}
public RelayCommand PreData { get; internal set; } = null;
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;
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;
......@@ -75,6 +93,19 @@ namespace FLY.HeatingHelper.UI.UIModule.UC_SelectData
{
Dat.SetDefaultAnalystIndexs();
}
public RelayCommand Test { get; set; } = null;
private void Command_Test()
{
}
public void OnLoaded()
{
Command_DefaultAnalystData();
UpdateChart();
}
#endregion
public event PropertyChangedEventHandler PropertyChanged;
}
......
......@@ -81,11 +81,19 @@ namespace FLY.HeatingHelper
/// </summary>
/// <param name="idx"></param>
/// <returns></returns>
double[] GetThicks(int idx, int from, int to);
double[] GetHeats(int idx, int from, int to);
double[] GetThicks(int idx, int newResetBolt, double newAngle);
int GetResetBolt(int idx);
double GetRotAngle(int idx);
double[] GetThicksByID(int idx, int from, int to);
double[] GetHeatsByID(int idx, int from, int to);
double[] GetThicksByID(int idx, int newResetBolt, double newAngle);
int GetResetBoltByID(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);
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