Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hemei
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
潘栩锋
hemei
Commits
7ee393fd
Commit
7ee393fd
authored
Jan 09, 2020
by
540597360@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用数据ID标识数据
parent
759d1131
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
255 additions
and
154 deletions
+255
-154
Page_HeatDetector.xaml.cs
...x/FLY.HeatingHelper.UI/UIModule/Page_HeatDetector.xaml.cs
+11
-6
UC_AirRingShift.xaml
...st.Fix/FLY.HeatingHelper.UI/UIModule/UC_AirRingShift.xaml
+2
-1
UC_AirRingShift.xaml.cs
...Fix/FLY.HeatingHelper.UI/UIModule/UC_AirRingShift.xaml.cs
+23
-0
UC_FrameDiffViewModel.cs
...ix/FLY.HeatingHelper.UI/UIModule/UC_FrameDiffViewModel.cs
+3
-1
UC_FramePicker.xaml.cs
....Fix/FLY.HeatingHelper.UI/UIModule/UC_FramePicker.xaml.cs
+6
-2
IThickHeatData.cs
....ThickHeatAnalyst.Fix/FLY.HeatingHelper/IThickHeatData.cs
+50
-70
ThickHeatData.cs
...Y.ThickHeatAnalyst.Fix/FLY.HeatingHelper/ThickHeatData.cs
+160
-74
No files found.
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper.UI/UIModule/Page_HeatDetector.xaml.cs
View file @
7ee393fd
...
@@ -133,7 +133,8 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -133,7 +133,8 @@ namespace FLY.HeatingHelper.UI.UIModule
/// </summary>
/// </summary>
public
void
Calculate_From_Class_To_Rxx
()
public
void
Calculate_From_Class_To_Rxx
()
{
{
int
from
=
_vm
.
Selected_Idx_From
,
to
=
_vm
.
Selected_Idx_To
;
int
from
=
_vm
.
_data
.
GetIndexFromID
(
_vm
.
Selected_Idx_From
),
to
=
_vm
.
_data
.
GetIndexFromID
(
_vm
.
Selected_Idx_To
);
_vm
.
RX
=
from
;
_vm
.
RX
=
from
;
_vm
.
RY
=
myChart
.
AxisY
.
First
().
ActualMaxValue
;
_vm
.
RY
=
myChart
.
AxisY
.
First
().
ActualMaxValue
;
...
@@ -248,7 +249,7 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -248,7 +249,7 @@ namespace FLY.HeatingHelper.UI.UIModule
public
DateTime
DataTo
{
get
;
set
;
}
public
DateTime
DataTo
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 选择要处理的数据(按I
ndex
)
/// 选择要处理的数据(按I
D
)
/// </summary>
/// </summary>
public
int
Selected_Idx_From
{
get
;
set
;
}
public
int
Selected_Idx_From
{
get
;
set
;
}
public
int
Selected_Idx_To
{
get
;
set
;
}
public
int
Selected_Idx_To
{
get
;
set
;
}
...
@@ -278,9 +279,11 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -278,9 +279,11 @@ namespace FLY.HeatingHelper.UI.UIModule
{
{
Selected_Idx_From
=
from
;
Selected_Idx_From
=
from
;
Selected_Idx_To
=
to
;
Selected_Idx_To
=
to
;
var
tmp
=
_data
.
GetDateTimeByID
(
from
);
DataFrom
=
(
DateTime
)
tmp
;
tmp
=
_data
.
GetDateTimeByID
(
to
);
DataTo
=
(
DateTime
)
tmp
;
Update_Tab1
();
Update_Tab1
();
DataFrom
=
Xaxis
[
Selected_Idx_From
];
DataTo
=
Xaxis
[
Selected_Idx_To
];
}
}
}
}
...
@@ -296,8 +299,10 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -296,8 +299,10 @@ namespace FLY.HeatingHelper.UI.UIModule
_selected_class
=
_sclass
;
_selected_class
=
_sclass
;
Selected_Idx_From
=
from
;
Selected_Idx_From
=
from
;
Selected_Idx_To
=
to
;
Selected_Idx_To
=
to
;
DataFrom
=
Xaxis
[
Selected_Idx_From
];
var
tmp
=
_data
.
GetDateTimeByID
(
from
);
DataTo
=
Xaxis
[
Selected_Idx_To
];
DataFrom
=
(
DateTime
)
tmp
;
tmp
=
_data
.
GetDateTimeByID
(
to
);
DataTo
=
(
DateTime
)
tmp
;
return
;
return
;
}
}
break
;
break
;
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper.UI/UIModule/UC_AirRingShift.xaml
View file @
7ee393fd
...
@@ -71,6 +71,7 @@
...
@@ -71,6 +71,7 @@
<TextBlock Text="锁定设置:"/>
<TextBlock Text="锁定设置:"/>
<RadioButton Content="锁定1幅" Grid.Column="1" IsChecked="{Binding LockFrames,Converter={StaticResource lfc},ConverterParameter=1}"/>
<RadioButton Content="锁定1幅" Grid.Column="1" IsChecked="{Binding LockFrames,Converter={StaticResource lfc},ConverterParameter=1}"/>
<RadioButton Content="锁定2幅" Grid.Column="2" IsChecked="{Binding LockFrames,Converter={StaticResource lfc},ConverterParameter=2}"/>
<RadioButton Content="锁定2幅" Grid.Column="2" IsChecked="{Binding LockFrames,Converter={StaticResource lfc},ConverterParameter=2}"/>
<RadioButton Content="无锁定" Grid.Column="3" IsChecked="{Binding LockFrames,Converter={StaticResource lfc},ConverterParameter=0}"/>
</Grid>
</Grid>
<Grid DockPanel.Dock="Top">
<Grid DockPanel.Dock="Top">
<ProgressBar Value="{Binding SearchProgressValue}" Width="{Binding ElementName=searchBtn, Path=ActualWidth}"/>
<ProgressBar Value="{Binding SearchProgressValue}" Width="{Binding ElementName=searchBtn, Path=ActualWidth}"/>
...
@@ -94,7 +95,7 @@
...
@@ -94,7 +95,7 @@
<TextBlock Text="{Binding RotAngle,StringFormat={}{0:f1}}" Style="{StaticResource tb_style}"/>
<TextBlock Text="{Binding RotAngle,StringFormat={}{0:f1}}" Style="{StaticResource tb_style}"/>
<Button Content="增加" Margin="3,0,0,0" Click="Angle_Add"/>
<Button Content="增加" Margin="3,0,0,0" Click="Angle_Add"/>
<Button Content="减少" Margin="3,0,0,0" Click="Angle_Sub"/>
<Button Content="减少" Margin="3,0,0,0" Click="Angle_Sub"/>
<Button Content="
自动试算" Margin="3,0,0,0
"/>
<Button Content="
搜索旋转角度" Margin="3,0,0,0" Click="Search_Angle
"/>
</StackPanel>
</StackPanel>
<Button Content="应用" DockPanel.Dock="Bottom"/>
<Button Content="应用" DockPanel.Dock="Bottom"/>
</DockPanel>
</DockPanel>
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper.UI/UIModule/UC_AirRingShift.xaml.cs
View file @
7ee393fd
...
@@ -88,6 +88,10 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -88,6 +88,10 @@ namespace FLY.HeatingHelper.UI.UIModule
{
{
mainVM
.
Change_Angle
(
0.5
);
mainVM
.
Change_Angle
(
0.5
);
}
}
private
void
Search_Angle
(
object
sender
,
RoutedEventArgs
e
)
{
}
}
}
public
class
UC_AirRingShiftViewModel
:
INotifyPropertyChanged
public
class
UC_AirRingShiftViewModel
:
INotifyPropertyChanged
...
@@ -386,6 +390,19 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -386,6 +390,19 @@ namespace FLY.HeatingHelper.UI.UIModule
}
}
}
}
public
void
SearchAngle
()
{
var
tmp
=
_data
.
SearchMaxSimilarity
(
_data
.
GetIndexFromID
(
vm1
.
SelectedFrame
),
_data
.
GetIndexFromID
(
vm2
.
SelectedFrame
),
15
,
true
);
RotAngle
=
tmp
.
Item3
+
vm1
.
RotAngle
;
TandH_Corel
=
tmp
.
Item2
;
AirRingShift
=
tmp
.
Item1
;
int
rb
=
AirRingShift
+
vm1
.
ResetBolt
;
while
(
rb
>=
_data
.
BoltCnt
)
rb
-=
_data
.
BoltCnt
;
while
(
rb
<
0
)
rb
+=
_data
.
BoltCnt
;
ResetBolt
=
rb
;
}
public
void
AutoSearchAndCal_Shift
()
public
void
AutoSearchAndCal_Shift
()
{
{
SearchEnabled
=
false
;
SearchEnabled
=
false
;
...
@@ -393,6 +410,12 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -393,6 +410,12 @@ namespace FLY.HeatingHelper.UI.UIModule
int
searchCnt
=
int
.
MaxValue
;
int
searchCnt
=
int
.
MaxValue
;
int
start
=
vm1
.
MinFrame
;
int
start
=
vm1
.
MinFrame
;
int
end
=
vm1
.
MaxFrame
;
int
end
=
vm1
.
MaxFrame
;
if
(
LockFrames
==
2
)
{
SearchAngle
();
SearchEnabled
=
true
;
return
;
}
if
(
LockFrames
==
1
)
if
(
LockFrames
==
1
)
{
{
searchCnt
=
1
;
searchCnt
=
1
;
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper.UI/UIModule/UC_FrameDiffViewModel.cs
View file @
7ee393fd
...
@@ -18,7 +18,9 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -18,7 +18,9 @@ namespace FLY.HeatingHelper.UI.UIModule
public
UC_FrameDiffViewModel
()
public
UC_FrameDiffViewModel
()
{
{
}
}
/// <summary>
/// 两个ID
/// </summary>
public
int
FrameIdx1
{
get
;
set
;
}
=
-
1
;
public
int
FrameIdx1
{
get
;
set
;
}
=
-
1
;
public
int
FrameIdx2
{
get
;
set
;
}
=
-
1
;
public
int
FrameIdx2
{
get
;
set
;
}
=
-
1
;
public
SeriesCollection
MySeries
{
get
;
set
;
}
=
new
SeriesCollection
();
public
SeriesCollection
MySeries
{
get
;
set
;
}
=
new
SeriesCollection
();
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper.UI/UIModule/UC_FramePicker.xaml.cs
View file @
7ee393fd
...
@@ -266,14 +266,18 @@ namespace FLY.HeatingHelper.UI.UIModule
...
@@ -266,14 +266,18 @@ namespace FLY.HeatingHelper.UI.UIModule
{
{
if
(
SelectedFrame
>
MinFrame
)
if
(
SelectedFrame
>
MinFrame
)
{
{
SelectedFrame
--;
var
tmp
=
_data
.
GetRelativeID
(
SelectedFrame
,
-
1
);
if
(
tmp
>=
0
)
SelectedFrame
=
tmp
;
}
}
});
});
NxtCmd
=
new
RelayCommand
(()
=>
NxtCmd
=
new
RelayCommand
(()
=>
{
{
if
(
SelectedFrame
<
MaxFrame
)
if
(
SelectedFrame
<
MaxFrame
)
{
{
SelectedFrame
++;
var
tmp
=
_data
.
GetRelativeID
(
SelectedFrame
,
1
);
if
(
tmp
>=
0
)
SelectedFrame
=
tmp
;
}
}
});
});
}
}
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper/IThickHeatData.cs
View file @
7ee393fd
...
@@ -15,11 +15,7 @@ namespace FLY.HeatingHelper
...
@@ -15,11 +15,7 @@ namespace FLY.HeatingHelper
/// </summary>
/// </summary>
public
interface
IThickHeatData
:
INotifyPropertyChanged
public
interface
IThickHeatData
:
INotifyPropertyChanged
{
{
bool
IsDataReady
{
get
;
}
#
region
用于
UI
的接口
bool
BeginUse
(
bool
isAsync
=
true
);
void
EndUse
();
/// <summary>
/// <summary>
/// 数据库中存在的数据范围
/// 数据库中存在的数据范围
/// </summary>
/// </summary>
...
@@ -43,39 +39,17 @@ namespace FLY.HeatingHelper
...
@@ -43,39 +39,17 @@ namespace FLY.HeatingHelper
/// </summary>
/// </summary>
int
AirRingShift
{
get
;
}
int
AirRingShift
{
get
;
}
/// <summary>
StateCode
State
{
get
;
}
/// MaxHeatVariationIdx1,MaxHeatVariationIdx2指示两幅数据,这两幅数据的加热量变化最大
#
endregion
/// </summary>
int
MaxHeatVariationIdx1
{
get
;
}
int
MaxHeatVariationIdx2
{
get
;
}
/// <summary>
/// <summary>
/// 通知新数据产生
/// 通知新数据产生
/// </summary>
/// </summary>
bool
NewDataArrived
{
set
;
}
bool
NewDataArrived
{
set
;
}
/// <summary>
/// 计算最合适的判断范围,FromTo也可以自行设定,计算DFrom和DTo的值
/// </summary>
//void CalculateFromTo();
/// <summary>
/// 计算加热最大变化量,计算出两个索引值
/// </summary>
int
[]
CalculateMaxHeatVariation
(
object
_aclass
);
int
CalculateFromToByClass
(
int
selected_class
,
ref
int
from
,
ref
int
to
);
int
CalculateFromToByClass
(
int
selected_class
,
ref
int
from
,
ref
int
to
);
#
region
一些辅助计算的函数
#
region
一些辅助计算的函数
/// <summary>
/// <summary>
/// 通过加热变化量和厚度变化量计算加热到厚度的比例系数
/// </summary>
/// <param name="heats">加热变化量</param>
/// <param name="thicks">厚度变化量</param>
/// <returns></returns>
double
CalculateHeatToThickFactor
(
double
[]
heats
,
double
[]
thicks
,
double
thickmean
);
/// <summary>
/// 计算两个frame的加热和厚度差的协相关向量。
/// 计算两个frame的加热和厚度差的协相关向量。
/// </summary>
/// </summary>
double
[]
CalculateCorrelVector
(
double
[]
heats
,
double
[]
thicks
);
double
[]
CalculateCorrelVector
(
double
[]
heats
,
double
[]
thicks
);
...
@@ -84,6 +58,7 @@ namespace FLY.HeatingHelper
...
@@ -84,6 +58,7 @@ namespace FLY.HeatingHelper
#
endregion
#
endregion
void
SetDB
(
string
dbname
);
void
SetDB
(
string
dbname
);
#
region
获取数据接口
/// <summary>
/// <summary>
/// 获取厚度和加热的值
/// 获取厚度和加热的值
/// </summary>
/// </summary>
...
@@ -100,15 +75,19 @@ namespace FLY.HeatingHelper
...
@@ -100,15 +75,19 @@ namespace FLY.HeatingHelper
List
<
double
>
Dat_Sigmas
{
get
;
}
List
<
double
>
Dat_Sigmas
{
get
;
}
List
<
double
>
Dat_Means
{
get
;
}
List
<
double
>
Dat_Means
{
get
;
}
int
BoltCnt
{
get
;
}
int
GetIndexFromID
(
int
id
);
int
GetRelativeID
(
int
id
,
int
relative
);
/// <summary>
/// <summary>
///
计算风环偏转值
///
依据数据ID获取数据时间
/// </summary>
/// </summary>
void
CalculateAirRingShift
();
/// <param name="id"></param>
/// <returns></returns>
DateTime
?
GetDateTimeByID
(
int
id
);
#
endregion
int
BoltCnt
{
get
;
}
double
[]
HeatEffect
{
get
;
set
;
}
double
[]
HeatEffect
{
get
;
set
;
}
#
region
整体分析和局部分析的功能
jiekou
List
<
HeatBoltAnalystItem
>
SearchFeaturedBoltsItem
(
int
startIdx
,
int
endIdx
,
List
<
HeatBoltAnalystItem
>
SearchFeaturedBoltsItem
(
int
startIdx
,
int
endIdx
,
int
searchNum
,
int
maxFrameInterval
,
int
heatRating
,
int
searchNum
,
int
maxFrameInterval
,
int
heatRating
,
int
neglectHeatRate
,
int
Separation
,
int
shiftRange
);
int
neglectHeatRate
,
int
Separation
,
int
shiftRange
);
...
@@ -117,6 +96,16 @@ namespace FLY.HeatingHelper
...
@@ -117,6 +96,16 @@ namespace FLY.HeatingHelper
ProgressChangedEventHandler
report
,
ProgressChangedEventHandler
report
,
RunWorkerCompletedEventHandler
runcomplete
,
RunWorkerCompletedEventHandler
runcomplete
,
int
midbolt
,
double
searchRange
,
bool
SearchRotAngle
,
bool
isAsync
);
int
midbolt
,
double
searchRange
,
bool
SearchRotAngle
,
bool
isAsync
);
/// <summary>
///
/// </summary>
/// <param name="idxL"></param>
/// <param name="idxB"></param>
/// <param name="searchRange"></param>
/// <param name="SearchRotAngle"></param>
/// <returns>返回值:Tuple<偏转数,相关系数,旋转角度变化量></returns>
Tuple
<
int
,
double
,
double
>
SearchMaxSimilarity
(
int
idxL
,
int
idxB
,
double
searchRange
,
bool
SearchRotAngle
);
#
endregion
#
region
数据库数据变化后自动运行
#
region
数据库数据变化后自动运行
List
<
ThickHeatEvent
>
AutoDetectEvents
{
get
;
}
List
<
ThickHeatEvent
>
AutoDetectEvents
{
get
;
}
...
@@ -129,20 +118,41 @@ namespace FLY.HeatingHelper
...
@@ -129,20 +118,41 @@ namespace FLY.HeatingHelper
/// 搜索旋转角度的范围,例如15,则在当前度数下搜索正负15度
/// 搜索旋转角度的范围,例如15,则在当前度数下搜索正负15度
/// </summary>
/// </summary>
double
SearchingAngle
{
get
;
set
;
}
double
SearchingAngle
{
get
;
set
;
}
/// <summary>
/// 该参数设定不参加搜索的数据
/// </summary>
int
NotSearchMinFrame
{
get
;
set
;
}
StateCode
State
{
get
;
}
/// <summary>
/// <summary>
/// 检查数据库,当数据库有新数据时,更新DataTo属性,并读取新数据到对象中。该函数可以一定时间间隔执行。
/// 检查数据库,当数据库有新数据时,更新DataTo属性,并读取新数据到对象中。该函数可以一定时间间隔执行。
/// </summary>
/// </summary>
void
RefreshData
();
void
RefreshData
();
bool
IsDataReady
{
get
;
}
bool
BeginUse
(
bool
isAsync
=
true
);
void
EndUse
();
#
endregion
#
endregion
}
}
public
enum
StateCode
{
STC_NODAT
,
// 没有数据
STC_IDLE
,
// 空闲
STC_READING
,
// 读取数据
STC_UPDATING
// 检查新数据
}
#
region
厚度加热数据自动处理结果事件
public
class
ThickHeatEvent
{
public
ThickHeatEventCode
EvtCode
;
public
object
EvtData
;
}
public
enum
ThickHeatEventCode
{
EVC_RingShift
,
EVC_HeatBoltItem
,
}
public
class
MaxSimilarityResult
public
class
MaxSimilarityResult
{
{
public
int
frameIdx1
;
public
int
frameIdx1
;
...
@@ -153,14 +163,6 @@ namespace FLY.HeatingHelper
...
@@ -153,14 +163,6 @@ namespace FLY.HeatingHelper
public
double
ThickToHeatFactor
;
public
double
ThickToHeatFactor
;
}
}
public
enum
StateCode
{
STC_NODAT
,
// 没有数据
STC_IDLE
,
// 空闲
STC_READING
,
// 读取数据
STC_UPDATING
// 检查新数据
}
public
class
HeatBoltAnalystItem
public
class
HeatBoltAnalystItem
{
{
public
int
FrameIdx1
{
get
;
set
;
}
public
int
FrameIdx1
{
get
;
set
;
}
...
@@ -183,28 +185,6 @@ namespace FLY.HeatingHelper
...
@@ -183,28 +185,6 @@ namespace FLY.HeatingHelper
Similarity
=
from
.
Similarity
;
Similarity
=
from
.
Similarity
;
}
}
}
}
#
region
厚度加热数据自动处理结果事件
public
enum
ThickHeatEventCode
{
EVC_RingShift
,
EVC_HeatBoltItem
,
}
public
class
EVTD_RingShift
{
public
int
frameIdx1
;
public
int
frameIdx2
;
public
double
shifted
;
public
double
degree
;
public
double
similarity
;
}
public
class
ThickHeatEvent
{
public
ThickHeatEventCode
EvtCode
;
public
object
EvtData
;
}
#
endregion
#
endregion
#
region
DataHelper
#
region
DataHelper
...
...
Project.FLY.ThickHeatAnalyst.Fix/FLY.HeatingHelper/ThickHeatData.cs
View file @
7ee393fd
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment