Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
T
thick-casting
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-casting
Commits
37103d64
Commit
37103d64
authored
Dec 24, 2021
by
潘栩锋
🚴
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.优化 profile界面 右边的列表宽度
2.优化 代码
parent
7cd952a2
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
345 additions
and
290 deletions
+345
-290
AssemblyInfo.cs
...LY.Thick.FilmCasting.UI.Client/Properties/AssemblyInfo.cs
+2
-2
ExcelOuput.cs
...ting/FLY.Thick.FilmCasting.UI.DbViewer/Core/ExcelOuput.cs
+192
-93
AssemblyInfo.cs
....Thick.FilmCasting.UI.DbViewer/Properties/AssemblyInfo.cs
+4
-4
AssemblyInfo.cs
...LY.Thick.FilmCasting.UI.Server/Properties/AssemblyInfo.cs
+1
-1
PgProfile.xaml
...Thick.FilmCasting/FLY.Thick.FilmCasting.UI/PgProfile.xaml
+4
-4
Styles.xaml
...k.FilmCasting/FLY.Thick.FilmCasting.UI/Themes/Styles.xaml
+0
-1
ScanGraphVm.cs
...LY.Thick.FilmCasting.UI/UiModule/ScanGraph/ScanGraphVm.cs
+1
-1
ScanGraphVmUt.cs
....Thick.FilmCasting.UI/UiModule/ScanGraph/ScanGraphVmUt.cs
+14
-10
TrendGraphVm.cs
....Thick.FilmCasting.UI/UiModule/TrendGraph/TrendGraphVm.cs
+6
-7
TrendGraphVmUt.cs
...hick.FilmCasting.UI/UiModule/TrendGraph/TrendGraphVmUt.cs
+23
-105
GM_Scan.cs
...Thick.FilmCasting/FLY.Thick.FilmCasting/Server/GM_Scan.cs
+47
-52
BulkDb.cs
....FilmCasting/FLY.Thick.FilmCasting/Server/Model/BulkDb.cs
+0
-1
HistoryDb.cs
...lmCasting/FLY.Thick.FilmCasting/Server/Model/HistoryDb.cs
+4
-0
thick_public
thick_public
+1
-1
3.get_exe.sh
脚本/3.get_exe.sh
+1
-1
filmCastingInstallZipVersionInfo.json
脚本/filmCastingInstallZipVersionInfo.json
+3
-2
版本描述.md
脚本/版本描述.md
+42
-5
No files found.
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI.Client/Properties/AssemblyInfo.cs
View file @
37103d64
...
...
@@ -51,6 +51,6 @@ using System.Windows;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("7.3.
0
.0")]
[assembly: AssemblyFileVersion("7.3.
0
.0")]
[assembly: AssemblyVersion("7.3.
4
.0")]
[assembly: AssemblyFileVersion("7.3.
4
.0")]
[assembly: Guid("BD20A921-953E-44CA-8FAB-4619D3CBCD06")]
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI.DbViewer/Core/ExcelOuput.cs
View file @
37103d64
using
FLY.Thick.FilmCasting.UI.DbViewer.Db
;
using
FLY.Thick.FilmCasting.Server.Model
;
using
FLY.Thick.FilmCasting.UI.DbViewer.Db
;
using
MahApps.Metro.Controls
;
using
MahApps.Metro.Controls.Dialogs
;
using
Misc
;
...
...
@@ -86,40 +87,6 @@ namespace FLY.Thick.FilmCasting.UI.DbViewer.Core
}
void
ToSheet
(
ExcelWorksheet
sheet
,
DataTable
dataTable
)
{
int
from_row
=
1
;
int
row
=
from_row
;
//添加标题
for
(
int
i
=
0
;
i
<
dataTable
.
Columns
.
Count
;
i
++)
{
int
col
=
i
+
1
;
sheet
.
Cells
[
row
,
col
].
Value
=
dataTable
.
Columns
[
i
].
ColumnName
;
//格式
sheet
.
Column
(
col
).
Style
.
Numberformat
.
Format
=
dataTable
.
Columns
[
i
].
Caption
;
}
row
++;
for
(
int
i
=
0
;
i
<
dataTable
.
Rows
.
Count
;
i
++)
{
for
(
int
j
=
0
;
j
<
dataTable
.
Columns
.
Count
;
j
++)
{
int
col
=
j
+
1
;
sheet
.
Cells
[
row
,
col
].
Value
=
dataTable
.
Rows
[
i
][
j
];
}
row
++;
}
int
colcnt
=
dataTable
.
Columns
.
Count
;
int
rowcnt
=
dataTable
.
Rows
.
Count
;
var
range
=
sheet
.
Cells
[
from_row
,
1
,
from_row
+
rowcnt
,
colcnt
];
var
tbl
=
sheet
.
Tables
.
Add
(
range
,
dataTable
.
TableName
);
tbl
.
TableStyle
=
TableStyles
.
Medium9
;
sheet
.
Cells
[
sheet
.
Dimension
.
Address
].
AutoFitColumns
();
}
void
SaveToXlsxThk
(
ExcelPackage
p
,
DbProfilePack
profilePack
)
{
if
(
profilePack
.
ScanDatas
==
null
||
profilePack
.
ScanDatas
.
Count
()
==
0
)
...
...
@@ -137,69 +104,52 @@ namespace FLY.Thick.FilmCasting.UI.DbViewer.Core
ExcelWorksheet
sheet
=
GetSheet
(
p
,
"扫描数据"
);
DataTable
dataTable
=
new
DataTable
(
"table_thk"
);
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"开始时间"
,
DataType
=
typeof
(
double
),
Caption
=
"yyyy-MM-dd HH:mm:ss"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"结束时间"
,
DataType
=
typeof
(
double
),
Caption
=
"HH:mm:ss"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"目标值"
,
DataType
=
typeof
(
double
),
Caption
=
"0.00"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"规格线%"
,
DataType
=
typeof
(
double
),
Caption
=
"0.0"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"斜率补偿"
,
DataType
=
typeof
(
double
),
Caption
=
"0.000"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"平移补偿"
,
DataType
=
typeof
(
double
),
Caption
=
"0.00"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"纵向位置(m)"
,
DataType
=
typeof
(
double
),
Caption
=
"0.0"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"线速度(m/min)"
,
DataType
=
typeof
(
double
),
Caption
=
"0.0"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"膜宽度(mm)"
,
DataType
=
typeof
(
double
),
Caption
=
"0"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"平均值(um)"
,
DataType
=
typeof
(
double
),
Caption
=
"0.00"
});
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
"2σ(%)"
,
DataType
=
typeof
(
double
),
Caption
=
"0.0"
});
for
(
int
i
=
0
;
i
<
boltCnt
;
i
++)
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
$"分区
{
i
+
1
}
(um)"
,
DataType
=
typeof
(
double
),
Caption
=
"0.0"
});
for
(
int
i
=
0
;
i
<
sampleCnt
;
i
++)
dataTable
.
Columns
.
Add
(
new
DataColumn
()
{
ColumnName
=
$"样品
{
i
}
AD"
,
DataType
=
typeof
(
double
),
Caption
=
"0"
});
CurrRowGrowUpReady
();
for
(
int
i
=
0
;
i
<
profilePack
.
ScanDatas
.
Count
();
i
++)
var
columnInfos
=
new
List
<
ColumnInfo
<
Lc_ScanData
>>
{
var
scanData
=
profilePack
.
ScanDatas
[
i
];
var
dataRow
=
dataTable
.
NewRow
();
dataRow
[
"开始时间"
]
=
scanData
.
Time
.
ToOADate
();
dataRow
[
"结束时间"
]
=
scanData
.
EndTime
.
ToOADate
();
dataRow
[
"目标值"
]
=
scanData
.
Target
;
dataRow
[
"规格线%"
]
=
scanData
.
TolerancePercent
*
100.0
;
dataRow
[
"斜率补偿"
]
=
scanData
.
K
;
dataRow
[
"平移补偿"
]
=
scanData
.
B
;
dataRow
[
"纵向位置(m)"
]
=
scanData
.
FilmPosition
;
dataRow
[
"线速度(m/min)"
]
=
scanData
.
FilmVelocity
;
dataRow
[
"膜宽度(mm)"
]
=
scanData
.
FilmWidth
;
double
avg
=
scanData
.
Thicks
.
AverageNoNull
();
double
sigma
=
scanData
.
Thicks
.
Sigma
();
dataRow
[
"平均值(um)"
]
=
avg
;
if
(
avg
>
0
)
{
double
sigma2p
=
sigma
/
avg
*
2
*
100
;
dataRow
[
"2σ(%)"
]
=
sigma2p
;
for
(
int
j
=
0
;
j
<
boltCnt
&&
j
<
scanData
.
Thicks
.
Count
();
j
++)
new
ColumnInfo
<
Lc_ScanData
>(
"开始时间"
,
typeof
(
double
),
"yyyy-MM-dd HH:mm:ss"
,
(
sender
)=>
sender
.
Time
.
ToOADate
()),
new
ColumnInfo
<
Lc_ScanData
>(
"结束时间"
,
typeof
(
double
),
"yyyy-MM-dd HH:mm:ss"
,
(
sender
)=>
sender
.
EndTime
.
ToOADate
()),
new
ColumnInfo
<
Lc_ScanData
>(
"目标值"
,
typeof
(
double
),
"0.00"
,
(
sender
)=>
sender
.
Target
),
new
ColumnInfo
<
Lc_ScanData
>(
"规格线%"
,
typeof
(
double
),
"0.0"
,
(
sender
)=>
sender
.
TolerancePercent
),
new
ColumnInfo
<
Lc_ScanData
>(
"斜率补偿"
,
typeof
(
double
),
"0.000"
,
(
sender
)=>
sender
.
K
),
new
ColumnInfo
<
Lc_ScanData
>(
"平移补偿"
,
typeof
(
double
),
"0.00"
,
(
sender
)=>
sender
.
B
),
new
ColumnInfo
<
Lc_ScanData
>(
"纵向位置(m)"
,
typeof
(
double
),
"0.000"
,
(
sender
)=>
sender
.
FilmPosition
),
new
ColumnInfo
<
Lc_ScanData
>(
"线速度(m/min)"
,
typeof
(
double
),
"0.0"
,
(
sender
)=>
sender
.
FilmVelocity
),
new
ColumnInfo
<
Lc_ScanData
>(
"膜宽度(mm)"
,
typeof
(
double
),
"0"
,
(
sender
)=>
sender
.
FilmWidth
),
new
ColumnInfo
<
Lc_ScanData
>(
"平均值(um)"
,
typeof
(
double
),
"0.00"
,
(
sender
)=>
sender
.
Avg
),
new
ColumnInfo
<
Lc_ScanData
>(
"2σ(%)"
,
typeof
(
double
),
"0.0"
,
(
sender
)=>{
double
avg
=
sender
.
Avg
;
double
sigma
=
sender
.
Thicks
.
Sigma
();
if
(
avg
>
0
)
{
var
v
=
scanData
.
Thicks
[
j
];
if
(!
double
.
IsNaN
(
v
))
{
dataRow
[
$"分区
{
j
+
1
}
(um)"
]
=
v
;
}
double
sigma2p
=
sigma
/
avg
*
2
*
100
;
return
sigma2p
;
}
}
if
(
scanData
.
SampleADs
!=
null
)
for
(
int
j
=
0
;
j
<
sampleCnt
&&
j
<
scanData
.
SampleADs
.
Count
();
j
++)
dataRow
[
$"样品
{
j
}
AD"
]
=
scanData
.
SampleADs
[
j
];
else
{
return
double
.
NaN
;
}
}),
new
ColumnInfo
<
Lc_ScanData
>((
i
)=>
$"分区
{
i
+
1
}
(um)"
,
typeof
(
double
),
"0.00"
,
boltCnt
,(
sender
,
i
)=>{
if
(
i
<
sender
.
Thicks
.
Count
())
return
sender
.
Thicks
[
i
];
else
return
null
;
}),
new
ColumnInfo
<
Lc_ScanData
>((
i
)=>
$"样品
{
i
}
AD"
,
typeof
(
double
),
"0"
,
sampleCnt
,(
sender
,
i
)=>{
if
(
i
<
sender
.
SampleADs
.
Count
())
return
sender
.
SampleADs
[
i
];
else
return
null
;
}),
};
dataTable
.
Rows
.
Add
(
dataRow
);
CurrRowGrowUping
(
i
);
}
CurrRowGrowUpReady
();
DataTable
dataTable
=
CreateDataTable
(
columnInfos
,
"table_thk"
,
profilePack
.
ScanDatas
,
CurrRowGrowUping
);
CurrRowGrowUpFinish
(
profilePack
.
ScanDatas
.
Count
());
ToSheet
(
sheet
,
dataTable
);
...
...
@@ -225,5 +175,154 @@ namespace FLY.Thick.FilmCasting.UI.DbViewer.Core
CurrRow
=
_currRow
+
cnt
;
}
#
region
填表格辅助工具
class
ColumnInfo
<
T
>
{
public
string
ColumnName
;
public
Type
DataType
;
public
string
Format
;
public
delegate
object
GetValueHanlder
(
T
sender
,
int
itemIdx
);
GetValueHanlder
getValue
;
public
bool
IsArray
;
public
int
ItemCount
;
public
delegate
string
GetColumnNameHanlder
(
int
itemIdx
);
GetColumnNameHanlder
getColumnName
;
public
ColumnInfo
(
string
columnName
,
Type
dataType
,
string
format
,
Func
<
T
,
object
>
getValue
)
{
ColumnName
=
columnName
;
DataType
=
dataType
;
Format
=
format
;
this
.
getValue
=
(
s
,
i
)
=>
getValue
(
s
);
}
public
ColumnInfo
(
string
columnName
,
Type
dataType
,
string
format
,
GetValueHanlder
getValue
)
{
ColumnName
=
columnName
;
DataType
=
dataType
;
Format
=
format
;
this
.
getValue
=
getValue
;
}
public
ColumnInfo
(
GetColumnNameHanlder
getColumnName
,
Type
dataType
,
string
format
,
int
itemCount
,
GetValueHanlder
getValue
)
{
IsArray
=
true
;
ItemCount
=
itemCount
;
this
.
getColumnName
=
getColumnName
;
DataType
=
dataType
;
Format
=
format
;
this
.
getValue
=
getValue
;
}
public
DataColumn
CreateDataColumn
()
{
return
new
DataColumn
()
{
ColumnName
=
ColumnName
,
DataType
=
DataType
,
Caption
=
Format
};
}
public
DataColumn
CreateDataColumn
(
int
itemIdx
)
{
return
new
DataColumn
()
{
ColumnName
=
getColumnName
(
itemIdx
),
DataType
=
DataType
,
Caption
=
Format
};
}
public
object
GetValue
(
T
sender
)
{
return
getValue
(
sender
,
0
);
}
public
object
GetValue
(
T
sender
,
int
index
)
{
return
getValue
(
sender
,
index
);
}
public
string
GetColumnName
(
int
index
)
{
return
getColumnName
(
index
);
}
public
string
GetColumnName
()
{
return
ColumnName
;
}
}
DataTable
CreateDataTable
<
T
>(
List
<
ColumnInfo
<
T
>>
columnInfos
,
string
tableName
,
IEnumerable
<
T
>
senders
,
Action
<
int
>
progressEvent
=
null
)
{
DataTable
dataTable
=
new
DataTable
(
tableName
);
for
(
int
i
=
0
;
i
<
columnInfos
.
Count
();
i
++)
{
var
columnInfo
=
columnInfos
[
i
];
if
(!
columnInfo
.
IsArray
)
{
dataTable
.
Columns
.
Add
(
columnInfo
.
CreateDataColumn
());
}
else
{
for
(
int
k
=
0
;
k
<
columnInfo
.
ItemCount
;
k
++)
{
dataTable
.
Columns
.
Add
(
columnInfo
.
CreateDataColumn
(
k
));
}
}
}
int
j
=
0
;
foreach
(
var
sender
in
senders
)
{
var
dataRow
=
dataTable
.
NewRow
();
for
(
int
i
=
0
;
i
<
columnInfos
.
Count
();
i
++)
{
var
columnInfo
=
columnInfos
[
i
];
if
(!
columnInfo
.
IsArray
)
{
string
columnName
=
columnInfo
.
GetColumnName
();
var
value
=
columnInfo
.
GetValue
(
sender
);
if
(
value
!=
null
)
dataRow
[
columnName
]
=
value
;
}
else
{
for
(
int
k
=
0
;
k
<
columnInfo
.
ItemCount
;
k
++)
{
string
columnName
=
columnInfo
.
GetColumnName
(
k
);
var
value
=
columnInfo
.
GetValue
(
sender
,
k
);
if
(
value
!=
null
)
dataRow
[
columnName
]
=
value
;
}
}
}
dataTable
.
Rows
.
Add
(
dataRow
);
progressEvent
?.
Invoke
(
j
);
j
++;
}
return
dataTable
;
}
void
ToSheet
(
ExcelWorksheet
sheet
,
DataTable
dataTable
)
{
int
from_row
=
1
;
int
row
=
from_row
;
//添加标题
for
(
int
i
=
0
;
i
<
dataTable
.
Columns
.
Count
;
i
++)
{
int
col
=
i
+
1
;
sheet
.
Cells
[
row
,
col
].
Value
=
dataTable
.
Columns
[
i
].
ColumnName
;
//格式
sheet
.
Column
(
col
).
Style
.
Numberformat
.
Format
=
dataTable
.
Columns
[
i
].
Caption
;
}
row
++;
for
(
int
i
=
0
;
i
<
dataTable
.
Rows
.
Count
;
i
++)
{
for
(
int
j
=
0
;
j
<
dataTable
.
Columns
.
Count
;
j
++)
{
int
col
=
j
+
1
;
sheet
.
Cells
[
row
,
col
].
Value
=
dataTable
.
Rows
[
i
][
j
];
}
row
++;
}
//int colcnt = dataTable.Columns.Count;
//int rowcnt = dataTable.Rows.Count;
//var range = sheet.Cells[from_row, 1, from_row + rowcnt, colcnt];
//var tbl = sheet.Tables.Add(range, dataTable.TableName);
//tbl.TableStyle = TableStyles.Medium9;
//sheet.Cells[sheet.Dimension.Address].AutoFitColumns();
}
#
endregion
}
}
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI.DbViewer/Properties/AssemblyInfo.cs
View file @
37103d64
...
...
@@ -8,11 +8,11 @@ using System.Windows;
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("枫莱尔数据库浏览")]
[assembly: AssemblyDescription("枫莱尔
电池
测厚仪 历史数据库浏览器")]
[assembly: AssemblyDescription("枫莱尔
流延
测厚仪 历史数据库浏览器")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("佛山市枫莱尔自动化技术有限公司")]
[assembly: AssemblyProduct("枫莱尔数据库浏览")]
[assembly: AssemblyCopyright("Copyright © 202
0
FlyAutomation")]
[assembly: AssemblyCopyright("Copyright © 202
1
FlyAutomation")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
...
...
@@ -51,6 +51,6 @@ using System.Windows;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("
6.5
.0.0")]
[assembly: AssemblyFileVersion("
6.5
.0.0")]
[assembly: AssemblyVersion("
7.0
.0.0")]
[assembly: AssemblyFileVersion("
7.0
.0.0")]
[assembly: Guid("5FE5D848-CD2B-42CC-8EBD-2029371CDFE2")]
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI.Server/Properties/AssemblyInfo.cs
View file @
37103d64
...
...
@@ -7,7 +7,7 @@ using System.Windows;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("
FLY.Thick.FilmCasting.UI.Server
")]
[assembly: AssemblyTitle("
枫莱尔--流延测厚仪服务器
")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("佛山市枫莱尔自动化技术有限公司")]
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/PgProfile.xaml
View file @
37103d64
...
...
@@ -15,7 +15,7 @@
<ResourceDictionary Source="pack://application:,,,/FLY.ControlLibrary;component/Themes/Dictionary_MyStyle.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Converter/Dictionary_MyConv.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="GroupBox"/>
<common:FilmCastingProfileParam x:Key="param" />
</ResourceDictionary>
</Page.Resources>
...
...
@@ -50,8 +50,8 @@
</Grid.RowDefinitions>
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="auto"
/>
<ColumnDefinition
Width="338*"
/>
<ColumnDefinition />
<ColumnDefinition
MaxWidth="400"
/>
</Grid.ColumnDefinitions>
<Grid x:Name="grid_dynarea" d:DataContext="{Binding DynArea}"/>
<ScrollViewer MinWidth="550" d:DataContext="{StaticResource param}" DataContext="{Binding Param}">
...
...
@@ -198,7 +198,7 @@
</StackPanel>
</StackPanel>
</ScrollViewer>
<ListBox Margin="{StaticResource ControlMargin}"
MinWidth="400"
Grid.Column="1" Background="{StaticResource Brushes.Activity}"
<ListBox Margin="{StaticResource ControlMargin}" Grid.Column="1" Background="{StaticResource Brushes.Activity}"
SelectedItem="{Binding SelectedItem}"
ItemsSource="{Binding ProfileList}">
<ListBox.Resources>
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/Themes/Styles.xaml
View file @
37103d64
...
...
@@ -6,7 +6,6 @@
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/Styles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/FLY.Thick.Base.UI;component/Themes/GraphStyle.xaml"/>
<!--<ResourceDictionary Source="GraphStyle.xaml"/>-->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
\ No newline at end of file
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/UiModule/ScanGraph/ScanGraphVm.cs
View file @
37103d64
...
...
@@ -577,7 +577,7 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
bulkDb
.
GetFrame
(
new
Pack_GetFrameRequest
()
{
Id
=
Number
,
Mix
=
graphparam
.
Mix
},
(
object
A
syncContext
,
object
retData
)
=>
(
object
a
syncContext
,
object
retData
)
=>
{
Pack_GetFrameReponse
reponse
=
retData
as
Pack_GetFrameReponse
;
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/UiModule/ScanGraph/ScanGraphVmUt.cs
View file @
37103d64
...
...
@@ -26,16 +26,20 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
void
SimuData
()
{
graphparam
=
new
ScanGraphItemParam
();
graphparam
.
IsPercent
=
true
;
graphparam
.
IsAutoTarget
=
true
;
graphparam
.
YRangePercent
=
3
;
graphparam
.
IsLineMode
=
false
;
profileParam
=
new
Common
.
FilmCastingProfileParam
();
profileParam
.
ScanRange
=
new
RangeStruct
(
10
,
110
);
profileParam
.
DataRange
=
new
RangeStruct
(
30
,
90
);
profileParam
.
Target
=
150
;
profileParam
.
TolerancePercent
=
0.02
;
graphparam
=
new
ScanGraphItemParam
{
IsPercent
=
true
,
IsAutoTarget
=
true
,
YRangePercent
=
3
,
IsLineMode
=
false
};
profileParam
=
new
Common
.
FilmCastingProfileParam
{
ScanRange
=
new
RangeStruct
(
10
,
110
),
DataRange
=
new
RangeStruct
(
30
,
90
),
Target
=
150
,
TolerancePercent
=
0.02
};
#
region
数据
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/UiModule/TrendGraph/TrendGraphVm.cs
View file @
37103d64
...
...
@@ -14,12 +14,11 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
{
public
class
TrendGraphVm
:
ITrendGraphVm
{
const
int
MARKNO_TEXTUP
=
1
;
/// <summary>
/// 自动切换为 最新视图模式 倒计时 初始值
/// </summary>
const
int
AutoKeepTotalSec
=
60
;
const
int
Len
=
100
;
protected
const
int
Len
=
100
;
/// <summary>
/// Y轴%显示,最小的中值
/// </summary>
...
...
@@ -116,9 +115,9 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
public
object
MapperNegative
{
get
;
protected
set
;
}
public
object
MapperValue
{
get
;
protected
set
;
}
TrendGraphItemParam
graphparam
;
protected
TrendGraphItemParam
graphparam
;
IBulkDbService
bulkDb
;
FilmCastingProfileParam
profileParam
;
protected
FilmCastingProfileParam
profileParam
;
DispatcherTimer
timer
;
public
TrendGraphVm
()
{
...
...
@@ -268,7 +267,7 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
UpdateY
();
}
}
void
UpdateY
()
protected
void
UpdateY
()
{
double
tolerance
=
this
.
profileParam
.
TolerancePercent
;
if
(
tolerance
<
MIN_TOLERANCE
)
{
...
...
@@ -282,7 +281,7 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
YMax
=
tolerance
*
graphparam
.
YRangePercent
;
YMin
=
-
tolerance
*
graphparam
.
YRangePercent
;
}
void
UpdateX
()
protected
void
UpdateX
()
{
XMax
=
Len
;
}
...
...
@@ -321,7 +320,7 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
return
2
*
v
.
Sigma
/
v
.
Value
;
}
}
void
UpdateAverage
()
protected
void
UpdateAverage
()
{
var
sigma2s
=
this
.
Values
.
Select
(
v
=>
ToSigma2Percent
(
v
));
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting.UI/UiModule/TrendGraph/TrendGraphVmUt.cs
View file @
37103d64
...
...
@@ -14,107 +14,19 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
{
public
TrendGraphVmUt
()
{
#
region
与数据无关界面参数
AreaColors
=
new
List
<
Brush
>();
AreaColors
.
AddRange
(
FLY
.
ControlLibrary
.
Themes
.
Styles
.
AreaColors
);
YFormatter
=
(
y
)
=>
{
double
percent
=
y
*
100
;
string
text
=
""
;
if
(
percent
==
0d
)
{
text
=
"0.0%"
;
}
else
if
(
percent
>
0
)
{
text
=
$"+
{
Math
.
Abs
(
percent
):
F1
}
%"
;
}
else
{
text
=
$"-
{
Math
.
Abs
(
percent
):
F1
}
%"
;
}
return
$"
{
text
,
6
}
"
;
};
XFormatter
=
(
x
)
=>
{
int
index
=
(
int
)
x
;
if
(
index
<
Values
.
Count
()
&&
index
>=
0
)
return
Values
[
index
].
Time
.
ToString
(
"HH:mm"
);
else
return
""
;
};
MapperPositive
=
Mappers
.
Xy
<
TrendValue
>()
.
X
((
value
,
index
)
=>
{
return
index
;
})
.
Y
(
value
=>
value
.
Sigma
/
value
.
Value
)
.
Fill
((
value
)
=>
{
double
percent
=
value
.
Sigma
/
value
.
Value
;
if
((
percent
>
Tolerance2YMax
)
||
(
percent
<
-
Tolerance2YMax
))
{
return
AreaColors
[
0
];
}
else
if
((
percent
>
ToleranceYMax
)
||
(
percent
<
-
ToleranceYMax
))
{
return
AreaColors
[
1
];
}
else
{
return
AreaColors
[
2
];
}
});
MapperNegative
=
Mappers
.
Xy
<
TrendValue
>()
.
X
((
value
,
index
)
=>
{
return
index
;
})
.
Y
(
value
=>
-
value
.
Sigma
/
value
.
Value
)
.
Fill
((
value
)
=>
{
double
percent
=
value
.
Sigma
/
value
.
Value
;
if
((
percent
>
Tolerance2YMax
)
||
(
percent
<
-
Tolerance2YMax
))
{
return
AreaColors
[
0
];
}
else
if
((
percent
>
ToleranceYMax
)
||
(
percent
<
-
ToleranceYMax
))
{
return
AreaColors
[
1
];
}
else
{
return
AreaColors
[
2
];
}
});
MapperValue
=
Mappers
.
Xy
<
TrendValue
>()
.
X
((
value
,
index
)
=>
{
return
index
;
})
.
Y
(
value
=>
value
.
Value
);
#
endregion
Values
.
Clear
();
#
region
数据
double
target
=
150
;
double
tolerancePercent
=
0.05
;
double
yRangePercent
=
3
;
int
len
=
200
;
int
len
=
Len
;
DateTime
startTime
=
DateTime
.
Now
;
TimeSpan
tsInterval
=
TimeSpan
.
FromSeconds
(
30
);
DateTime
time
=
startTime
;
int
id
=
312456
;
Random
random
=
new
Random
();
List
<
TrendValue
>
tvs
=
new
List
<
TrendValue
>();
for
(
int
i
=
0
;
i
<
len
;
i
++,
time
+=
tsInterval
)
{
TrendValue
tv
=
new
TrendValue
();
...
...
@@ -122,30 +34,36 @@ namespace FLY.Thick.FilmCasting.UI.UiModule
tv
.
Value
=
target
+
(
random
.
NextDouble
()
-
0.5
)
*
target
*
tolerancePercent
*
0.5
;
tv
.
Sigma
=
(
Math
.
Sin
(
i
*
Math
.
PI
/
len
)
*
3
)
*
target
*
tolerancePercent
*
random
.
NextDouble
();
Values
.
Add
(
tv
);
tvs
.
Add
(
tv
);
}
Values
.
AddRange
(
tvs
);
#
endregion
profileParam
=
new
Common
.
FilmCastingProfileParam
()
{
ScanRange
=
new
RangeStruct
(
10
,
110
),
DataRange
=
new
RangeStruct
(
30
,
90
),
Target
=
target
,
TolerancePercent
=
tolerancePercent
};
graphparam
=
new
TrendGraphItemParam
()
{
YRangePercent
=
yRangePercent
,
Mix
=
2
};
#
region
界面数据
XMax
=
len
;
UpdateX
();
Mix
=
2
;
BeginTime
=
Values
.
First
().
Time
;
EndTime
=
Values
.
Last
().
Time
;
Id
=
id
;
var
sigma2Percent
=
Values
.
Select
(
v
=>
2
*
v
.
Sigma
/
v
.
Value
);
Average
=
sigma2Percent
.
AverageNoNull
();
Max
=
sigma2Percent
.
Max
();
Min
=
sigma2Percent
.
Min
();
ToleranceYMax
=
tolerancePercent
;
ToleranceYMin
=
-
ToleranceYMax
;
Tolerance2YMax
=
ToleranceYMax
*
2
;
Tolerance2YMin
=
-
Tolerance2YMax
;
YMax
=
ToleranceYMax
*
yRangePercent
;
YMin
=
-
YMax
;
UpdateAverage
();
UpdateY
();
#
endregion
}
}
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/GM_Scan.cs
View file @
37103d64
...
...
@@ -47,7 +47,7 @@ namespace FLY.Thick.FilmCasting.Server
BoltMapFilmCasting
boltmap
,
BorderSearch
bordersearch
,
Reject
reject
,
DynArea
dynarea
,
AD2ThkHandler
ad2thk
,
FilmCastingProfileParam
profileParam
,
FilmCastingProfile
profile
,
FilmPositionDetect
filmPositionDetect
,
HistoryDb
historyD
B
,
BulkDb
bulkDB
HistoryDb
historyD
b
,
BulkDb
bulkDb
)
{
base
.
Init
(
flyAd
);
...
...
@@ -67,8 +67,8 @@ namespace FLY.Thick.FilmCasting.Server
this
.
profile
=
profile
;
this
.
filmPositionDetect
=
filmPositionDetect
;
this
.
historyDb
=
historyD
B
;
this
.
bulkDb
=
bulkD
B
;
this
.
historyDb
=
historyD
b
;
this
.
bulkDb
=
bulkD
b
;
scanMotion
.
Init
(
flyAd
,
gsample
,
initParam
,
warningSystem
);
...
...
@@ -196,21 +196,22 @@ namespace FLY.Thick.FilmCasting.Server
}
};
bool
ret
=
autoRollDown
.
CheckAtDataEndEvent
(
scanData
);
if
(
ret
)
autoRollDown
.
Reset
();
//下辊检测
if
(
historyDb
.
localDb
.
IsProfileFinished
)
{
//已经下辊
FinishProfile
();
AddProfile
();
}
else
if
(
ret
)
else
{
//需要下辊
FinishProfile
();
AddProfile
();
scanData
.
FilmPosition
=
0
;
if
(
autoRollDown
.
CheckAtDataEndEvent
(
scanData
))
{
//需要下辊
FinishProfile
();
AddProfile
();
scanData
.
FilmPosition
=
0
;
}
}
historyDb
.
AddScanData
(
scanData
);
...
...
@@ -291,7 +292,8 @@ namespace FLY.Thick.FilmCasting.Server
bulkDb
.
SetTempFrame
(
now
,
now
,
0
,
null
);
#
region
sqlite3
历史数据保存
CheckProfile
();
//检测是否新开一个profile,或者继续上一次 profile
CheckAddProfile
();
profileParam
.
PropertyChanged
+=
MProfileParam_PropertyChanged
;
#
endregion
...
...
@@ -321,51 +323,50 @@ namespace FLY.Thick.FilmCasting.Server
nameof
(
FilmCastingProfileParam
.
TolerancePercent
),
nameof
(
FilmCastingProfileParam
.
ScanRange
)
};
void
CheckProfile
()
void
Check
Add
Profile
()
{
if
(
historyDb
.
localDb
.
IsProfileFinished
)
{
//上一次已经结束
AddProfile
();
return
;
}
//复位 膜纵向位置
filmPositionDetect
.
Reset
(
0
);
autoRollDown
.
Reset
();
if
(
historyDb
.
localDb
.
CurrProfile
==
null
)
{
//没生产过
AddProfile
();
return
;
}
else
Db_Profile
db_Profile
=
historyDb
.
localDb
.
CurrProfile
;
//上一次还没结束
if
((
db_Profile
.
PName
!=
profileParam
.
PName
)
||
(
db_Profile
.
Batch
!=
profileParam
.
Batch
)
||
(
db_Profile
.
Number
!=
profileParam
.
Number
))
{
Db_Profile
db_Profile
=
historyDb
.
localDb
.
CurrProfile
;
//上一次还没结束
if
((
db_Profile
.
PName
!=
profileParam
.
PName
)
||
(
db_Profile
.
Batch
!=
profileParam
.
Batch
)
||
(
db_Profile
.
Number
!=
profileParam
.
Number
))
{
//任何一个不一致
//结束上次的
FinishProfile
();
//复位 膜纵向位置
filmPositionDetect
.
Reset
(
0
);
}
else
if
(
autoRollDown
.
CheckAtStart
())
{
//需要结束上次的
FinishProfile
();
//任何一个不一致
AddProfile
();
return
;
}
//复位 膜纵向位置
filmPositionDetect
.
Reset
(
0
);
}
else
{
//继续上一次生产!!!!
UpdateProfile
();
}
if
(
autoRollDown
.
CheckAtStart
())
{
//满足要求,下辊
AddProfile
();
return
;
}
//继续上一次生产!!!!
UpdateProfile
();
}
void
AddProfile
()
{
//复位 换profile 检查
autoRollDown
.
Reset
();
//复位 膜纵向位置
filmPositionDetect
.
Reset
(
0
);
...
...
@@ -403,11 +404,7 @@ namespace FLY.Thick.FilmCasting.Server
FObjBase
.
PollModule
.
Current
.
Poll_JustOnce
(
()
=>
{
if
(!
historyDb
.
localDb
.
IsProfileFinished
)
{
FinishProfile
();
}
AddProfile
();
//新
},
this
,
MARKNO_PROFILE_ADD
);
}
else
if
(
profile_propertynames_update
.
Contains
(
e
.
PropertyName
))
...
...
@@ -415,9 +412,7 @@ namespace FLY.Thick.FilmCasting.Server
FObjBase
.
PollModule
.
Current
.
Poll_JustOnce
(
()
=>
{
if
(!
historyDb
.
localDb
.
IsProfileFinished
)
UpdateProfile
();
//修改
UpdateProfile
();
//修改
},
this
,
MARKNO_PROFILE_CHANGED
);
}
}
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/Model/BulkDb.cs
View file @
37103d64
...
...
@@ -483,7 +483,6 @@ namespace FLY.Thick.FilmCasting.Server.Model
/// <param name="AsyncContext"></param>
public
async
void
GetTrend
(
Pack_GetTrendRequest
request
,
AsyncCBHandler
asyncDelegate
,
object
asyncContext
)
{
//TODO 需要异步
Pack_GetTrendReponse
reponse
=
new
Pack_GetTrendReponse
();
reponse
.
Request
=
request
;
...
...
Project.FLY.Thick.FilmCasting/FLY.Thick.FilmCasting/Server/Model/HistoryDb.cs
View file @
37103d64
...
...
@@ -100,6 +100,10 @@ namespace FLY.Thick.FilmCasting.Server.Model
Db_Profile
profile
)
{
if
(
localDb
.
CurrProfile
==
null
||
//没有数据!!!!
localDb
.
IsProfileFinished
==
true
)
//生产已经结束了
return
;
//添加 数据库必要的 field
profile
.
ID
=
localDb
.
CurrProfile
.
ID
;
profile
.
StartTime
=
localDb
.
CurrProfile
.
StartTime
;
...
...
thick_public
@
12526eaa
Subproject commit
bcbf2b66404a4f8cf5cfd0a856257f4625741344
Subproject commit
12526eaafcc6c86b46790a0d848b622144c00281
脚本/3.get_exe.sh
View file @
37103d64
...
...
@@ -28,7 +28,7 @@ fi
cp
-rf
install
$install_dir
#复制 版本描述
cp
版本描述.
txt
$install_dir
cp
版本描述.
md
$install_dir
install_dir
=
$install_dir
"/佛山市枫莱尔自动化技术有限公司/windows"
...
...
脚本/filmCastingInstallZipVersionInfo.json
View file @
37103d64
{
"InstallZipVersion"
:
"7.3.
3
"
,
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/流延测厚仪安装包_v7.3.
3_20211201
.7z"
"InstallZipVersion"
:
"7.3.
4
"
,
"InstallZipUrl"
:
"http://server.flyautomation.net:8889/download/流延测厚仪安装包_v7.3.
4_20211224
.7z"
}
\ No newline at end of file
脚本/版本描述.
txt
→
脚本/版本描述.
md
View file @
37103d64
流延测厚仪安装包_v7.3.2_20211113
# 流延测厚仪安装包_v7.3.4_20211224
## 流延测厚仪客户端 v7.3.4
1.
修复 修改AD盒参数出错,原因没有重新编译
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.3.3_20211201
## 流延测厚仪服务器 v7.3.3
1.
修复 12月数据库删除bug
## 流延测厚仪客户端 v7.3.0
1.
修复 安装包路径默认下载路径 为 D:
\测
厚仪软件
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.3.2_20211113
1.
修复 流延测厚仪服务器 保存图片 很慢
2.
修复 流延测厚仪服务器 删除图片出错(不存在的文件夹)
3.
优化 AD盒参数保存在电脑。 避免AD盒 i2c 有问题。
流延测厚仪安装包_v7.3.1_20210920
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.3.1_20210920
1.
修复 ScanData数据表 EndTime 为 DateTime.Now, 但 Time 为 flyad.Now, 导致时间错乱
2.
修复 Reflect_SeviceClient 大量数据 bug
3.
修复 测厚仪服务器,保存图片功能, livechart 的控件不会释放资源,导致14小时后,服务器占了 900Mb 内存
流延测厚仪安装包_v7.3.0_20210920
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.3.0_20210920
1.
添加 在客户端左下角 “枫莱尔” 进入的界面菜单, 添加 【升级检测】
2.
修复 样品界面 样品直径无法保存
流延测厚仪安装包_v7.2.1_20210918
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.2.1_20210918
1.
添加 大混合扫描图
2.
添加 在产品中, 公差可以 输入绝对值
流延测厚仪安装包_v7.1.0_20210804
<br/>
<br/>
<br/>
# 流延测厚仪安装包_v7.1.0_20210804
1.
修改 规定经过分区表后的数据,只是进行缩放而已。 数据能恢复到 cm/数据
2.
添加 扫描图 的测量版
3.
添加 纵向图 点选某个位置,下方的扫描图 number 就会改为该id
...
...
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