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
3dfc2a4d
Commit
3dfc2a4d
authored
Apr 07, 2023
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 扫描测厚 在PgBlowingExt 添加原始扫描图的查看
parent
6da8155f
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
301 additions
and
35 deletions
+301
-35
HeatCheck.cs
...FeedbackRenZiJia/FLY.FeedbackRenZiJia/Server/HeatCheck.cs
+2
-2
BlowingScanAnaylze.cs
.../FLY.Thick.BlowingScan.UI/PgBlowing/BlowingScanAnaylze.cs
+24
-3
PgBlowingExt.xaml
...Scan/FLY.Thick.BlowingScan.UI/PgBlowing/PgBlowingExt.xaml
+99
-13
PgBlowingExtVm.cs
...Scan/FLY.Thick.BlowingScan.UI/PgBlowing/PgBlowingExtVm.cs
+174
-12
hemeiInstallZipVersionInfo.json
脚本/hemeiInstallZipVersionInfo.json
+2
-1
winder.component.config
...Thick.Blowing.UI.Fix.Client/unity/winder.component.config
+0
-2
winder.component.config
脚本/和美追边客户端容器描述.unity/unity/winder.component.config
+0
-2
和美追边客户端容器描述.xmind
脚本/和美追边客户端容器描述.xmind
+0
-0
No files found.
Project.FLY.FeedbackRenZiJia/FLY.FeedbackRenZiJia/Server/HeatCheck.cs
View file @
3dfc2a4d
...
...
@@ -15,7 +15,7 @@ namespace FLY.FeedbackRenZiJia.Server
/// </summary>
class
HeatCheck
:
IHeatCheck
,
INotifyPropertyChanged
{
const
int
HEAT_WAIT
=
3
;
//3s
//
const int HEAT_WAIT = 3;//3s
HeatCell
mHeatCell
;
enum
CHECK_MODE
...
...
@@ -187,7 +187,7 @@ namespace FLY.FeedbackRenZiJia.Server
#
endregion
#
endregion
public
int
HEAT_WAIT
{
get
;
set
;
}
=
3
;
public
void
Init
(
HeatCell
heatCell
)
{
mHeatCell
=
heatCell
;
...
...
Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan.UI/PgBlowing/BlowingScanAnaylze.cs
View file @
3dfc2a4d
...
...
@@ -187,12 +187,21 @@ namespace FLY.Thick.BlowingScan.UI.Client
markdata
.
StartTime
=
scanInfo
.
StartTime
;
markdata
.
ThicksDT
=
scanInfo
.
ThicksDT
;
markdata
.
Thks
=
scanInfo
.
thks
;
double
avg
=
scanInfo
.
thks
.
AverageNoNull
();
if
(!
double
.
IsNaN
(
avg
)
&&
avg
>
10
)
markdata
.
Sigma2Percent
=
scanInfo
.
thks
.
Sigma
()
*
2
/
avg
*
100
;
else
markdata
.
Sigma2Percent
=
double
.
NaN
;
markdata
.
R
=
scanInfo
.
R
;
markdata
.
Direction
=
scanInfo
.
Direction
;
markdata
.
Border
=
flydata
.
FilmRange
;
markdata
.
PosOfGrid
=
flydata
.
PosOfGrid
;
markdata
.
Time
=
flydata
.
Time
;
markdata
.
Frame
=
flydata
.
Thks
;
markdata
.
FrameAvg
=
scanInfo
.
frame
.
Select
(
spc
=>
spc
.
thk
).
AverageNoNull
();
}
else
{
...
...
@@ -1431,7 +1440,7 @@ namespace FLY.Thick.BlowingScan.UI.Client
ScanInfoList
[
i
].
IsFocus2
=
false
;
}
if
(
idx1
>
0
)
if
(
idx1
>
=
0
)
{
ScanInfoList
[
idx1
].
IsFocus
=
true
;
foreach
(
int
i
in
ScanInfoList
[
idx1
].
solveMember
)
...
...
@@ -1440,7 +1449,7 @@ namespace FLY.Thick.BlowingScan.UI.Client
}
}
if
(
idx2
>
0
)
if
(
idx2
>
=
0
)
{
ScanInfoList
[
idx2
].
IsFocus2
=
true
;
foreach
(
int
i
in
ScanInfoList
[
idx2
].
solveMember
)
...
...
@@ -1574,12 +1583,24 @@ namespace FLY.Thick.BlowingScan.UI.Client
/// <summary>
/// 一幅数据
///
解方程后的
一幅数据
/// </summary>
[
PropertyChanged
.
DoNotCheckEquality
]
public
double
[]
Thks
{
get
;
set
;
}
/// <summary>
/// Thks 的 2sigma %
/// </summary>
public
double
Sigma2Percent
{
get
;
set
;
}
/// <summary>
/// 横向扫描图, 数据颗粒度 是 grid
/// </summary>
public
double
[]
Frame
{
get
;
set
;
}
/// <summary>
/// 横向扫描图 的均值
/// </summary>
public
double
FrameAvg
{
get
;
set
;
}
/// <summary>
/// 膜边界,单位脉冲
/// </summary>
...
...
Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan.UI/PgBlowing/PgBlowingExt.xaml
View file @
3dfc2a4d
This diff is collapsed.
Click to expand it.
Project.FLY.Thick.BlowingScan/FLY.Thick.BlowingScan.UI/PgBlowing/PgBlowingExtVm.cs
View file @
3dfc2a4d
...
...
@@ -30,6 +30,8 @@ namespace FLY.Thick.BlowingScan.UI.Client
#
region
曲线
public
XYRangeSlider
FrameGraphYRangeSlider
{
get
;
private
set
;
}
/// <summary>
/// 画在图上的 速度曲线,限制最多100个数据
/// </summary>
...
...
@@ -67,6 +69,16 @@ namespace FLY.Thick.BlowingScan.UI.Client
/// </summary>
public
ChartValues
<
double
>
Solve2Values
{
get
;
}
=
new
ChartValues
<
double
>();
/// <summary>
/// 记录1 横向图
/// </summary>
public
ChartValues
<
double
>
Frame1Values
{
get
;
}
=
new
ChartValues
<
double
>();
/// <summary>
/// 记录2 横向图
/// </summary>
public
ChartValues
<
double
>
Frame2Values
{
get
;
}
=
new
ChartValues
<
double
>();
/// <summary>
/// 转向信号
/// </summary>
...
...
@@ -165,6 +177,8 @@ namespace FLY.Thick.BlowingScan.UI.Client
public
RelayCommand
ApplyFilmLength3DCmd
{
get
;
private
set
;
}
public
RelayCommand
ClearFilmLength3DCmd
{
get
;
private
set
;
}
public
RelayCommand
AutoFrameGraphYRangeCmd
{
get
;
private
set
;
}
#
endregion
public
CalFilmLen
Cfl
{
get
;
protected
set
;
}
...
...
@@ -178,6 +192,8 @@ namespace FLY.Thick.BlowingScan.UI.Client
public
PgBlowingExtVm
()
{
#
region
界面配置
FrameGraphYRangeSlider
=
new
XYRangeSlider
()
{
MinRange
=
5
,
SliderMax
=
500
,
SliderMin
=
-
10
};
FrameGraphYRangeSlider
.
Init
();
MapperTv
=
Mappers
.
Xy
<
TimeValue
>()
.
X
(
value
=>
value
.
Time
.
Ticks
)
.
Y
(
value
=>
value
.
Value
);
...
...
@@ -212,6 +228,7 @@ namespace FLY.Thick.BlowingScan.UI.Client
UpdateFilmLength3DCmd
=
new
RelayCommand
(
UpdateFilmLength3D
);
ApplyFilmLength3DCmd
=
new
RelayCommand
(
ApplyFilmLength3D
);
ClearFilmLength3DCmd
=
new
RelayCommand
(
ClearFilmLength3D
);
AutoFrameGraphYRangeCmd
=
new
RelayCommand
(
AutoFrameGraphYRange
);
}
...
...
@@ -390,12 +407,17 @@ namespace FLY.Thick.BlowingScan.UI.Client
if
(
markdata
.
IsValid
==
false
)
{
dispatcherObject
.
Dispatcher
.
Invoke
(
new
Action
<
MarkData
>(
UpdateSolveGraph
),
markdata
);
dispatcherObject
.
Dispatcher
.
Invoke
(
new
Action
<
MarkData
>(
UpdateFrameGragh
),
markdata
);
}
}
if
(
e
.
PropertyName
==
nameof
(
MarkData
.
Thks
))
else
if
(
e
.
PropertyName
==
nameof
(
MarkData
.
Thks
))
{
dispatcherObject
.
Dispatcher
.
Invoke
(
new
Action
<
MarkData
>(
UpdateSolveGraph
),
markdata
);
}
else
if
(
e
.
PropertyName
==
nameof
(
MarkData
.
Frame
))
{
dispatcherObject
.
Dispatcher
.
Invoke
(
new
Action
<
MarkData
>(
UpdateFrameGragh
),
markdata
);
}
}
/// <summary>
...
...
@@ -403,26 +425,80 @@ namespace FLY.Thick.BlowingScan.UI.Client
/// </summary>
void
UpdateSolveGraph
(
MarkData
markdata
)
{
ChartValues
<
double
>
solveValues
;
if
(
markdata
==
Anaylze
.
MarkNo1
)
{
solveValues
=
Solve1Values
;
}
else
{
solveValues
=
Solve2Values
;
}
solveValues
.
Clear
();
ChartValues
<
double
>
values
=
(
markdata
==
Anaylze
.
MarkNo1
)
?
Solve1Values
:
Solve2Values
;
values
.
Clear
();
if
(!
markdata
.
IsValid
)
return
;
//TODO 需要转为%吗?
double
[]
datas
=
markdata
.
Thks
;
if
(
datas
.
Any
(
d
=>
double
.
IsNaN
(
d
)))
return
;
solveValues
.
AddRange
(
datas
);
values
.
AddRange
(
datas
);
}
void
UpdateFrameGragh
(
MarkData
markdata
)
{
ChartValues
<
double
>
values
=
(
markdata
==
Anaylze
.
MarkNo1
)
?
Frame1Values
:
Frame2Values
;
values
.
Clear
();
if
(!
markdata
.
IsValid
)
return
;
double
[]
datas
=
markdata
.
Frame
;
values
.
AddRange
(
datas
);
updateFrameGraphYRange
();
}
void
updateFrameGraphYRange
()
{
List
<
double
>
datas
=
new
List
<
double
>();
datas
.
AddRange
(
Frame1Values
.
Where
(
d
=>
!
double
.
IsNaN
(
d
)));
datas
.
AddRange
(
Frame2Values
.
Where
(
d
=>
!
double
.
IsNaN
(
d
)));
if
(
datas
.
Count
()
<=
10
)
return
;
//异常
//设置Y轴范围
double
max
=
datas
.
Max
();
double
min
=
datas
.
Min
();
double
mid
=
(
max
+
min
)
/
2
;
//扩大1.5倍显示
double
range
=
max
-
min
;
if
(
range
<
1
)
//异常
return
;
range
*=
1.5
;
FrameGraphYRangeSlider
.
SliderMin
=
mid
-
range
/
2
;
FrameGraphYRangeSlider
.
SliderMax
=
mid
+
range
/
2
;
//FrameGraphYRangeSlider.SetLowerUpper(min - range / 4, max + range / 4);
}
void
AutoFrameGraphYRange
()
{
List
<
double
>
datas
=
new
List
<
double
>();
datas
.
AddRange
(
Frame1Values
.
Where
(
d
=>
!
double
.
IsNaN
(
d
)));
datas
.
AddRange
(
Frame2Values
.
Where
(
d
=>
!
double
.
IsNaN
(
d
)));
if
(
datas
.
Count
()
<=
10
)
return
;
//异常
//设置Y轴范围
double
max
=
datas
.
Max
();
double
min
=
datas
.
Min
();
double
mid
=
(
max
+
min
)
/
2
;
//扩大1.5倍显示
double
range
=
max
-
min
;
if
(
range
<
1
)
//异常
return
;
range
*=
1.5
;
FrameGraphYRangeSlider
.
SliderMin
=
mid
-
range
/
2
;
FrameGraphYRangeSlider
.
SliderMax
=
mid
+
range
/
2
;
FrameGraphYRangeSlider
.
SetFullView
();
}
void
UpdateIsRunning
()
{
if
(
Anaylze
.
IsStep2Ing
||
Cfl
.
IsDownloading
)
...
...
@@ -739,4 +815,90 @@ namespace FLY.Thick.BlowingScan.UI.Client
}
#
endregion
}
/// <summary>
/// 范围调整器
/// </summary>
public
class
XYRangeSlider
:
INotifyPropertyChanged
{
public
event
PropertyChangedEventHandler
PropertyChanged
;
/// <summary>
/// 拖拉条 最大值
/// </summary>
public
double
SliderMax
{
get
;
set
;
}
/// <summary>
/// 拖拉条 最小值
/// </summary>
public
double
SliderMin
{
get
;
set
;
}
/// <summary>
/// 拖拉条 当前上值
/// </summary>
public
double
SliderUpperValue
{
get
;
set
;
}
/// <summary>
/// 拖拉条 当前下值
/// </summary>
public
double
SliderLowerValue
{
get
;
set
;
}
public
double
Max
{
get
;
private
set
;
}
public
double
Min
{
get
;
private
set
;
}
public
double
MinRange
{
get
;
set
;
}
=
100
;
#
region
public
void
Init
()
{
SetLowerUpper
(
SliderMin
,
SliderMax
);
}
void
update
()
{
if
(
Math
.
Abs
(
SliderUpperValue
-
SliderLowerValue
)
<
MinRange
)
{
//异常,不能小于100
int
avg
=
(
int
)((
SliderUpperValue
+
SliderLowerValue
)
/
2
);
SliderUpperValue
=
avg
+
MinRange
/
2
;
SliderLowerValue
=
avg
-
MinRange
/
2
;
}
Max
=
SliderUpperValue
;
Min
=
SliderLowerValue
;
}
public
void
SetLowerUpper
(
double
lower
,
double
upper
)
{
this
.
PropertyChanged
-=
YRangeSliderUpperLowerValue_PropertyChanged
;
SliderLowerValue
=
lower
;
SliderUpperValue
=
upper
;
update
();
this
.
PropertyChanged
+=
YRangeSliderUpperLowerValue_PropertyChanged
;
}
public
void
SetFullView
()
{
SetLowerUpper
(
SliderMin
,
SliderMax
);
}
private
void
YRangeSliderUpperLowerValue_PropertyChanged
(
object
sender
,
PropertyChangedEventArgs
e
)
{
if
(
e
.
PropertyName
==
nameof
(
SliderUpperValue
))
{
update
();
}
else
if
(
e
.
PropertyName
==
nameof
(
SliderLowerValue
))
{
update
();
}
else
if
(
e
.
PropertyName
==
nameof
(
SliderMax
))
{
if
(
SliderUpperValue
>
SliderMax
)
SliderUpperValue
=
SliderMax
;
}
else
if
(
e
.
PropertyName
==
nameof
(
SliderMin
))
{
if
(
SliderLowerValue
<
SliderMin
)
SliderLowerValue
=
SliderMin
;
}
}
#
endregion
}
}
脚本/hemeiInstallZipVersionInfo.json
View file @
3dfc2a4d
{
"InstallZipVersion"
:
"7.8.0.0"
,
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/和美安装包_v7.8.0.0_20230
228
.7z"
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/和美安装包_v7.8.0.0_20230
323
.7z"
}
\ No newline at end of file
脚本/release_conf/FLY.Thick.Blowing.UI.Fix.Client/unity/winder.component.config
View file @
3dfc2a4d
...
...
@@ -12,7 +12,6 @@
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_DynAreaWinder"
name
=
"winder_da"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_MainPanel"
name
=
"winder_mp"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_CenterWinderPanel"
name
=
"winder_cwp"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_MainPanel2"
name
=
"winder_mp2"
/>
</
container
>
</
unity
>
</
configuration
>
\ No newline at end of file
脚本/和美追边客户端容器描述.unity/unity/winder.component.config
View file @
3dfc2a4d
...
...
@@ -12,7 +12,6 @@
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_DynAreaWinder"
name
=
"winder_da"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_MainPanel"
name
=
"winder_mp"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_CenterWinderPanel"
name
=
"winder_cwp"
/>
<
register
type
=
"IUiModule2"
mapTo
=
"UiModule2_MainPanel2"
name
=
"winder_mp2"
/>
</
container
>
</
unity
>
</
configuration
>
\ No newline at end of file
脚本/和美追边客户端容器描述.xmind
View file @
3dfc2a4d
No preview for this file type
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