Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
Thick-Common
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
潘栩锋
Thick-Common
Commits
290ed8de
Commit
290ed8de
authored
May 21, 2020
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加 边界查找添加期望宽度,当没穿过阀值线,肯定边界在有效范围外面,此时会用另一边测到的边界与期望宽度 推算出 有效范围外的边界位置
parent
715ebee6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
792 additions
and
307 deletions
+792
-307
FLY.Thick.Base.UI.csproj
...FLY.Thick.Base/FLY.Thick.Base.UI/FLY.Thick.Base.UI.csproj
+7
-0
PgBorderSearch.xaml
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearch.xaml
+19
-0
PgBorderSearch.xaml.cs
...t.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearch.xaml.cs
+37
-61
PgBorderSearchPlastic.xaml
...Y.Thick.Base/FLY.Thick.Base.UI/PgBorderSearchPlastic.xaml
+276
-0
PgBorderSearchPlastic.xaml.cs
...hick.Base/FLY.Thick.Base.UI/PgBorderSearchPlastic.xaml.cs
+189
-0
BorderSearchServiceClient.cs
...k.Base/FLY.Thick.Base/Client/BorderSearchServiceClient.cs
+6
-13
IBorderSearchService.cs
...hick.Base/FLY.Thick.Base/IService/IBorderSearchService.cs
+7
-0
BORDERSEARCH_OBJ_INTERFACE.cs
...LY.Thick.Base/OBJ_INTERFACE/BORDERSEARCH_OBJ_INTERFACE.cs
+1
-1
BorderSearch.cs
Project.FLY.Thick.Base/FLY.Thick.Base/Server/BorderSearch.cs
+183
-181
BorderSearchPlastic.cs
...Y.Thick.Base/FLY.Thick.Base/Server/BorderSearchPlastic.cs
+67
-51
No files found.
Project.FLY.Thick.Base/FLY.Thick.Base.UI/FLY.Thick.Base.UI.csproj
View file @
290ed8de
...
...
@@ -149,6 +149,9 @@
<Compile
Include=
"OnInit\OnInitLanguage.cs"
/>
<Compile
Include=
"OnInit\OnInitOSK.cs"
/>
<Compile
Include=
"PasswordAuthorize.cs"
/>
<Compile
Include=
"PgBorderSearchPlastic.xaml.cs"
>
<DependentUpon>
PgBorderSearchPlastic.xaml
</DependentUpon>
</Compile>
<Compile
Include=
"PgBorderSearch.xaml.cs"
>
<DependentUpon>
PgBorderSearch.xaml
</DependentUpon>
</Compile>
...
...
@@ -299,6 +302,10 @@
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
</Page>
<Page
Include=
"PgBorderSearchPlastic.xaml"
>
<Generator>
MSBuild:Compile
</Generator>
<SubType>
Designer
</SubType>
</Page>
<Page
Include=
"PgBorderSearch.xaml"
>
<SubType>
Designer
</SubType>
<Generator>
MSBuild:Compile
</Generator>
...
...
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearch.xaml
View file @
290ed8de
...
...
@@ -301,6 +301,25 @@
</StackPanel>
</StackPanel>
<StackPanel Margin="5">
<TextBlock Style="{StaticResource TextBlockStyle_FieldHeader}" Text="期望膜宽" />
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource TextBlockStyle_FieldContent}">
<Run Text="{Binding ProductWidth,Mode=OneWay}"/>
</TextBlock>
<TextBlock Style="{StaticResource TextBlockStyle_FieldContent_mm_interval}" Text="|"/>
<TextBlock Style="{StaticResource TextBlockStyle_FieldContent_mm}" >
<Run >
<MultiBinding Converter="{StaticResource p2mmconv}" Mode="OneWay" StringFormat="{}{0:F0}">
<Binding Path="ProductWidth" />
<Binding Path="DataContext.Encoder1_mmpp" ElementName="grid_initparam"/>
</MultiBinding>
</Run>
<Run Text="mm"/>
</TextBlock>
</StackPanel>
</StackPanel>
</WrapPanel>
<WindowsFormsHost Grid.Row="1" Margin="5">
<Chr:Chart x:Name="chart1"/>
...
...
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearch.xaml.cs
View file @
290ed8de
...
...
@@ -42,8 +42,8 @@ namespace FLY.Thick.Base.UI
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
chartArea1
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Legend
legend1
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Legend
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_datas
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_border
_forw
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_border_backw
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_border
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
//
// chart1
...
...
@@ -128,44 +128,24 @@ namespace FLY.Thick.Base.UI
series_datas
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_datas
.
ShadowOffset
=
2
;
series_border
.
Name
=
"series_border"
;
series_border
.
LegendText
=
"边界点"
;
series_border
.
ChartArea
=
chartArea1
.
Name
;
series_border
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Point
;
series_border
.
Color
=
System
.
Drawing
.
Color
.
Violet
;
series_border
.
BorderColor
=
System
.
Drawing
.
Color
.
DarkViolet
;
series_border
.
BorderWidth
=
3
;
series_border_forw
.
Name
=
"series_border_forw"
;
series_border_forw
.
LegendText
=
"正向边界点"
;
series_border_forw
.
ChartArea
=
chartArea1
.
Name
;
series_border_forw
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Point
;
series_border_forw
.
Color
=
System
.
Drawing
.
Color
.
Green
;
series_border_forw
.
BorderColor
=
System
.
Drawing
.
Color
.
DarkGreen
;
series_border_forw
.
BorderWidth
=
3
;
series_border_forw
.
MarkerSize
=
6
;
series_border_forw
.
MarkerStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
MarkerStyle
.
Circle
;
series_border_forw
.
MarkerBorderColor
=
System
.
Drawing
.
Color
.
DarkGreen
;
series_border_forw
.
MarkerColor
=
System
.
Drawing
.
Color
.
Green
;
series_border_forw
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_border_forw
.
ShadowOffset
=
2
;
series_border_backw
.
Name
=
"series_border_backw"
;
series_border_backw
.
LegendText
=
"反向边界点"
;
series_border_backw
.
ChartArea
=
chartArea1
.
Name
;
series_border_backw
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Point
;
series_border_backw
.
Color
=
System
.
Drawing
.
Color
.
Orange
;
series_border_backw
.
BorderColor
=
System
.
Drawing
.
Color
.
DarkOrange
;
series_border_backw
.
BorderWidth
=
3
;
series_border_backw
.
MarkerSize
=
6
;
series_border_backw
.
MarkerStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
MarkerStyle
.
Circle
;
series_border_backw
.
MarkerBorderColor
=
System
.
Drawing
.
Color
.
Orange
;
series_border_backw
.
MarkerColor
=
System
.
Drawing
.
Color
.
DarkOrange
;
series_border_backw
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_border_backw
.
ShadowOffset
=
2
;
series_border
.
MarkerSize
=
6
;
series_border
.
MarkerStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
MarkerStyle
.
Circle
;
series_border
.
MarkerBorderColor
=
System
.
Drawing
.
Color
.
DarkViolet
;
series_border
.
MarkerColor
=
System
.
Drawing
.
Color
.
Violet
;
series_border
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_border
.
ShadowOffset
=
2
;
chart1
.
Series
.
Add
(
series_datas
);
chart1
.
Series
.
Add
(
series_border_forw
);
chart1
.
Series
.
Add
(
series_border_backw
);
chart1
.
Series
.
Add
(
series_border
);
#
endregion
chart1
.
Name
=
"chart1"
;
...
...
@@ -296,18 +276,6 @@ namespace FLY.Thick.Base.UI
BorderSearchService
.
PropertyChanged
+=
MBorderSearchService_PropertyChanged
;
BorderSearchService
.
Border_Forw
.
PropertyChanged
+=
(
s
,
e
)
=>
{
FObjBase
.
PollModule
.
Current
.
Poll_JustOnce
(
UpdateBorder
,
this
,
MARKNO_UPDATE_BORDER
);
};
BorderSearchService
.
Border_Backw
.
PropertyChanged
+=
(
s
,
e
)
=>
{
FObjBase
.
PollModule
.
Current
.
Poll_JustOnce
(
UpdateBorder
,
this
,
MARKNO_UPDATE_BORDER
);
};
InitParamService
.
PropertyChanged
+=
MInitParamService_PropertyChanged
;
UpdateX
();
...
...
@@ -341,8 +309,8 @@ namespace FLY.Thick.Base.UI
{
this
.
getViewReponse
=
retData
as
BorderSearchGetViewReponse
;
UpdateDatas
();
FObjBase
.
PollModule
.
Current
.
Poll_JustOnce
(
UpdateBorder
,
this
,
MARKNO_UPDATE_BORDER
);
UpdateBorder
();
UpdateSensorWidth
(
);
},
this
);
}
private
void
Chart1_PrePaint
(
object
sender
,
ChartPaintEventArgs
e
)
...
...
@@ -510,11 +478,20 @@ namespace FLY.Thick.Base.UI
}
void
UpdateBorder
(
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series
,
Misc
.
Range
border
)
void
UpdateBorder
()
{
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series
=
chart1
.
Series
[
"series_border"
];
series
.
Points
.
Clear
();
if
(
getViewReponse
==
null
)
return
;
Misc
.
Range
border
=
getViewReponse
.
border
;
if
(
border
==
null
)
return
;
if
(!
border
.
IsValid
)
return
;
if
(!
UpdateBorder_pos
(
series
,
border
.
Begin
))
return
;
...
...
@@ -522,33 +499,32 @@ namespace FLY.Thick.Base.UI
return
;
}
void
UpdateBorder
()
{
UpdateBorder
(
chart1
.
Series
[
"series_border_forw"
],
BorderSearchService
.
Border_Forw
);
UpdateBorder
(
chart1
.
Series
[
"series_border_backw"
],
BorderSearchService
.
Border_Backw
);
UpdateSensorWidth
();
}
void
UpdateSensorWidth
()
{
StripLinesCollection
stripLines
=
chart1
.
ChartAreas
[
0
].
AxisX
.
StripLines
;
stripLines
.
Clear
();
if
(
getViewReponse
==
null
)
return
;
Misc
.
Range
border
=
getViewReponse
.
border
;
if
(!
BorderSearchService
.
Border_Forw
.
IsValid
)
if
(
border
==
null
)
return
;
if
(!
border
.
IsValid
)
return
;
StripLine
stripline
=
new
StripLine
();
stripline
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(
64
,
System
.
Drawing
.
Color
.
Green
);
stripline
.
Interval
=
0
;
stripline
.
IntervalOffset
=
BorderSearchService
.
Border_Forw
.
Begin
;
stripline
.
IntervalOffset
=
border
.
Begin
;
stripline
.
StripWidth
=
BorderSearchService
.
SensorWidth
;
stripLines
.
Add
(
stripline
);
stripline
=
new
StripLine
();
stripline
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(
64
,
System
.
Drawing
.
Color
.
Green
);
stripline
.
Interval
=
0
;
stripline
.
IntervalOffset
=
BorderSearchService
.
Border_Forw
.
End
-
BorderSearchService
.
SensorWidth
;
stripline
.
IntervalOffset
=
border
.
End
-
BorderSearchService
.
SensorWidth
;
stripline
.
StripWidth
=
BorderSearchService
.
SensorWidth
;
stripLines
.
Add
(
stripline
);
}
...
...
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearchPlastic.xaml
0 → 100644
View file @
290ed8de
This diff is collapsed.
Click to expand it.
Project.FLY.Thick.Base/FLY.Thick.Base.UI/PgBorderSearchPlastic.xaml.cs
0 → 100644
View file @
290ed8de
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Windows
;
using
System.Windows.Controls
;
using
System.Windows.Data
;
using
System.Windows.Documents
;
using
System.Windows.Input
;
using
System.Windows.Media
;
using
System.Windows.Media.Imaging
;
using
System.Windows.Navigation
;
using
System.Windows.Shapes
;
using
System.Net
;
using
FLY.Thick.Base.Client
;
using
System.Windows.Forms.DataVisualization.Charting
;
using
System.Drawing
;
using
Unity
;
using
FLY.Thick.Base.IService
;
using
System.ComponentModel
;
using
Misc
;
using
GalaSoft.MvvmLight.Command
;
using
FLY.Thick.Base.Server
;
namespace
FLY.Thick.Base.UI
{
/// <summary>
/// Page_BorderSearch.xaml 的交互逻辑
/// </summary>
public
partial
class
PgBorderSearchPlastic
:
Page
{
PgBorderSearchVm
viewModel
;
public
PgBorderSearchPlastic
()
{
InitializeComponent
();
InitializeChart
();
}
void
InitializeChart
()
{
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
chartArea1
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartArea
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Legend
legend1
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Legend
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_datas
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_border_forw
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
series_border_backw
=
new
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Series
();
//
// chart1
//
//this.chart1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(211)), ((System.Byte)(223)), ((System.Byte)(240)));
//this.chart1.BackSecondaryColor = System.Drawing.Color.White;
//this.chart1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
//this.chart1.BorderlineColor = System.Drawing.Color.FromArgb(((System.Byte)(26)), ((System.Byte)(59)), ((System.Byte)(105)));
//this.chart1.BorderlineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
//this.chart1.BorderlineWidth = 2;
//this.chart1.BorderSkin.SkinStyle = System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss;
#
region
chartArea
#
region
chartArea1
chartArea1
.
Name
=
"chartArea1"
;
chartArea1
.
AxisX
.
IsLabelAutoFit
=
false
;
chartArea1
.
AxisX
.
LabelStyle
.
Font
=
new
System
.
Drawing
.
Font
(
"Trebuchet MS"
,
8.25F
,
System
.
Drawing
.
FontStyle
.
Bold
);
//chartArea1.AxisX.LabelStyle.IsEndLabelVisible = false;
chartArea1
.
AxisX
.
LineColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)));
chartArea1
.
AxisX
.
MajorGrid
.
LineColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)));
chartArea1
.
AxisX
.
Title
=
"位置(脉冲)"
;
chartArea1
.
AxisY
.
IsLabelAutoFit
=
false
;
chartArea1
.
AxisY
.
LabelStyle
.
Font
=
new
System
.
Drawing
.
Font
(
"Trebuchet MS"
,
8.25F
,
System
.
Drawing
.
FontStyle
.
Bold
);
chartArea1
.
AxisY
.
LineColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)));
chartArea1
.
AxisY
.
MajorGrid
.
LineColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)));
chartArea1
.
AxisY
.
Title
=
"AD值"
;
//chartArea1.AxisY.IsStartedFromZero = false;
chartArea1
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
165
)),
((
System
.
Byte
)(
191
)),
((
System
.
Byte
)(
228
)));
chartArea1
.
BackSecondaryColor
=
System
.
Drawing
.
Color
.
White
;
chartArea1
.
BackGradientStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
GradientStyle
.
TopBottom
;
chartArea1
.
BorderColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)),
((
System
.
Byte
)(
64
)));
chartArea1
.
BorderDashStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartDashStyle
.
Solid
;
chartArea1
.
CursorX
.
IsUserEnabled
=
true
;
chartArea1
.
CursorX
.
IsUserSelectionEnabled
=
true
;
chartArea1
.
CursorX
.
SelectionColor
=
System
.
Drawing
.
SystemColors
.
Highlight
;
chartArea1
.
CursorY
.
IsUserEnabled
=
true
;
chartArea1
.
CursorY
.
IsUserSelectionEnabled
=
true
;
chartArea1
.
CursorY
.
SelectionColor
=
System
.
Drawing
.
SystemColors
.
Highlight
;
chartArea1
.
Position
.
Auto
=
true
;
chartArea1
.
ShadowColor
=
System
.
Drawing
.
Color
.
Transparent
;
#
endregion
this
.
chart1
.
ChartAreas
.
Add
(
chartArea1
);
#
endregion
#
region
legend
legend1
.
Name
=
"legend1"
;
legend1
.
Docking
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
Docking
.
Right
;
legend1
.
Alignment
=
System
.
Drawing
.
StringAlignment
.
Far
;
legend1
.
LegendStyle
=
LegendStyle
.
Column
;
legend1
.
IsDockedInsideChartArea
=
true
;
legend1
.
DockedToChartArea
=
chartArea1
.
Name
;
legend1
.
IsTextAutoFit
=
false
;
legend1
.
BackColor
=
System
.
Drawing
.
Color
.
Transparent
;
legend1
.
Font
=
new
System
.
Drawing
.
Font
(
"Trebuchet MS"
,
8.25F
,
System
.
Drawing
.
FontStyle
.
Bold
);
legend1
.
Position
.
Auto
=
true
;
chart1
.
Legends
.
Add
(
legend1
);
#
endregion
#
region
series
series_datas
.
Name
=
"series_datas"
;
series_datas
.
BorderColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
System
.
Byte
)(
180
)),
((
System
.
Byte
)(
26
)),
((
System
.
Byte
)(
59
)),
((
System
.
Byte
)(
105
)));
series_datas
.
BorderWidth
=
2
;
series_datas
.
ChartArea
=
chartArea1
.
Name
;
series_datas
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Line
;
series_datas
.
Color
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
220
)))),
((
int
)(((
byte
)(
65
)))),
((
int
)(((
byte
)(
140
)))),
((
int
)(((
byte
)(
240
)))));
series_datas
.
LegendText
=
"AD数据"
;
series_datas
.
IsVisibleInLegend
=
true
;
series_datas
.
XValueType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartValueType
.
Int32
;
series_datas
.
YValueType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartValueType
.
Int32
;
series_datas
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_datas
.
ShadowOffset
=
2
;
series_border_forw
.
Name
=
"series_border_forw"
;
series_border_forw
.
LegendText
=
"正向边界点"
;
series_border_forw
.
ChartArea
=
chartArea1
.
Name
;
series_border_forw
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Point
;
series_border_forw
.
Color
=
System
.
Drawing
.
Color
.
Green
;
series_border_forw
.
BorderColor
=
System
.
Drawing
.
Color
.
DarkGreen
;
series_border_forw
.
BorderWidth
=
3
;
series_border_forw
.
MarkerSize
=
6
;
series_border_forw
.
MarkerStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
MarkerStyle
.
Circle
;
series_border_forw
.
MarkerBorderColor
=
System
.
Drawing
.
Color
.
DarkGreen
;
series_border_forw
.
MarkerColor
=
System
.
Drawing
.
Color
.
Green
;
series_border_forw
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_border_forw
.
ShadowOffset
=
2
;
series_border_backw
.
Name
=
"series_border_backw"
;
series_border_backw
.
LegendText
=
"反向边界点"
;
series_border_backw
.
ChartArea
=
chartArea1
.
Name
;
series_border_backw
.
ChartType
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
SeriesChartType
.
Point
;
series_border_backw
.
Color
=
System
.
Drawing
.
Color
.
Orange
;
series_border_backw
.
BorderColor
=
System
.
Drawing
.
Color
.
DarkOrange
;
series_border_backw
.
BorderWidth
=
3
;
series_border_backw
.
MarkerSize
=
6
;
series_border_backw
.
MarkerStyle
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
MarkerStyle
.
Circle
;
series_border_backw
.
MarkerBorderColor
=
System
.
Drawing
.
Color
.
Orange
;
series_border_backw
.
MarkerColor
=
System
.
Drawing
.
Color
.
DarkOrange
;
series_border_backw
.
ShadowColor
=
System
.
Drawing
.
Color
.
Black
;
series_border_backw
.
ShadowOffset
=
2
;
chart1
.
Series
.
Add
(
series_datas
);
chart1
.
Series
.
Add
(
series_border_forw
);
chart1
.
Series
.
Add
(
series_border_backw
);
#
endregion
chart1
.
Name
=
"chart1"
;
chart1
.
Palette
=
System
.
Windows
.
Forms
.
DataVisualization
.
Charting
.
ChartColorPalette
.
BrightPastel
;
//chart1.Location = new System.Drawing.Point(0, 0);
//chart1.PrePaint += Chart1_PrePaint;
}
[
InjectionMethod
]
public
void
Init
(
IBorderSearchService
borderSearchService
,
IInitParamService
initParamService
,
IDynAreaService
dynAreaService
)
{
viewModel
=
new
PgBorderSearchVm
();
viewModel
.
Init
(
borderSearchService
,
initParamService
,
dynAreaService
,
chart1
);
this
.
DataContext
=
viewModel
;
}
}
}
Project.FLY.Thick.Base/FLY.Thick.Base/Client/BorderSearchServiceClient.cs
View file @
290ed8de
...
...
@@ -96,6 +96,11 @@ namespace FLY.Thick.Base.Client
public
int
N3
{
get
;
set
;
}
/// <summary>
/// 产品宽度,设置值 单位:脉冲
/// 当膜超过范围(没有经过阀值),就使用它,猜边界在哪
/// </summary>
public
int
ProductWidth
{
get
;
set
;
}
#
endregion
...
...
@@ -105,19 +110,7 @@ namespace FLY.Thick.Base.Client
}
public
void
Apply
()
{
var
p
=
new
BORDERSEARCH_OBJ_INTERFACE
.
Pack_Params
();
p
.
Enable
=
Enable
;
p
.
TempADBySet
=
TempADBySet
;
p
.
TempAD
=
TempAD
;
p
.
TempRange
=
TempRange
;
p
.
N
=
N
;
p
.
N2
=
N2
;
p
.
N3
=
N3
;
p
.
Valid
=
Valid
;
p
.
SensorWidth
=
SensorWidth
;
p
.
IsBreakDetect
=
IsBreakDetect
;
p
.
IsTempRangeByPercent
=
IsTempRangeByPercent
;
p
.
TempRangePercent
=
TempRangePercent
;
var
p
=
BORDERSEARCH_OBJ_INTERFACE
.
Mapper
.
Map
<
BORDERSEARCH_OBJ_INTERFACE
.
Pack_Params
>(
this
);
string
json
=
Newtonsoft
.
Json
.
JsonConvert
.
SerializeObject
(
p
);
//获取所有数据,设置推送
...
...
Project.FLY.Thick.Base/FLY.Thick.Base/IService/IBorderSearchService.cs
View file @
290ed8de
...
...
@@ -99,6 +99,12 @@ namespace FLY.Thick.Base.IService
/// 数据更新时间
/// </summary>
DateTime
UpdateTime
{
get
;
}
/// <summary>
/// 产品宽度,设置值 单位:脉冲
/// 当膜超过范围(没有经过阀值),就使用它,猜边界在哪
/// </summary>
int
ProductWidth
{
get
;
}
#
endregion
...
...
@@ -122,5 +128,6 @@ namespace FLY.Thick.Base.IService
public
int
posOfGrid
;
public
int
gridBegin
;
public
int
[]
dat
;
public
Range
border
;
}
}
Project.FLY.Thick.Base/FLY.Thick.Base/OBJ_INTERFACE/BORDERSEARCH_OBJ_INTERFACE.cs
View file @
290ed8de
...
...
@@ -41,7 +41,7 @@ namespace FLY.Thick.Base.OBJ_INTERFACE
public
int
Width
;
public
int
Mid
;
public
DateTime
UpdateTime
;
public
int
ProductWidth
;
}
#
endregion
#
region
GetValue
...
...
Project.FLY.Thick.Base/FLY.Thick.Base/Server/BorderSearch.cs
View file @
290ed8de
This diff is collapsed.
Click to expand it.
Project.FLY.Thick.Base/FLY.Thick.Base/Server/BorderSearchPlastic.cs
View file @
290ed8de
...
...
@@ -18,61 +18,30 @@ namespace FLY.Thick.Base.Server
{
}
/// <summary>
///
放入grid数据,分析边界
///
找空气与膜均值的 中间位置
/// </summary>
/// <param name="direction"></param>
/// <param name="posOfGrid"></param>
/// <param name="gridBegin"></param>
/// <param name="dat"></param>
/// <returns></returns>
public
override
bool
FindFilm
(
DIRECTION
direction
,
int
posOfGrid
,
int
gridBegin
,
int
[]
dat
)
void
FindFilm_Mean
(
int
[]
dat
,
int
sensor_grid
,
int
n2_grid
,
ref
int
borderbegin_grid
,
ref
int
borderend_grid
)
{
//把数据记录下来
getViewReponse
=
new
BorderSearchGetViewReponse
()
{
direction
=
direction
,
posOfGrid
=
posOfGrid
,
gridBegin
=
gridBegin
,
dat
=
dat
};
UpdateTime
=
DateTime
.
Now
;
//这些是AD值
//转为 dat 的序号
int
validbegin_grid
=
Valid
.
Begin
/
posOfGrid
-
gridBegin
;
int
validend_grid
=
Valid
.
End
/
posOfGrid
-
gridBegin
;
int
borderbegin_grid
;
//validbegin_grid;
int
borderend_grid
;
//validend_grid;
if
(!
FindFilm_Threshold
(
dat
,
validbegin_grid
,
validend_grid
,
TempAD
,
TempRange
,
out
borderbegin_grid
,
out
borderend_grid
))
return
false
;
//N2 只是用来判断一下膜够不够宽而已,没用
int
N2_grid
=
(
N2
*
3
+
SensorWidth
)
/
posOfGrid
;
if
((
borderend_grid
-
borderbegin_grid
)
<
N2_grid
)
//膜太短
return
false
;
Range
r1_grid
=
new
Range
();
//算膜中间的平均值
r1_grid
.
Begin
=
borderbegin_grid
+(
SensorWidth
+
N2
)
/
posOfG
rid
;
r1_grid
.
End
=
borderend_grid
-(
SensorWidth
+
N2
)
/
posOfGrid
;
r1_grid
.
Begin
=
borderbegin_grid
+
sensor_grid
+
n2_g
rid
;
r1_grid
.
End
=
borderend_grid
-
(
sensor_grid
+
n2_grid
)
;
int
avg
=
MyMath
.
Avg
(
dat
,
r1_grid
.
Begin
,
r1_grid
.
End
);
//算空气的平均值
Range
r2_grid
=
new
Range
();
r2_grid
.
Begin
=
borderbegin_grid
-
(
SensorWidth
)
/
posOfG
rid
;
r2_grid
.
End
=
borderend_grid
+
(
SensorWidth
)
/
posOfG
rid
;
r2_grid
.
Begin
=
borderbegin_grid
-
sensor_g
rid
;
r2_grid
.
End
=
borderend_grid
+
sensor_g
rid
;
if
(
r2_grid
.
Begin
<
0
)
r2_grid
.
Begin
=
0
;
if
(
r2_grid
.
End
>
dat
.
Length
-
1
)
r2_grid
.
End
=
dat
.
Length
-
1
;
int
avg1
=
MyMath
.
Avg
(
dat
,
0
,
r1_grid
.
Begin
);
int
avg2
=
MyMath
.
Avg
(
dat
,
r1_grid
.
End
,
dat
.
Length
-
1
);
int
avg1
=
MyMath
.
Avg
(
dat
,
0
,
r1_grid
.
Begin
);
int
avg2
=
MyMath
.
Avg
(
dat
,
r1_grid
.
End
,
dat
.
Length
-
1
);
int
threshold
;
if
((
Misc
.
MyBase
.
ISVALIDATA
(
avg1
))
&&
(
Misc
.
MyBase
.
ISVALIDATA
(
avg2
)))
{
...
...
@@ -113,23 +82,70 @@ namespace FLY.Thick.Base.Server
}
}
}
}
/// <summary>
/// 放入grid数据,分析边界
/// </summary>
/// <param name="direction"></param>
/// <param name="posOfGrid"></param>
/// <param name="gridBegin"></param>
/// <param name="dat"></param>
/// <returns></returns>
public
override
bool
FindFilm
(
DIRECTION
direction
,
int
posOfGrid
,
int
gridBegin
,
int
[]
dat
)
{
//把数据记录下来
getViewReponse
=
new
BorderSearchGetViewReponse
()
{
direction
=
direction
,
posOfGrid
=
posOfGrid
,
gridBegin
=
gridBegin
,
dat
=
dat
};
UpdateTime
=
DateTime
.
Now
;
//这些是AD值
//转为 dat 的序号
int
validbegin_grid
=
Valid
.
Begin
/
posOfGrid
-
gridBegin
;
int
validend_grid
=
Valid
.
End
/
posOfGrid
-
gridBegin
;
if
(!
FindFilm_Threshold
(
dat
,
validbegin_grid
,
validend_grid
,
out
int
borderbegin_grid
,
out
int
borderend_grid
,
out
bool
isBorderBeginOk
,
out
bool
isBorderEndOk
))
{
return
false
;
}
//N2 只是用来判断一下膜够不够宽而已,没用
int
N2_grid
=
(
N2
*
3
+
SensorWidth
)
/
posOfGrid
;
if
((
borderend_grid
-
borderbegin_grid
)
<
N2_grid
)
//膜太短
return
false
;
FindFilm_Mean
(
dat
,
SensorWidth
/
posOfGrid
,
N2
/
posOfGrid
,
ref
borderbegin_grid
,
ref
borderend_grid
);
int
idx
=
(
direction
==
DIRECTION
.
FORWARD
)
?
0
:
1
;
var
border
=
borders
[
idx
];
int
idx
=
0
;
if
(
direction
==
DIRECTION
.
BACKWARD
)
idx
=
1
;
//转为 脉冲
border
[
idx
].
Begin
=
(
borderbegin_grid
+
gridBegin
)
*
posOfGrid
-
SensorWidth
/
2
;
border
[
idx
].
End
=
(
borderend_grid
+
gridBegin
)
*
posOfGrid
+
SensorWidth
/
2
;
border
.
value
.
Begin
=
(
borderbegin_grid
+
gridBegin
)
*
posOfGrid
;
border
.
value
.
End
=
(
borderend_grid
+
gridBegin
)
*
posOfGrid
;
border
.
isBeginOk
=
true
;
border
.
isEndOk
=
true
;
border
.
UpdateReal
(
SensorWidth
);
getViewReponse
.
border
=
border
.
value
;
if
(
border
.
All
(
b
=>
b
.
IsValid
))
if
(
border
s
.
All
(
b
=>
b
.
value
.
IsValid
))
{
Border
.
Begin
=
(
int
)
(
border
.
Average
(
b
=>
b
.
Begin
)
+
SensorWidth
/
2.0
);
Border
.
End
=
(
int
)
(
border
.
Average
(
b
=>
b
.
End
)
-
SensorWidth
/
2.0
);
Border
.
Begin
=
(
int
)
borders
.
Average
(
b
=>
b
.
real
.
Begin
);
Border
.
End
=
(
int
)
borders
.
Average
(
b
=>
b
.
real
.
End
);
}
else
if
(
border
[
idx
]
.
IsValid
)
else
if
(
border
.
value
.
IsValid
)
{
Border
.
Begin
=
border
[
idx
].
Begin
+
SensorWidth
/
2
;
Border
.
End
=
border
[
idx
].
End
-
SensorWidth
/
2
;
Border
.
Copy
(
border
.
real
);
}
Width
=
Border
.
Width
;
Mid
=
Border
.
Mid
;
...
...
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