Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f36d1d7b
由
LN
编写于
2020-06-23 13:37:58 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
所有的料盘都去XRay拍照,增加查询界面
1 个父辈
bb31ab79
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
1224 行增加
和
48 行删除
RC1266-AutoCountMachine/dll/database/DB.db3
RC1266-AutoCountMachine/dll/database/Retrospect.dll
RC1266-AutoCountMachine/dll/database/Retrospect.xml
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.dll
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.dll.config
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.xml
RC1266-AutoCountMachine/source/AutoCountClient/App.config
RC1266-AutoCountMachine/source/AutoCountClient/AutoCountClient.csproj
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.Designer.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.resx
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.Designer.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.cs
RC1266-AutoCountMachine/source/AutoCountClient/data/DB.db3
RC1266-AutoCountMachine/source/Common/Setting_Init.cs
RC1266-AutoCountMachine/source/DeviceLibrary/DeviceLibrary.csproj
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/RobotBean.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
RC1266-AutoCountMachine/dll/database/DB.db3
0 → 100644
查看文件 @
f36d1d7
此文件类型无法预览
RC1266-AutoCountMachine/dll/database/Retrospect.dll
0 → 100644
查看文件 @
f36d1d7
此文件类型无法预览
RC1266-AutoCountMachine/dll/database/Retrospect.xml
0 → 100644
查看文件 @
f36d1d7
<?xml version="1.0"?>
<doc>
<assembly>
<name>
Retrospect
</name>
</assembly>
<members>
<member
name=
"T:BLL.SQLite"
>
<summary>
SQLite数据库
</summary>
</member>
<member
name=
"M:BLL.SQLite.#ctor(System.String)"
>
<summary>
SQLite数据库
</summary>
<param
name=
"path"
></param>
</member>
<member
name=
"P:BLL.SQLite.IsCon"
>
<summary>
是否连接
</summary>
</member>
<member
name=
"P:BLL.SQLite.ErrInfo"
>
<summary>
错误信息
</summary>
</member>
<member
name=
"M:BLL.SQLite.Create"
>
<summary>
创建数据库
</summary>
<returns></returns>
</member>
<member
name=
"M:BLL.SQLite.Connect"
>
<summary>
连接到数据库
</summary>
<returns></returns>
</member>
<member
name=
"M:BLL.SQLite.Close"
>
<summary>
关闭连接数据库
</summary>
</member>
<member
name=
"M:BLL.SQLite.Insert(System.String,System.Int32,System.Int32,System.Int32,System.String)"
>
<summary>
插入数据
</summary>
<param
name=
"qrCode"
></param>
<param
name=
"width"
></param>
<param
name=
"height"
></param>
<param
name=
"count"
></param>
<param
name=
"imagePath"
></param>
<returns></returns>
</member>
<member
name=
"M:BLL.SQLite.Select(System.String,System.String,System.String,System.String[][]@)"
>
<summary>
查询数据
</summary>
<param
name=
"qrcode"
></param>
<param
name=
"dataLower"
></param>
<param
name=
"dataUpper"
></param>
<param
name=
"data"
></param>
<returns></returns>
</member>
</members>
</doc>
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.dll
0 → 100644
查看文件 @
f36d1d7
此文件类型无法预览
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.dll.config
0 → 100644
查看文件 @
f36d1d7
<?
xml
version
=
"1.0"
?>
<!--
*
*
System
.
Data
.
SQLite
.
dll
.
config
-
*
*
Written
by
Joe
Mistachkin
.
*
Released
to
the
public
domain
,
use
at
your
own
risk
!
*
-->
<
configuration
>
<
appSettings
>
<!--
****************************************************************************
**
Special
Replacement
Tokens
**
****************************************************************************
-->
<!--
NOTE
: %
PreLoadSQLite_AssemblyDirectory
% -
If
this
token
(
which
is
case
-
sensitive
and
must
include
the
percent
characters
)
is
present
within
a
setting
value
being
returned
,
it
will
be
replaced
with
the
qualified
name
of
the
directory
containing
the
System
.
Data
.
SQLite
assembly
.
If
the
name
of
the
directory
is
not
available
,
the
token
will
not
be
replaced
.
NOTE
: %
PreLoadSQLite_TargetFramework
% -
If
this
token
(
which
is
case
-
sensitive
and
must
include
the
percent
characters
)
is
present
within
a
setting
value
being
returned
,
it
will
be
replaced
with
an
abbreviation
of
the
target
framework
attribute
value
for
the
System
.
Data
.
SQLite
assembly
.
If
the
target
framework
attribute
value
is
not
available
,
the
token
will
not
be
replaced
.
NOTE
: %
PreLoadSQLite_XmlConfigDirectory
% -
If
this
token
(
which
is
case
-
sensitive
and
must
include
the
percent
characters
)
is
present
within
a
setting
value
being
returned
,
it
will
be
replaced
with
the
qualified
name
of
the
directory
containing
the
XML
configuration
file
.
If
the
name
of
the
directory
is
not
available
,
the
token
will
not
be
replaced
.
Generally
,
this
token
may
only
be
used
within
the
XML
configuration
file
itself
.
-->
<!--
****************************************************************************
**
Configuration
Settings
**
****************************************************************************
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
it
will
be
used
by
the
System
.
Data
.
SQLite
.
Linq
.
SQLiteProviderManifest
class
(
and
the
System
.
Data
.
SQLite
.
EF6
.
SQLiteProviderManifest
class
)
to
modify
future
provider
manifest
tokens
by
appending
the
value
of
the
environment
variable
to
the
existing
provider
manifest
token
,
if
any
.
Typically
,
in
order
for
the
constructed
provider
manifest
token
to
be
syntactically
correct
,
the
environment
variable
value
[
to
be
appended
]
must
begin
with
a
semicolon
.
-->
<!--
<
add
key
=
"AppendManifestToken_SQLiteProviderManifest"
value
=
""
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
it
will
be
used
by
the
System
.
Data
.
SQLite
.
SQLiteConnection
class
as
the
default
flags
for
all
opened
connections
(
i
.
e
.
when
they
are
not
present
in
the
connection
string
).
-->
<!--
<
add
key
=
"DefaultFlags_SQLiteConnection"
value
=
""
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
SQLite
logging
subsystem
will
be
initially
disabled
when
initialized
.
-->
<!--
<
add
key
=
"Disable_SQLiteLog"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
SQLite
logging
subsystem
may
be
initialized
in
a
non
-
default
application
domain
.
By
default
,
this
is
not
allowed
due
to
the
potential
for
application
domain
unloading
issues
.
-->
<!--
<
add
key
=
"Force_SQLiteLog"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
the
SQLite
logging
subsystem
will
attempt
to
perform
initialization
even
when
an
attempt
was
previously
made
.
-->
<!--
<
add
key
=
"Initialize_SQLiteLog"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
native
library
pre
-
loading
functionality
will
be
disabled
.
By
default
,
the
native
library
pre
-
loading
will
attempt
to
load
the
native
SQLite
library
from
architecture
-
specific
(
e
.
g
.
"x86"
,
"amd64"
,
"x64"
)
or
platform
-
specific
(
e
.
g
.
"Win32"
)
directories
that
reside
underneath
the
application
base
directory
.
-->
<!--
<
add
key
=
"No_PreLoadSQLite"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
new
connection
string
parsing
algorithm
will
not
be
used
.
This
environment
variable
is
intended
for
use
with
legacy
code
only
.
-->
<!--
<
add
key
=
"No_SQLiteConnectionNewParser"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
initial
search
for
types
in
all
loaded
assemblies
that
are
tagged
with
the
SQLiteFunction
attribute
will
be
skipped
.
Normally
,
this
search
is
conducted
only
once
per
application
domain
by
the
static
constructor
of
the
SQLiteFunction
class
;
however
,
these
implementation
details
are
subject
to
change
.
-->
<!--
<
add
key
=
"No_SQLiteFunctions"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
all
calls
to
the
GetSettingValue
method
will
return
the
default
value
.
This
will
effectively
prevent
all
other
setting
values
from
having
any
effect
,
including
those
specified
via
other
supported
environment
variables
or
in
the
associated
XML
configuration
file
.
SPECIAL
NOTE
:
This
setting
is
included
here
only
for
completeness
;
it
does
not
make
any
sense
to
use
it
here
as
it
will
never
be
consulted
.
For
this
setting
to
work
properly
,
it
must
be
set
via
an
environment
variable
.
-->
<!--
<
add
key
=
"No_SQLiteGetSettingValue"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
calls
to
the
GetSettingValue
method
will
never
result
in
the
XML
configuration
file
being
read
;
instead
,
the
default
value
will
be
returned
.
This
will
effectively
prevent
any
setting
values
specified
via
the
XML
configuration
file
from
having
any
effect
.
SPECIAL
NOTE
:
This
setting
is
included
here
only
for
completeness
;
it
does
not
make
any
sense
to
use
it
here
as
it
will
never
be
consulted
.
For
this
setting
to
work
properly
,
it
must
be
set
via
an
environment
variable
.
-->
<!--
<
add
key
=
"No_SQLiteXmlConfigFile"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
base
directory
itself
is
considered
valid
for
pre
-
loading
the
native
SQLite
library
.
-->
<!--
<
add
key
=
"PreLoadSQLite_AllowBaseDirectoryOnly"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
it
will
be
used
instead
of
the
application
base
directory
by
the
native
library
pre
-
loader
.
This
environment
variable
can
be
especially
useful
in
ASP
.
NET
and
other
hosted
environments
where
direct
control
of
the
location
of
the
managed
assemblies
is
not
under
the
control
of
the
application
.
-->
<!--
<
add
key
=
"PreLoadSQLite_BaseDirectory"
value
=
""
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
native
library
pre
-
loader
subsystem
will
attempt
to
give
the
interactive
user
an
opportunity
to
attach
a
debugger
to
the
current
process
.
-->
<!--
<
add
key
=
"PreLoadSQLite_BreakIntoDebugger"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
it
will
be
used
as
the
base
file
name
(
without
directory
information
)
for
the
native
SQLite
library
to
be
pre
-
loaded
(
e
.
g
.
"sqlite3.dll"
or
"libsqlite3.so.0"
).
-->
<!--
<
add
key
=
"PreLoadSQLite_LibraryFileNameOnly"
value
=
""
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
it
will
be
used
instead
of
the
processor
architecture
value
contained
in
the
PROCESSOR_ARCHITECTURE
environment
variable
to
help
build
the
path
of
the
native
library
to
pre
-
load
.
-->
<!--
<
add
key
=
"PreLoadSQLite_ProcessorArchitecture"
value
=
"x86"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
the
native
library
pre
-
loading
code
will
skip
conducting
a
search
for
the
native
library
to
pre
-
load
.
By
default
,
the
search
starts
in
the
location
of
the
currently
executing
assembly
(
i
.
e
.
the
assembly
containing
all
the
managed
components
for
System
.
Data
.
SQLite
)
and
then
falls
back
to
the
application
domain
base
directory
.
-->
<!--
<
add
key
=
"PreLoadSQLite_NoSearchForDirectory"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
configuration
variable
is
set
[
to
anything
],
the
location
of
the
currently
executing
assembly
(
i
.
e
.
the
one
containing
all
the
managed
components
for
System
.
Data
.
SQLite
)
will
be
used
as
the
basis
for
locating
the
the
native
library
to
pre
-
load
(
i
.
e
.
instead
of
using
the
application
domain
base
directory
).
-->
<!--
<
add
key
=
"PreLoadSQLite_UseAssemblyDirectory"
value
=
"1"
/>
-->
<!--
NOTE
:
This
configuration
variable
is
normally
set
by
the
operating
system
itself
and
should
reflect
the
native
processor
architecture
of
the
current
process
(
e
.
g
.
a
32
-
bit
x86
application
running
on
a
64
-
bit
x64
operating
system
should
have
the
value
"x86"
).
-->
<!--
<
add
key
=
"PROCESSOR_ARCHITECTURE"
value
=
"%PROCESSOR_ARCHITECTURE%"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
all
calls
to
prepare
a
SQL
query
will
be
logged
,
regardless
of
the
flags
for
the
associated
connection
.
-->
<!--
<
add
key
=
"SQLite_ForceLogPrepare"
value
=
"1"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
it
will
be
used
by
the
System
.
Data
.
SQLite
.
SQLiteFactory
class
as
the
type
name
containing
the
System
.
Data
.
Common
.
DbProviderServices
implementation
that
should
be
used
.
-->
<!--
<
add
key
=
"TypeName_SQLiteProviderServices"
value
=
""
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
it
will
be
used
by
the
System
.
Data
.
SQLite
.
SQLiteConvert
class
as
the
default
DbType
value
that
should
be
used
when
a
per
-
connection
value
is
not
available
.
-->
<!--
<
add
key
=
"Use_SQLiteConvert_DefaultDbType"
value
=
"Object"
/>
-->
<!--
NOTE
:
If
this
environment
variable
is
set
[
to
anything
],
it
will
be
used
by
the
System
.
Data
.
SQLite
.
SQLiteConvert
class
as
the
default
type
name
that
should
be
used
when
a
per
-
connection
value
is
not
available
.
-->
<!--
<
add
key
=
"Use_SQLiteConvert_DefaultTypeName"
value
=
""
/>
-->
</
appSettings
>
</
configuration
>
RC1266-AutoCountMachine/dll/database/System.Data.SQLite.xml
0 → 100644
查看文件 @
f36d1d7
此文件的差异太大,无法显示。
RC1266-AutoCountMachine/source/AutoCountClient/App.config
查看文件 @
f36d1d7
...
@@ -51,6 +51,7 @@
...
@@ -51,6 +51,7 @@
<
add
key
=
"XRay_Data"
value
=
"2020-6-2"
/>
<
add
key
=
"XRay_Data"
value
=
"2020-6-2"
/>
<
add
key
=
"ThresholdValue"
value
=
"30"
/>
<
add
key
=
"ThresholdValue"
value
=
"30"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<
add
key
=
"DataPath"
value
=
"\data\DB.db3"
/>
</
appSettings
>
</
appSettings
>
<
log4net
>
<
log4net
>
...
...
RC1266-AutoCountMachine/source/AutoCountClient/AutoCountClient.csproj
查看文件 @
f36d1d7
...
@@ -79,12 +79,16 @@
...
@@ -79,12 +79,16 @@
<Reference Include="log4net">
<Reference Include="log4net">
<HintPath>..\..\dll\log4net.dll</HintPath>
<HintPath>..\..\dll\log4net.dll</HintPath>
</Reference>
</Reference>
<Reference Include="Retrospect">
<HintPath>..\..\dll\database\Retrospect.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Management" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.CSharp" />
...
@@ -105,6 +109,12 @@
...
@@ -105,6 +109,12 @@
<Compile Include="agvtest\FrmAgvTest.Designer.cs">
<Compile Include="agvtest\FrmAgvTest.Designer.cs">
<DependentUpon>FrmAgvTest.cs</DependentUpon>
<DependentUpon>FrmAgvTest.cs</DependentUpon>
</Compile>
</Compile>
<Compile Include="FrmAnalyze.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmAnalyze.Designer.cs">
<DependentUpon>FrmAnalyze.cs</DependentUpon>
</Compile>
<Compile Include="useControl\AxisMoveControl.cs">
<Compile Include="useControl\AxisMoveControl.cs">
<SubType>UserControl</SubType>
<SubType>UserControl</SubType>
</Compile>
</Compile>
...
@@ -165,6 +175,9 @@
...
@@ -165,6 +175,9 @@
<EmbeddedResource Include="agvtest\FrmAgvTest.resx">
<EmbeddedResource Include="agvtest\FrmAgvTest.resx">
<DependentUpon>FrmAgvTest.cs</DependentUpon>
<DependentUpon>FrmAgvTest.cs</DependentUpon>
</EmbeddedResource>
</EmbeddedResource>
<EmbeddedResource Include="FrmAnalyze.resx">
<DependentUpon>FrmAnalyze.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="useControl\AxisMoveControl.resx">
<EmbeddedResource Include="useControl\AxisMoveControl.resx">
<DependentUpon>AxisMoveControl.cs</DependentUpon>
<DependentUpon>AxisMoveControl.cs</DependentUpon>
</EmbeddedResource>
</EmbeddedResource>
...
@@ -202,6 +215,9 @@
...
@@ -202,6 +215,9 @@
<DependentUpon>Resources.resx</DependentUpon>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<DesignTime>True</DesignTime>
</Compile>
</Compile>
<None Include="data\DB.db3">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Properties\Settings.settings">
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
...
...
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.Designer.cs
0 → 100644
查看文件 @
f36d1d7
namespace
OnlineStore.AutoCountClient
{
partial
class
FrmAnalyze
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmAnalyze
));
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
panel2
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
dataGridView1
=
new
System
.
Windows
.
Forms
.
DataGridView
();
this
.
Column_Num
=
new
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
();
this
.
Column_Code
=
new
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
();
this
.
Column_Width
=
new
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
();
this
.
Column_Height
=
new
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
();
this
.
Column_ImageName
=
new
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
();
this
.
txtCode
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnBack
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnSearch
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
dtpEndTime
=
new
System
.
Windows
.
Forms
.
DateTimePicker
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
dtpStartTime
=
new
System
.
Windows
.
Forms
.
DateTimePicker
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox1
.
SuspendLayout
();
this
.
panel2
.
SuspendLayout
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
dataGridView1
)).
BeginInit
();
this
.
SuspendLayout
();
//
// groupBox1
//
this
.
groupBox1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox1
.
Controls
.
Add
(
this
.
panel2
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtCode
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label1
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnBack
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnSearch
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
dtpEndTime
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label3
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
dtpStartTime
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label2
);
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
6
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
1059
,
586
);
this
.
groupBox1
.
TabIndex
=
1
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"查看点料记录"
;
//
// panel2
//
this
.
panel2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
panel2
.
Controls
.
Add
(
this
.
dataGridView1
);
this
.
panel2
.
Location
=
new
System
.
Drawing
.
Point
(
8
,
31
);
this
.
panel2
.
Name
=
"panel2"
;
this
.
panel2
.
Size
=
new
System
.
Drawing
.
Size
(
777
,
548
);
this
.
panel2
.
TabIndex
=
18
;
//
// dataGridView1
//
this
.
dataGridView1
.
ColumnHeadersHeightSizeMode
=
System
.
Windows
.
Forms
.
DataGridViewColumnHeadersHeightSizeMode
.
AutoSize
;
this
.
dataGridView1
.
Columns
.
AddRange
(
new
System
.
Windows
.
Forms
.
DataGridViewColumn
[]
{
this
.
Column_Num
,
this
.
Column_Code
,
this
.
Column_Width
,
this
.
Column_Height
,
this
.
Column_ImageName
});
this
.
dataGridView1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
dataGridView1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
dataGridView1
.
Name
=
"dataGridView1"
;
this
.
dataGridView1
.
ReadOnly
=
true
;
this
.
dataGridView1
.
RowTemplate
.
Height
=
23
;
this
.
dataGridView1
.
SelectionMode
=
System
.
Windows
.
Forms
.
DataGridViewSelectionMode
.
FullRowSelect
;
this
.
dataGridView1
.
Size
=
new
System
.
Drawing
.
Size
(
777
,
548
);
this
.
dataGridView1
.
TabIndex
=
0
;
//
// Column_Num
//
this
.
Column_Num
.
HeaderText
=
"编号"
;
this
.
Column_Num
.
Name
=
"Column_Num"
;
this
.
Column_Num
.
ReadOnly
=
true
;
this
.
Column_Num
.
Width
=
80
;
//
// Column_Code
//
this
.
Column_Code
.
HeaderText
=
"条码"
;
this
.
Column_Code
.
Name
=
"Column_Code"
;
this
.
Column_Code
.
ReadOnly
=
true
;
this
.
Column_Code
.
Width
=
200
;
//
// Column_Width
//
this
.
Column_Width
.
HeaderText
=
"宽度"
;
this
.
Column_Width
.
Name
=
"Column_Width"
;
this
.
Column_Width
.
ReadOnly
=
true
;
this
.
Column_Width
.
Width
=
80
;
//
// Column_Height
//
this
.
Column_Height
.
HeaderText
=
"高度"
;
this
.
Column_Height
.
Name
=
"Column_Height"
;
this
.
Column_Height
.
ReadOnly
=
true
;
this
.
Column_Height
.
Width
=
80
;
//
// Column_ImageName
//
this
.
Column_ImageName
.
HeaderText
=
"图片名称"
;
this
.
Column_ImageName
.
Name
=
"Column_ImageName"
;
this
.
Column_ImageName
.
ReadOnly
=
true
;
this
.
Column_ImageName
.
Width
=
250
;
//
// txtCode
//
this
.
txtCode
.
Location
=
new
System
.
Drawing
.
Point
(
866
,
142
);
this
.
txtCode
.
Name
=
"txtCode"
;
this
.
txtCode
.
Size
=
new
System
.
Drawing
.
Size
(
172
,
26
);
this
.
txtCode
.
TabIndex
=
17
;
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
820
,
145
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
40
,
20
);
this
.
label1
.
TabIndex
=
16
;
this
.
label1
.
Text
=
"条码:"
;
//
// btnBack
//
this
.
btnBack
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnBack
.
Location
=
new
System
.
Drawing
.
Point
(
884
,
264
);
this
.
btnBack
.
Name
=
"btnBack"
;
this
.
btnBack
.
Size
=
new
System
.
Drawing
.
Size
(
114
,
35
);
this
.
btnBack
.
TabIndex
=
15
;
this
.
btnBack
.
Text
=
"返回"
;
this
.
btnBack
.
UseVisualStyleBackColor
=
true
;
this
.
btnBack
.
Click
+=
new
System
.
EventHandler
(
this
.
btnBack_Click
);
//
// btnSearch
//
this
.
btnSearch
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnSearch
.
Location
=
new
System
.
Drawing
.
Point
(
884
,
200
);
this
.
btnSearch
.
Name
=
"btnSearch"
;
this
.
btnSearch
.
Size
=
new
System
.
Drawing
.
Size
(
114
,
35
);
this
.
btnSearch
.
TabIndex
=
7
;
this
.
btnSearch
.
Text
=
"查询"
;
this
.
btnSearch
.
UseVisualStyleBackColor
=
true
;
this
.
btnSearch
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSearch_Click
);
//
// dtpEndTime
//
this
.
dtpEndTime
.
CustomFormat
=
"yyyy-MM-dd HH:mm:ss"
;
this
.
dtpEndTime
.
Format
=
System
.
Windows
.
Forms
.
DateTimePickerFormat
.
Custom
;
this
.
dtpEndTime
.
Location
=
new
System
.
Drawing
.
Point
(
866
,
91
);
this
.
dtpEndTime
.
Name
=
"dtpEndTime"
;
this
.
dtpEndTime
.
Size
=
new
System
.
Drawing
.
Size
(
172
,
26
);
this
.
dtpEndTime
.
TabIndex
=
5
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
796
,
94
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
20
);
this
.
label3
.
TabIndex
=
4
;
this
.
label3
.
Text
=
"结束时间:"
;
//
// dtpStartTime
//
this
.
dtpStartTime
.
CustomFormat
=
"yyyy-MM-dd HH:mm:ss"
;
this
.
dtpStartTime
.
Format
=
System
.
Windows
.
Forms
.
DateTimePickerFormat
.
Custom
;
this
.
dtpStartTime
.
Location
=
new
System
.
Drawing
.
Point
(
866
,
40
);
this
.
dtpStartTime
.
Name
=
"dtpStartTime"
;
this
.
dtpStartTime
.
Size
=
new
System
.
Drawing
.
Size
(
172
,
26
);
this
.
dtpStartTime
.
TabIndex
=
3
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
796
,
43
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
68
,
20
);
this
.
label2
.
TabIndex
=
1
;
this
.
label2
.
Text
=
"开始时间:"
;
//
// FrmAnalyze
//
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
None
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1070
,
598
);
this
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
Name
=
"FrmAnalyze"
;
this
.
Text
=
"历史记录"
;
this
.
WindowState
=
System
.
Windows
.
Forms
.
FormWindowState
.
Maximized
;
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmAnalyze_Load
);
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox1
.
PerformLayout
();
this
.
panel2
.
ResumeLayout
(
false
);
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
dataGridView1
)).
EndInit
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
Button
btnSearch
;
private
System
.
Windows
.
Forms
.
DateTimePicker
dtpEndTime
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
DateTimePicker
dtpStartTime
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
Button
btnBack
;
private
System
.
Windows
.
Forms
.
Panel
panel2
;
private
System
.
Windows
.
Forms
.
TextBox
txtCode
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
DataGridView
dataGridView1
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column_Num
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column_Code
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column_Width
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column_Height
;
private
System
.
Windows
.
Forms
.
DataGridViewTextBoxColumn
Column_ImageName
;
}
}
\ No newline at end of file
\ No newline at end of file
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.cs
0 → 100644
查看文件 @
f36d1d7
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
OnlineStore.AutoCountClient
{
partial
class
FrmAnalyze
:
FrmBase
{
public
FrmAnalyze
()
{
InitializeComponent
();
}
public
static
DateTime
PreStartTime
=
new
DateTime
(
0
);
public
static
DateTime
PreEndTime
=
new
DateTime
(
0
);
private
void
FrmAnalyze_Load
(
object
sender
,
EventArgs
e
)
{
if
(
PreStartTime
.
Ticks
>
0
&&
PreEndTime
.
Ticks
>
0
)
{
dtpStartTime
.
Value
=
PreStartTime
;
dtpEndTime
.
Value
=
PreEndTime
;
}
else
{
DateTime
time1
=
DateTime
.
Now
.
AddDays
(-
4
);
dtpStartTime
.
Value
=
new
DateTime
(
time1
.
Year
,
time1
.
Month
,
time1
.
Day
,
0
,
0
,
0
);
DateTime
time
=
DateTime
.
Now
.
AddDays
(-
1
);
dtpEndTime
.
Value
=
new
DateTime
(
time
.
Year
,
time
.
Month
,
time
.
Day
,
23
,
59
,
59
);
dtpEndTime
.
Value
=
DateTime
.
Now
;
}
}
private
void
btnSearch_Click
(
object
sender
,
EventArgs
e
)
{
DateTime
startTime
=
dtpStartTime
.
Value
;
DateTime
endTime
=
dtpEndTime
.
Value
;
if
(
startTime
<
DateTime
.
Now
.
AddDays
(-
30
))
{
MessageBox
.
Show
(
"只能查询近30天的日志!"
);
dtpStartTime
.
Focus
();
return
;
}
if
(
endTime
>
DateTime
.
Now
)
{
MessageBox
.
Show
(
"只能查询近今天之前的日志!"
);
dtpEndTime
.
Focus
();
return
;
}
PreStartTime
=
startTime
;
PreEndTime
=
endTime
;
string
code
=
txtCode
.
Text
.
Trim
();
string
[][]
array
=
null
;
bool
result
=
RobotManager
.
robot
.
sQLite
.
Select
(
code
,
startTime
.
ToString
(),
endTime
.
ToLongTimeString
(),
out
array
);
LogUtil
.
error
(
"查数据【"
+
code
+
"】【"
+
startTime
.
ToString
()
+
"】【"
+
endTime
.
ToLongTimeString
()
+
"】结果:"
+
result
+
","
+
RobotManager
.
robot
.
sQLite
.
ErrInfo
);
if
(
array
!=
null
&&
array
.
Length
>
0
)
{
}
}
private
void
btnBack_Click
(
object
sender
,
EventArgs
e
)
{
this
.
Close
();
}
}
public
class
XRayHistory
{
public
string
Code
=
""
;
public
int
Height
=
0
;
public
int
Width
=
0
;
public
int
Count
=
0
;
public
string
FileName
=
""
;
}
}
RC1266-AutoCountMachine/source/AutoCountClient/FrmAnalyze.resx
0 → 100644
查看文件 @
f36d1d7
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Column_Num.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Code.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Width.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_Height.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column_ImageName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA
AABZPT3QWT09/1g8PP9YPDz/WDw8/1g8Pf9YPD3/WDw9/1g8Pf9YPD3/WDw9/1g8Pf9YPD3/WDw9/1g8
Pf9YPD3/WDw9/1g8Pf9YPD3/WDw9/1g8Pf9YPD3/WDw9/1k9Pf9ZPT3/WT09/1g9Pf9YPT3/WD09/1g9
Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9
Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9Pf9YPT3/WD09/1g9
Pf9YPT3/WT09/1k9Pf9ZPT3RWT09/lo+Pv9hRkb/Y0hI/2NHRP9jRkP/Y0ZD/2NGQ/9jRkP/Y0ZD/2NG
Q/9jRkP/Y0ZD/2NGQ/9jRkP/Y0ZD/2NGQ/9jRkP/Y0ZD/2NGQ/9jRkP/Y0ZD/2NGQ/9eQUD/WT09/1w+
PP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BA
PP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BAPP9gQDz/YEA8/2BA
PP9gQDz/YEA8/2BAPP9gQDz/YEA8/18/PP9ZPT3/WT09/lg8PP9hRkb/w7m5/9/Z2f/dw6H/3bqI/926
iv/duor/3bqK/926iv/duor/3bqK/926iv/duor/3bqK/926iv/duor/3bqK/926iv/duor/3bqK/926
iv/evIv/l3hh/1U6PP+BTDX/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7pi
K/+6Yiv/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7pi
K/+6Yiv/umIr/7piK/+6Yiv/umIr/7piK/+6Yiv/umIr/7tiKv+mWi7/Xz88/1k9Pf9YPDz/Y0hI/97Y
2P///////+e7///bnf//3J7//9ye///cnv//3J7//9ye///cnv//3J7//9ye///cnv//3J7//9ye///c
nv//3J7//9ye///cnv//3J7//96f/6eIa/9UOjz/i1Az/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9Rs
Jv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9Rs
Jv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/1Gwm/9RsJv/VbCX/u2Iq/2BA
PP9YPT3/WDw8/2NISP/d2Nj///////7lu//+2Zv//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3djY///////+5bv//tmb//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf//3J7/p4dq/1Q6
PP+LUDT/02sm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/93Y2P///////uW7//7Z
m//+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NI
SP/d2Nj///////7lu//+2Zv//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/1Gwm/7pi
K/9gQDz/WD09/1g8PP9jSEj/3djY///////+5bv//tmb//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf//3J7/p4dq/1Q6PP+LUDT/02sm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/93Y2P///////uW7//7Zm//+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//9ye/6eH
av9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj///////7l
u//+2Zv//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/1Gwm/7piK/9gQDz/WD09/1g8
PP9jSEj/3djY///////+5bv//tmb//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Rs
Jv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/93Y2P///////uW7//7Zm//+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//9ye/6eHav9UOjz/i1A0/9Nr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj///////7lu//+2Zv//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd///c
nv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3djY////
///+5bv//tmb//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9RsJv+6Yiv/YEA8/1g9
Pf9YPDz/Y0hI/93Y2P///////uW7//7Zm//+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj///////7lu//+2Zv//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd///cnv+nh2r/VDo8/4tQ
NP/Tayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3djY////////5rv//9yd///d
n///3J7//tud//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Tayb/02sm/9Jr
Jv/Sayb/1Gwm/9RsJv/Tayb/0Wsm/85qJ//Rayb/0msm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/93Y
2P//////xa+Z/6yMbP/Do3z/2beI//PQl//+253//9ue///cnv//3Z///9ye//7bnf/+2p3//tqd//7a
nf/+2p3//tqd//7anf/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/02sm/9NrJv/UbCb/02sm/9JrJv/Tayb/0msm/89q
J//LaCf/xWYp/8VmKP/Rayb/0Wsm/7BeLP+YVTL/jFE0/4JNNf95STf/rV0t/9NsJv/UbCb/umIr/2BA
PP9YPT3/WDw8/2NISP/e2Nj//v7+/4p2d/9vQjT/eko4/2pHP/+yknH//dmc/7qZdf+pim3/waF7/9i2
iP/10pj//tud//7bnf//3J7//92f///cnv/+253//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/9RsJv/UbCb/0msm/9JrJv/Rayb/zGkn/8ZnKP+/ZCr/t2Er/8Zm
KP/UbCb/vGMq/4hPNP99Szb/dkc2/3BEN/93SDf/yGco/8tpJ/9zRzf/ekMq/5BHH/+aSRn/c0Eu/5hV
Mf/UbCb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3tjY//7+/v+Ld3f/pFcr/9BqJv+KTjH/pYZq//bT
mf97XE//eUc0/31LN/9qSED/w6J7///bnv+6mXX/o4Vp/72def/Vs4b/89CX//7anf//3J7/p4dq/1Q6
PP+LUDT/02sm/9JrJv/Sayb/0msm/9BqJv/CZSn/uGEr/65eLf+jWS//pVov/81pJ//Qaib/lVQy/3ZI
N/9yRTb/cUQ0/2VAOP+YVTH/1mwl/6RaL/9sQDL/oEoW/6xMEP+jShT/b0Q2/8RmKf/LaCf/dUc2/69N
D//OUwD/zVIA/4ZFJf+YVjL/1Gwm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y2P/+/v7/i3d3/6RX
K//WbCX/kFAx/6WHa//205n/f15P/7JeKv/Qaib/gEs0/7iYdv/82Jz/g2RV/3RENP97Sjf/aEY+/7iX
dP//3J7//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9RsJv+0YCz/bEQ4/29CNP9zQjD/dEIv/2hC
Of/AZCn/zmon/3ZIN/+QRh7/s00N/7tPCP+GRST/kVMz/9ZsJf+kWi//fUQq/8tSAf/OUwD/uE4K/3JF
Nf/EZin/y2gn/3VHNv+uTA//zVIA/8tSAP+FRSX/mVYy/9RsJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NI
SP/e2Nj//v7+/4t3d/+kVyv/1mwl/49QMf+lh2v/9tOZ/39eT/+yXir/02wm/4NMNP+4mXb/+9ic/4Vm
Vf+qWiz/0Wsm/4ZNMv+sjW///9ye///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/qlwu/3NC
L/+7Twn/xVED/7lPCf9xRDT/v2Qq/85qJ/94SDb/qksS/85TAP/NUgD/jEYh/5FTM//WbCX/pFov/31E
Kv/JUgH/zFIA/7dOCv9yRTX/xGYp/8toJ/91Rzb/rkwP/81SAP/LUgD/hUUl/5lWMv/UbCb/1Gwm/7pi
K/9gQDz/WD09/1g8PP9jSEj/3tjY//7+/v+Ld3f/pFcr/9ZsJf+PUDH/pYdr//bTmf9/Xk//sl4q/9Nr
Jv+DTDT/uJl2//vYnP+FZlX/qlos/9VsJf+KTzL/rI5v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9Jr
Jv/Sayb/1Gwm/6tcLv95Qy3/yFEC/81SAP+8Twj/cUQ0/79kKv/Oaif/eEg2/6hLEv/NUgD/zFIA/4tG
If+SUzP/1mwl/6RaL/99RCr/yVIB/8xSAP+3Tgr/ckU1/8RmKf/LaCf/dUc2/65MD//NUgD/y1IA/4VF
Jf+ZVjL/1Gwm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y2P/+/v7/i3d3/6RXK//WbCX/j1Ax/6WH
a//205n/f15P/7JeKv/Tayb/g0w0/7iZdv/72Jz/hWZV/6paLP/VbCX/ik4y/6yOb///3J7//9ye/6eH
av9UOjz/i1A0/9NrJv/Sayb/0msm/9RsJv+rXC7/eEMt/8dRAv/MUgD/vE8I/3FENP+/ZCr/zmon/3hI
Nv+oSxL/zVIA/8xSAP+LRiH/klMz/9ZsJf+kWi//fUQq/8lSAf/MUgD/t04K/3JFNf/EZin/y2gn/3VH
Nv+uTA//zVIA/8tSAP+FRSX/mVYy/9RsJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/e2Nj//v7+/4t3
d/+kVyv/1mwl/49QMf+lh2v/9tOZ/39eT/+yXir/02sm/4NMNP+4mXb/+9ic/4VmVf+qWiz/1Wwl/4pO
Mv+sjm///9ye///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/q1wu/3hDLf/HUQL/zFIA/7xP
CP9xRDT/v2Qq/85qJ/94SDb/qEsS/81SAP/MUgD/i0Yh/5JTM//WbCX/pFov/31EKv/JUgH/zFIA/7dO
Cv9yRTX/xGYp/8toJ/91Rzb/rkwP/81SAP/LUgD/hUUl/5lWMv/UbCb/1Gwm/7piK/9gQDz/WD09/1g8
PP9jSEj/3tjY//7+/v+Ld3f/pVgr/9ZsJf+PUDH/pYdr//bTmf9/Xk//sl4q/9NrJv+DTDT/uJl2//vY
nP+FZlX/qlos/9VsJf+KTjL/rI5v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/1Gwm/6tc
Lv94Qy3/x1EC/8xSAP+8Twj/cUQ0/79kKv/Oaif/eEg2/6hLEv/NUgD/zFIA/4tGIf+SUzP/1mwl/6Ra
L/99RCr/yVIB/8xSAP+3Tgr/ckU1/8RmKf/LaCf/dUc2/69MD//NUgD/zVIA/4ZFJf+YVjL/1Gwm/9Rs
Jv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y2P/+/v7/inZ2/5xULP/Sayb/kFAx/6WHa//205n/f15P/7Je
Kv/Tayb/g0w0/7iZdv/72Jz/hWZV/6paLP/VbCX/ik4y/6yOb///3J7//9ye/6eHav9UOjz/i1A0/9Nr
Jv/Sayb/0msm/9RsJv+rXC7/eEMt/8dRAv/MUgD/vE8I/3FENP+/ZCr/zmon/3hINv+oSxL/zVIA/8xS
AP+LRiH/klMz/9ZsJf+kWi//fUQq/8lSAf/NUgD/uE4K/3JFNf/EZin/y2gn/3VHNv+qTBH/wFAG/7NN
DP93Qiz/mFUx/9RsJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj//////6SPhv9wTED/fkw3/2xB
Nf+lhmr/9tOZ/35eT/+zXir/1Wwl/4NNNP+4mXb/+9ic/4VmVf+qWiz/1Wwl/4pOMv+sjm///9ye///c
nv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/q1wu/3hDLf/HUQL/zFIA/7xPCP9xRDT/v2Qq/85q
J/94SDb/qEsS/81SAP/NUgD/jEYh/5FTM//WbCX/pFov/3xEKv/GUQP/w1AE/6hLEv9vRDb/xGYp/8xp
J/9zRzj/bkEy/3JDM/9zRTb/ekk2/7FeLP/TbCb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3djY////
///33rb/372K/7+fev+cfWX/y6l///bTmf99X1H/hEsx/6tbLP95SDX/uJl2//zYnP+FZlX/qlss/9Vs
Jf+KTjL/rI5v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/1Gwm/6tcLv94Qy3/x1EC/8xS
AP+8Twj/cUQ0/79kKv/Oaif/eEg2/6lLEv/NUgD/x1EC/4dFJP+RUzP/1mwl/6VaL/9lPzf/eUMs/3ND
Mf9wRDX/gEw1/8loKP/Rayb/sV8s/6xdLv+7Yyv/xmco/85pJ//Sayb/0msm/9RsJv+6Yiv/YEA8/1g9
Pf9YPDz/Y0hI/93Y2P///////+e8///env//3p///tud//7anf/82Zz/zqyB/55/Zv+BYlP/a01F/8Kh
ev/715v/g2VV/6BWLf/Raib/ik8y/6yNb///3J7//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9Rs
Jv+rXC7/eUMt/8lSAv/NUgD/uU8J/3BDNP+/ZCr/zmon/3ZIN/98Qyn/hEUm/3pELf9tQzb/n1gw/9Rs
Jv/BZCn/nFcw/6dbL/+2YSz/wmUp/8xpJ//Sayb/0msm/9RsJv/UbCb/1Gwm/9RsJv/UbCb/02sm/9Jr
Jv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj//////9S9ov/KqH7/6seR//vXm///257//tqd///c
nv/+253/9dKY/+XCjv/00Zf//Nic/6ODaP90UET/fk04/2lBN/+tjW7//9ye///cnv+nh2r/VDo8/4tQ
NP/Tayb/0msm/9JrJv/UbCb/q1wu/2tAM/+TRx3/h0Uk/3hDLf9wRTj/w2Up/9FrJv+gWC//klMz/6JZ
MP+xXy3/vmQq/81pJ//Sayb/02sm/9RsJv/UbCb/1Gwm/9RsJv/TbCb/0msm/9JrJv/Sayb/zWkn/8Rm
Kf+4YSv/rF0t/8NlKf/Tayb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3tjY//7+/v+MeHj/Z0I5/3dV
SP+Ob1z/1bOF///bnv/82Jz//dqd///dn///3Z///tue//7anf/41Zr/5cKP/8enf/+oiGv/1bOF///b
nv//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/02sm/7tiKv+ATDX/ilA0/5pWMf+qXC7/vWMq/9Bq
Jv/Sayb/02sm/9NsJv/UbCb/1Gwm/9RsJv/Tayb/0msm/9NrJv/TbCb/0Wsm/8xpJ//DZSj/wWQp/9Fr
Jv/Paif/llQx/3dIN/9xRTb/cUMz/2M/OP+cVzD/1Gwm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y
2P/+/v7/i3d3/55VLP+6YSr/eUYz/6WGav/82Jz/p4dq/5p7Yf/CoXf/48CN//rWm//+2p3//9ue///d
n///3Z///9ye//7bnf/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Sayb/0Gom/9Jr
Jv/UbCb/1Gwm/9NsJv/Sayb/0msm/9NsJv/UbCb/02sm/89qJ//JaCj/zmkn/9NrJv/CZSn/lVQx/4NN
NP90Rzz/ZkJF/3JGOv/HZyj/y2gn/3JGN/+TRx3/tU4M/79QBv+CRCb/mVYy/9RsJv/UbCb/umIr/2BA
PP9YPT3/WDw8/2NISP/e2Nj//v7+/4t3d/+lWCv/120l/5BRMP+lh2v/9tKY/3lcU/9fSXz/Y0xz/2pP
Uf/KqH7//9ye/+3Kk//syZP//Nic///cnv/+257//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9Jr
Jv/Sayb/0msm/9RsJv/UbCb/1Gwm/9NrJv/Rayb/0msm/9FrJv+3YSv/m1cx/4tQNP99Szb/cEU4/6FY
L//WbCX/plot/1c7Wf9SNaX/UjTB/1I0uf9nQkf/xWYo/8toJ/91Rzb/sE0P/85TAP/MUgD/hUUl/5lW
Mv/UbCb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3tjY//7+/v+Ld3f/pFcr/9ZsJf+PUDH/pYdr//bT
mP97Xlf/cGHO/3lu+v9iS3r/uZhy//3Znf+Sc17/clNK/5FzXv+3l3T/68iS///bnf//3J7/p4dq/1Q6
PP+LUDT/02sm/9JrJv/Sayb/0msm/85qJ/+7Yir/q10u/5tWMf+KUDT/i1A0/8hnKP/Oaif/eUk3/3VC
Lf+PRx//oEoW/3tDKv+RUzP/1mwl/6ZaK/9XOXf/UTH0/1Ex+f9RM9j/aEJJ/8VmKP/LaCf/dUc2/65M
D//NUgD/y1IA/4VFJf+ZVjL/1Gwm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y2P/+/v7/i3d3/6RX
K//WbCX/j1Ax/6WHa//205j/e15X/3Bhzv96cP//ZE6B/7qZcv/72Jz/hGVV/5JQL/+aVC//a0M4/7KS
cf//3J7//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9RsJv+yXyz/aUI4/3ZDLv+DRSb/iEUj/2pC
N/+/ZCr/zmon/3hINv+oSxL/zlMA/85TAP+MRiH/kVMz/9ZsJf+mWiv/Vzl2/1Ex8f9RMfb/UTPW/2hC
Sf/FZij/y2gn/3VHNv+uTA//zVIA/8tSAP+FRSX/mVYy/9RsJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NI
SP/e2Nj//v7+/4t3d/+kVyv/1mwl/49QMf+lh2v/9tOY/3teV/9wYc7/enD//2ROgf+6mXL/+9ic/4Vm
Vf+rWyv/120l/4pOMv+sjW///9ye///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/qlwu/3ZD
Lv/DUAT/zFIA/71PCP9xRDT/v2Qq/85qJ/94SDb/qEsS/81SAP/MUgD/i0Yh/5JTM//WbCX/plor/1c5
dv9RMfH/UTH2/1Ez1v9oQkn/xWYo/8toJ/91Rzb/rkwP/81SAP/LUgD/hUUl/5lWMv/UbCb/1Gwm/7pi
K/9gQDz/WD09/1g8PP9jSEj/3tjY//7+/v+Ld3f/pFcr/9ZsJf+PUDH/pYdr//bTmP97Xlf/cGHO/3pw
//9kToH/uply//vYnP+FZlX/qlos/9VsJf+KTjL/rI5v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9Jr
Jv/Sayb/1Gwm/6tcLv94Qy3/yFEC/8xSAP+8Twj/cUQ0/79kKv/Oaif/eEg2/6hLEv/NUgD/zFIA/4tG
If+SUzP/1mwl/6ZaK/9XOXb/UTHx/1Ex9v9RM9b/aEJJ/8VmKP/LaCf/dUc2/65MD//NUgD/y1IA/4VF
Jf+ZVjL/1Gwm/9RsJv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/97Y2P/+/v7/i3d3/6VYK//WbCX/j1Ax/6WH
a//205j/e15X/3Bhzv96cP//ZE6B/7qZcv/72Jz/hWZV/6paLP/VbCX/ik4y/6yOb///3J7//9ye/6eH
av9UOjz/i1A0/9NrJv/Sayb/0msm/9RsJv+rXC7/eEMt/8dRAv/MUgD/vE8I/3FENP+/ZCr/zmon/3hI
Nv+oSxL/zVIA/8xSAP+LRiH/klMz/9ZsJf+mWiv/Vzl2/1Ex8f9RMfb/UTPW/2hCSf/FZij/y2gn/3VH
Nv+uTA//zVIA/8xSAP+GRSX/mVYy/9RsJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/e2Nj//v7+/4p3
d/+iViv/120l/5BRMf+lh2v/9tOY/3teV/9wYc7/enD//2ROgf+6mXL/+9ic/4VmVf+qWiz/1Wwl/4pO
Mv+sjm///9ye///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/q1wu/3hDLf/HUQL/zFIA/7xP
CP9xRDT/v2Qq/85qJ/94SDb/qEsS/81SAP/MUgD/i0Yh/5JTM//WbCX/plor/1c5dv9RMfH/UTH2/1Ez
1v9oQkn/xWYo/8toJ/91Rzb/r00P/8xSAP/CUAT/fkMo/5hVMv/UbCb/1Gwm/7piK/9gQDz/WD09/1g8
PP9jSEj/3tjY//////+YhH//b0Q3/5ZTL/9+STP/podq//bTmP97Xlf/cGHO/3pw//9kToH/uply//vY
nP+FZlX/qlos/9VsJf+KTjL/rI5v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/1Gwm/6tc
Lv94Qy3/x1EC/8xSAP+8Twj/cUQ0/79kKv/Oaif/eEg2/6hLEv/NUgD/zFIA/4tGIf+SUzP/1mwl/6Za
K/9XOXb/UTHz/1Ex+f9RMtj/aEJJ/8VmKP/LaCf/ckY3/4FEJv+BRCf/dEMw/29FN/+qXC7/1Gwm/9Rs
Jv+6Yiv/YEA8/1g9Pf9YPDz/Y0hI/93Y2P//////7tWx/8CfeP+PcV3/akxG/66Ob//20pj/e15X/29g
y/97cP//ZE6B/7qZcv/72Jz/hWZV/6paLP/VbCX/ik4y/6yOb///3J7//9ye/6eHav9UOjz/i1A0/9Nr
Jv/Sayb/0msm/9RsJv+rXC7/eEMt/8dRAv/MUgD/vE8I/3FENP+/ZCr/zmon/3hINv+oSxL/zVIA/8xS
AP+MRiH/kVMz/9ZsJf+mWiz/Vzpy/1Ey2v9SNMX/UjaY/2hCQv/FZij/z2on/5FSMv+ITzT/n1gw/7Rg
LP/FZin/0Gom/9JrJv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d2Nj////////mu///3J3/+9eb/+XC
jv/uy5T/99OZ/4VnWP9fSG7/aliu/2BIcP+6mXP//Nic/4VmVf+qWiz/1Wwl/4pOMv+sjm///9ye///c
nv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/UbCb/q1wu/3hDLf/HUQL/zFIA/7xPCP9xRDT/v2Qq/85q
J/94SDb/qkwS/85TAP/JUgH/h0Uk/5FTM//WbCX/qFst/1w+R/9jQFD/cUY//4RNNP+iWS//zmkn/9Jr
Jv/Rayb/0msm/9RsJv/UbCb/02sm/9JrJv/Sayb/1Gwm/7piK/9gQDz/WD09/1g8PP9jSEj/3djY////
///+5bv//tmb//7anf//257//9ue//7anf/lwo7/t5Zx/4lrWv9pTUn/waB6//vXm/+FZlX/qlos/9dt
Jf+LTzL/rI1v///cnv//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/1Gwm/6tcLv94Qy3/yFEC/81S
AP+9Twj/cUQ0/79kKv/Oaif/dkg3/4dFI/+MRiH/ekMs/2pBN/+eVzD/1Gwm/8dnKP+vXiz/vmMp/8po
J//Rayb/02wm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9RsJv+6Yiv/YEA8/1g9
Pf9YPDz/Y0hI/93Y2P///////uW7//7Zm//+2p3//tqd//7anf/+2p3//9ue///cnv/51Zr/5MKO//PQ
l//615v/imxa/3lHNP+oWiz/gUoz/6yNb///3J7//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9Rs
Jv+rXC7/eEMt/8BQBv+5Twn/nkkX/2tCN/+/ZCr/0Gom/4xQM/96Sjf/j1Iz/6VaL/+6Yiv/zWkn/9Jr
Jv/Tayb/1Gwm/9NrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/UbCb/umIr/2BAPP9YPT3/WDw8/2NISP/d19j///////7lu//+2Zv//tqd//7anf/+2p3//tqd//7a
nf/+2p3//tqd///cnv/+253//tqd/+C+jP+sjW7/g2RU/2ZHQf+zk3H//9ye///cnv+nh2r/VDo8/4tQ
NP/Tayb/0msm/9JrJv/UbCb/rF0t/2M/OP90QzD/cUQ1/3dINv+QUjP/ymgo/9NrJv/NaSf/zmon/9Nr
Jv/UbCb/02wm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Wwl/7hhK/9gQDz/WT09/1k9Pf9cQED/mYiI/9nS0f/537X//9yd///b
nv/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf//3J7//9ye//XSmP/buYn/7MmS///b
nf//3J7/p4dq/1Q6PP+LUDT/02sm/9JrJv/Sayb/02sm/8VmKf+hWS//r14t/8BkKv/MaSf/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf95STf/Wz49/1k9Pf9ZPT3UWT09/Fc7
O/9jSUn/iW1e/8Ggef/typP//tue///cnv/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7a
nf/+253//9ye//7bnv/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Tayb/1Gwm/9Rs
Jv/Tayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1k9
PfhZPT3KWT09IFk9PWhZPT2+WDw881c7O/9bPz7/dVdN/6iIa//duor/+tab///cnv//257//tqd//7a
nf/+2p3//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9Jr
Jv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1HWT09GVk9PQBZPT0AWT09DVk9PURZPT2aWT094Vc7PP5XOzz/ZklE/49w
XP/HpX3/8c2V///cnv//3J7//tqd//7anf/+2p3//tqd//7anf/+2p3//tqd//7anf//3J7/p4dq/1Q6
PP+LUDT/02sm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZYPj4AWjw8AAAAAAAAAAAAAAAAAAAAAABZPT0AWT09A1k9
PSZZPT1zWT09xlg8PPdXOzz/XEA//3lcUP+ujm7/4b+M//vYnP//3J7//9ud//7anf/+2p3//tqd//7a
nf/+2p3//9ye/6eHav9UOjz/i1A0/9NrJv/Sayb/0msm/9JrJv/Sayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZYPj4AWzs7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABZPT0AWT8/AFk9PRFZPT1NWT09o1k9PedXOzz+WDw8/2lMRv+VdmD/zKuA//PQ
l///3J7//9ue//7anf/+2p3//tqd///cnv+nh2r/VDo8/4tQNP/Tayb/0msm/9JrJv/Sayb/0msm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZZPT0AWT09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZPT0AWT09AFk9PQVZPT0tWT09fVk9
Pc5YPDz5Vzs8/15CQP9+YFP/tJRy/+XDj//92Zz//9ye//7bnf//3J7/p4dq/1Q6PP+LUDT/02sm/9Jr
Jv/Sayb/0msm/9NrJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZXPj4AWzw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAWT09AFo9PQBZPT0VWT09Vlk9Pa1ZPT3sVzs8/1k9Pf9sT0j/m3tj/9Kwg//20pj//96g/6eI
a/9UOjz/i1A0/9RsJv/UbCb/1Gwm/89qJ//EZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZXPT0AWz09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWz8/AFk9PQBZPT0HWT09NFk9PYZZPT3VWDw8+1c7
PP9gREH/g2VV/7ybd/+YeGH/VTo8/4hPNP/FZin/sF4s/5dVMf9+Szb/aUM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZZPT0AWj09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFk9
PQBZPT0BWT09Glk9PWBZPT22WDw98Fc7PP9aPj7/XkJA/1g9Pf9kQTv/akM6/10+PP9YPT3/Vzw9/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZYPj4AWjw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFo+PgBZPT0AWT09Clk9PTxZPT2QWT0921k9Pf1ZPT3/WD09/1g9
PfdZPT3eWT09s1k9PX1ZPT1IWT09Hlk9PQZZPT0AWT09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZPT0AWT09Alk9
PSBZPT1qWT09oFk9PX5ZPT1IWT09Hlk9PQZYPj4AWjw8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABZPT0AWT09AFk9PQFZPDwAWjs7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAH8AAAAAAA
AH/+AAAAAAAH//+AAAAAAH///+AAAAAH/////AAAAH//////AAAH///////gAH////////gH////////
/j////////////////////////////////////////////////8=
</value>
</data>
</root>
\ No newline at end of file
\ No newline at end of file
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.Designer.cs
查看文件 @
f36d1d7
...
@@ -69,6 +69,8 @@
...
@@ -69,6 +69,8 @@
this
.
toolStripSeparator6
=
new
System
.
Windows
.
Forms
.
ToolStripSeparator
();
this
.
toolStripSeparator6
=
new
System
.
Windows
.
Forms
.
ToolStripSeparator
();
this
.
标签编辑
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
标签编辑
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
帮助
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
帮助
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
toolStripMenuItem3
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
toolStripSeparator5
=
new
System
.
Windows
.
Forms
.
ToolStripSeparator
();
this
.
清空日志
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
清空日志
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
toolStripSeparator10
=
new
System
.
Windows
.
Forms
.
ToolStripSeparator
();
this
.
toolStripSeparator10
=
new
System
.
Windows
.
Forms
.
ToolStripSeparator
();
this
.
复制日志
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
this
.
复制日志
ToolStripMenuItem
=
new
System
.
Windows
.
Forms
.
ToolStripMenuItem
();
...
@@ -429,37 +431,39 @@
...
@@ -429,37 +431,39 @@
// 二维码学习ToolStripMenuItem
// 二维码学习ToolStripMenuItem
//
//
this
.
二维码学习
ToolStripMenuItem
.
Name
=
"二维码学习ToolStripMenuItem"
;
this
.
二维码学习
ToolStripMenuItem
.
Name
=
"二维码学习ToolStripMenuItem"
;
this
.
二维码学习
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
6
0
,
26
);
this
.
二维码学习
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
8
0
,
26
);
this
.
二维码学习
ToolStripMenuItem
.
Text
=
"二维码学习"
;
this
.
二维码学习
ToolStripMenuItem
.
Text
=
"二维码学习"
;
this
.
二维码学习
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
二维码学习
ToolStripMenuItem_Click
);
this
.
二维码学习
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
二维码学习
ToolStripMenuItem_Click
);
//
//
// toolStripSeparator7
// toolStripSeparator7
//
//
this
.
toolStripSeparator7
.
Name
=
"toolStripSeparator7"
;
this
.
toolStripSeparator7
.
Name
=
"toolStripSeparator7"
;
this
.
toolStripSeparator7
.
Size
=
new
System
.
Drawing
.
Size
(
1
5
7
,
6
);
this
.
toolStripSeparator7
.
Size
=
new
System
.
Drawing
.
Size
(
1
7
7
,
6
);
//
//
// toolStripMenuItem2
// toolStripMenuItem2
//
//
this
.
toolStripMenuItem2
.
Name
=
"toolStripMenuItem2"
;
this
.
toolStripMenuItem2
.
Name
=
"toolStripMenuItem2"
;
this
.
toolStripMenuItem2
.
Size
=
new
System
.
Drawing
.
Size
(
1
6
0
,
26
);
this
.
toolStripMenuItem2
.
Size
=
new
System
.
Drawing
.
Size
(
1
8
0
,
26
);
this
.
toolStripMenuItem2
.
Text
=
"AGV调试"
;
this
.
toolStripMenuItem2
.
Text
=
"AGV调试"
;
this
.
toolStripMenuItem2
.
Click
+=
new
System
.
EventHandler
(
this
.
toolStripMenuItem2_Click
);
this
.
toolStripMenuItem2
.
Click
+=
new
System
.
EventHandler
(
this
.
toolStripMenuItem2_Click
);
//
//
// toolStripSeparator6
// toolStripSeparator6
//
//
this
.
toolStripSeparator6
.
Name
=
"toolStripSeparator6"
;
this
.
toolStripSeparator6
.
Name
=
"toolStripSeparator6"
;
this
.
toolStripSeparator6
.
Size
=
new
System
.
Drawing
.
Size
(
1
5
7
,
6
);
this
.
toolStripSeparator6
.
Size
=
new
System
.
Drawing
.
Size
(
1
7
7
,
6
);
//
//
// 标签编辑ToolStripMenuItem
// 标签编辑ToolStripMenuItem
//
//
this
.
标签编辑
ToolStripMenuItem
.
Name
=
"标签编辑ToolStripMenuItem"
;
this
.
标签编辑
ToolStripMenuItem
.
Name
=
"标签编辑ToolStripMenuItem"
;
this
.
标签编辑
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
6
0
,
26
);
this
.
标签编辑
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
8
0
,
26
);
this
.
标签编辑
ToolStripMenuItem
.
Text
=
"标签编辑"
;
this
.
标签编辑
ToolStripMenuItem
.
Text
=
"标签编辑"
;
this
.
标签编辑
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
标签编辑
ToolStripMenuItem_Click
);
this
.
标签编辑
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
标签编辑
ToolStripMenuItem_Click
);
//
//
// 帮助ToolStripMenuItem
// 帮助ToolStripMenuItem
//
//
this
.
帮助
ToolStripMenuItem
.
DropDownItems
.
AddRange
(
new
System
.
Windows
.
Forms
.
ToolStripItem
[]
{
this
.
帮助
ToolStripMenuItem
.
DropDownItems
.
AddRange
(
new
System
.
Windows
.
Forms
.
ToolStripItem
[]
{
this
.
toolStripMenuItem3
,
this
.
toolStripSeparator5
,
this
.
清空日志
ToolStripMenuItem
,
this
.
清空日志
ToolStripMenuItem
,
this
.
toolStripSeparator10
,
this
.
toolStripSeparator10
,
this
.
复制日志
ToolStripMenuItem
,
this
.
复制日志
ToolStripMenuItem
,
...
@@ -469,34 +473,46 @@
...
@@ -469,34 +473,46 @@
this
.
帮助
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
25
);
this
.
帮助
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
25
);
this
.
帮助
ToolStripMenuItem
.
Text
=
" 系统 "
;
this
.
帮助
ToolStripMenuItem
.
Text
=
" 系统 "
;
//
//
// toolStripMenuItem3
//
this
.
toolStripMenuItem3
.
Name
=
"toolStripMenuItem3"
;
this
.
toolStripMenuItem3
.
Size
=
new
System
.
Drawing
.
Size
(
180
,
26
);
this
.
toolStripMenuItem3
.
Text
=
"历史记录"
;
this
.
toolStripMenuItem3
.
Click
+=
new
System
.
EventHandler
(
this
.
toolStripMenuItem3_Click
);
//
// toolStripSeparator5
//
this
.
toolStripSeparator5
.
Name
=
"toolStripSeparator5"
;
this
.
toolStripSeparator5
.
Size
=
new
System
.
Drawing
.
Size
(
177
,
6
);
//
// 清空日志ToolStripMenuItem
// 清空日志ToolStripMenuItem
//
//
this
.
清空日志
ToolStripMenuItem
.
Name
=
"清空日志ToolStripMenuItem"
;
this
.
清空日志
ToolStripMenuItem
.
Name
=
"清空日志ToolStripMenuItem"
;
this
.
清空日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
44
,
26
);
this
.
清空日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
清空日志
ToolStripMenuItem
.
Text
=
"清空日志"
;
this
.
清空日志
ToolStripMenuItem
.
Text
=
"清空日志"
;
this
.
清空日志
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
清空日志
ToolStripMenuItem_Click
);
this
.
清空日志
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
清空日志
ToolStripMenuItem_Click
);
//
//
// toolStripSeparator10
// toolStripSeparator10
//
//
this
.
toolStripSeparator10
.
Name
=
"toolStripSeparator10"
;
this
.
toolStripSeparator10
.
Name
=
"toolStripSeparator10"
;
this
.
toolStripSeparator10
.
Size
=
new
System
.
Drawing
.
Size
(
1
41
,
6
);
this
.
toolStripSeparator10
.
Size
=
new
System
.
Drawing
.
Size
(
1
77
,
6
);
//
//
// 复制日志ToolStripMenuItem
// 复制日志ToolStripMenuItem
//
//
this
.
复制日志
ToolStripMenuItem
.
Name
=
"复制日志ToolStripMenuItem"
;
this
.
复制日志
ToolStripMenuItem
.
Name
=
"复制日志ToolStripMenuItem"
;
this
.
复制日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
44
,
26
);
this
.
复制日志
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
复制日志
ToolStripMenuItem
.
Text
=
"复制日志"
;
this
.
复制日志
ToolStripMenuItem
.
Text
=
"复制日志"
;
this
.
复制日志
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
复制日志
ToolStripMenuItem_Click
);
this
.
复制日志
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
复制日志
ToolStripMenuItem_Click
);
//
//
// toolStripSeparator11
// toolStripSeparator11
//
//
this
.
toolStripSeparator11
.
Name
=
"toolStripSeparator11"
;
this
.
toolStripSeparator11
.
Name
=
"toolStripSeparator11"
;
this
.
toolStripSeparator11
.
Size
=
new
System
.
Drawing
.
Size
(
1
41
,
6
);
this
.
toolStripSeparator11
.
Size
=
new
System
.
Drawing
.
Size
(
1
77
,
6
);
//
//
// 版本号ToolStripMenuItem
// 版本号ToolStripMenuItem
//
//
this
.
版本号
ToolStripMenuItem
.
Name
=
"版本号ToolStripMenuItem"
;
this
.
版本号
ToolStripMenuItem
.
Name
=
"版本号ToolStripMenuItem"
;
this
.
版本号
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
44
,
26
);
this
.
版本号
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
1
80
,
26
);
this
.
版本号
ToolStripMenuItem
.
Text
=
"关于软件"
;
this
.
版本号
ToolStripMenuItem
.
Text
=
"关于软件"
;
this
.
版本号
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
版本号
ToolStripMenuItem_Click
);
this
.
版本号
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
版本号
ToolStripMenuItem_Click
);
//
//
...
@@ -609,6 +625,8 @@
...
@@ -609,6 +625,8 @@
private
System
.
Windows
.
Forms
.
Label
lblCurrTray
;
private
System
.
Windows
.
Forms
.
Label
lblCurrTray
;
private
System
.
Windows
.
Forms
.
Label
lblOutTray
;
private
System
.
Windows
.
Forms
.
Label
lblOutTray
;
private
System
.
Windows
.
Forms
.
CheckBox
chbOpenX
;
private
System
.
Windows
.
Forms
.
CheckBox
chbOpenX
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
toolStripMenuItem3
;
private
System
.
Windows
.
Forms
.
ToolStripSeparator
toolStripSeparator5
;
}
}
}
}
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.cs
查看文件 @
f36d1d7
...
@@ -54,6 +54,8 @@ namespace OnlineStore.AutoCountClient
...
@@ -54,6 +54,8 @@ namespace OnlineStore.AutoCountClient
FrmOutputEquip
frm2
=
new
FrmOutputEquip
(
robot
.
outputEquip
);
FrmOutputEquip
frm2
=
new
FrmOutputEquip
(
robot
.
outputEquip
);
AddForm
(
" "
+
robot
.
outputEquip
.
Name
+
" "
,
frm2
);
AddForm
(
" "
+
robot
.
outputEquip
.
Name
+
" "
,
frm2
);
robot
.
XrayBean
.
GetImageEvent
+=
EquipBean_GetImageEvent
;
robot
.
XrayBean
.
GetImageEvent
+=
EquipBean_GetImageEvent
;
}
}
private
void
AddForm
(
string
text
,
Form
form
)
private
void
AddForm
(
string
text
,
Form
form
)
{
{
...
@@ -92,10 +94,7 @@ namespace OnlineStore.AutoCountClient
...
@@ -92,10 +94,7 @@ namespace OnlineStore.AutoCountClient
int
autoValue
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
int
autoValue
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
App_AutoRun
);
chbAutoRun
.
Checked
=
autoValue
.
Equals
(
1
);
chbAutoRun
.
Checked
=
autoValue
.
Equals
(
1
);
LoadStoreData
();
LoadStoreData
();
LoadListView
();
LoadListView
();
LogUtil
.
logBox
=
this
.
logBox
;
LogUtil
.
logBox
=
this
.
logBox
;
LoadOk
=
true
;
LoadOk
=
true
;
// HideForm();
// HideForm();
...
@@ -211,12 +210,13 @@ namespace OnlineStore.AutoCountClient
...
@@ -211,12 +210,13 @@ namespace OnlineStore.AutoCountClient
{
{
Camera
.
_cam
.
CloseAll
();
Camera
.
_cam
.
CloseAll
();
}
}
System
.
Environment
.
Exit
(
System
.
Environment
.
ExitCode
);
robot
.
sQLite
.
Close
();
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"退出出错:"
,
ex
);
LogUtil
.
error
(
"退出出错:"
,
ex
);
}
}
System
.
Environment
.
Exit
(
System
.
Environment
.
ExitCode
);
//this.Close();
//this.Close();
}
}
}
}
...
@@ -725,5 +725,11 @@ namespace OnlineStore.AutoCountClient
...
@@ -725,5 +725,11 @@ namespace OnlineStore.AutoCountClient
robot
.
XrayBean
.
OpenXLine
=
chbOpenX
.
Checked
;
robot
.
XrayBean
.
OpenXLine
=
chbOpenX
.
Checked
;
LogUtil
.
info
(
"勾选:启用X射线点料 ="
+
chbOpenX
.
Checked
);
LogUtil
.
info
(
"勾选:启用X射线点料 ="
+
chbOpenX
.
Checked
);
}
}
private
void
toolStripMenuItem3_Click
(
object
sender
,
EventArgs
e
)
{
FrmAnalyze
frm
=
new
FrmAnalyze
();
frm
.
ShowDialog
();
}
}
}
}
}
RC1266-AutoCountMachine/source/AutoCountClient/data/DB.db3
0 → 100644
查看文件 @
f36d1d7
此文件类型无法预览
RC1266-AutoCountMachine/source/Common/Setting_Init.cs
查看文件 @
f36d1d7
...
@@ -85,5 +85,7 @@ namespace OnlineStore.Common
...
@@ -85,5 +85,7 @@ namespace OnlineStore.Common
public
static
string
ThresholdValue
=
"ThresholdValue"
;
public
static
string
ThresholdValue
=
"ThresholdValue"
;
public
static
string
CounParamConfig
=
"CounParamConfig"
;
public
static
string
CounParamConfig
=
"CounParamConfig"
;
public
static
string
DataPath
=
"DataPath"
;
}
}
}
}
RC1266-AutoCountMachine/source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
f36d1d7
...
@@ -77,6 +77,9 @@
...
@@ -77,6 +77,9 @@
<SpecificVersion>False</SpecificVersion>
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\dll\log4net.dll</HintPath>
<HintPath>..\..\dll\log4net.dll</HintPath>
</Reference>
</Reference>
<Reference Include="Retrospect">
<HintPath>..\..\dll\database\Retrospect.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing" />
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip.cs
查看文件 @
f36d1d7
...
@@ -26,7 +26,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -26,7 +26,7 @@ namespace OnlineStore.DeviceLibrary
public
BatchMoveBean
RightBatchMove
=
null
;
public
BatchMoveBean
RightBatchMove
=
null
;
public
bool
AutoInput
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
AutoInput
).
Equals
(
1
);
public
bool
AutoInput
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
AutoInput
).
Equals
(
1
);
public
int
DefautTargetP
=
0
;
public
int
DefautTargetP
=
1
;
public
InputEquip
(
string
cid
,
InputEquip_Config
config
)
public
InputEquip
(
string
cid
,
InputEquip_Config
config
)
{
{
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
查看文件 @
f36d1d7
...
@@ -203,28 +203,29 @@ namespace OnlineStore.DeviceLibrary
...
@@ -203,28 +203,29 @@ namespace OnlineStore.DeviceLibrary
// MoveInfo.MoveParam.TargetPosType = 1;
// MoveInfo.MoveParam.TargetPosType = 1;
// WorkLog(" 右侧入口入料,直接放到XRay:" + MoveInfo.MoveParam.ToStr());
// WorkLog(" 右侧入口入料,直接放到XRay:" + MoveInfo.MoveParam.ToStr());
//}
//}
else
if
(
SServerManager
.
CanConnect
())
{
Task
task
=
Task
.
Factory
.
StartNew
(
delegate
{
int
needPosition
=
0
;
string
msg
=
SServerManager
.
Get_VMICheckRLC
(
Name
,
MoveInfo
.
MoveParam
.
WareCode
,
out
needPosition
);
if
(
needPosition
>=
1
&&
needPosition
<=
3
)
//else if (SServerManager.CanConnect())
{
//{
MoveInfo
.
MoveParam
.
TargetPosType
=
needPosition
;
// Task task = Task.Factory.StartNew(delegate
WorkLog
(
" 【"
+
MoveInfo
.
MoveParam
.
WareCode
+
"】通过接口获取目标位置:"
+
needPosition
);
// {
}
// int needPosition = 0;
// else if (!msg.Equals("") || needPosition.Equals(0))
// string msg = SServerManager.Get_VMICheckRLC(Name, MoveInfo.MoveParam.WareCode, out needPosition);
else
{
// if (needPosition >= 1 && needPosition <= 3)
WorkLog
(
" 【"
+
MoveInfo
.
MoveParam
.
WareCode
+
"】获取是否测值失败:"
+
msg
);
// {
MoveInfo
.
MoveParam
.
TargetPosType
=
1
;
// MoveInfo.MoveParam.TargetPosType = needPosition;
MoveInfo
.
MoveParam
.
IsNgReel
=
true
;
// WorkLog(" 【" + MoveInfo.MoveParam.WareCode + "】通过接口获取目标位置:" + needPosition);
MoveInfo
.
MoveParam
.
NgMsg
=
msg
;
// }
}
// // else if (!msg.Equals("") || needPosition.Equals(0))
});
// else
}
// {
// WorkLog(" 【" + MoveInfo.MoveParam.WareCode + "】获取是否测值失败:" + msg);
// MoveInfo.MoveParam.TargetPosType = 1;
// MoveInfo.MoveParam.IsNgReel = true;
// MoveInfo.MoveParam.NgMsg = msg;
// }
// });
//}
else
else
{
{
if
(
MoveInfo
.
MoveParam
.
TargetPosType
.
Equals
(
0
))
if
(
MoveInfo
.
MoveParam
.
TargetPosType
.
Equals
(
0
))
...
@@ -251,16 +252,14 @@ namespace OnlineStore.DeviceLibrary
...
@@ -251,16 +252,14 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
LogUtil
.
error
(
WarnMsg
,
MoveInfo
.
ErrorLogType
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
return
;
}
}
else
else
{
{
//随机目标地址
//
//
随机目标地址
Random
r
=
new
Random
();
//
Random r = new Random();
int
targetP
=
r
.
Next
(
1
,
100
)
%
3
+
1
;
//
int targetP = r.Next(1, 100) % 3 + 1;
MoveInfo
.
MoveParam
.
TargetPosType
=
targetP
;
MoveInfo
.
MoveParam
.
TargetPosType
=
1
;
WorkLog
(
" 随机放料目标:"
+
targetP
);
WorkLog
(
" 随机放料目标:"
+
1
);
}
}
}
}
if
(
MoveInfo
.
MoveParam
.
TargetPosType
.
Equals
(
1
))
if
(
MoveInfo
.
MoveParam
.
TargetPosType
.
Equals
(
1
))
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/RobotBean.cs
查看文件 @
f36d1d7
using
log4net
;
using
BLL
;
using
log4net
;
using
OnlineStore.Common
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System
;
...
@@ -28,7 +29,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -28,7 +29,7 @@ namespace OnlineStore.DeviceLibrary
public
Robot_Config
Config
=
null
;
public
Robot_Config
Config
=
null
;
private
bool
canStart
=
false
;
private
bool
canStart
=
false
;
public
SQLite
sQLite
=
null
;
public
RobotBean
(
Robot_Config
lineConfig
,
InputEquip_Config
fconfig
,
XRay_Config
xconfig
,
OutputEquip_Config
pconfig
)
public
RobotBean
(
Robot_Config
lineConfig
,
InputEquip_Config
fconfig
,
XRay_Config
xconfig
,
OutputEquip_Config
pconfig
)
{
{
equipsMap
=
new
Dictionary
<
int
,
EquipBase
>();
equipsMap
=
new
Dictionary
<
int
,
EquipBase
>();
...
@@ -46,7 +47,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -46,7 +47,7 @@ namespace OnlineStore.DeviceLibrary
IsDebug
=
Config
.
IsDebug
.
Equals
(
1
);
IsDebug
=
Config
.
IsDebug
.
Equals
(
1
);
List
<
string
>
ioList
=
new
List
<
string
>();
List
<
string
>
ioList
=
new
List
<
string
>();
ioList
=
new
List
<
string
>(
DeviceConfig
.
ProIOIpMap
.
Values
);
ioList
=
new
List
<
string
>(
DeviceConfig
.
ProIOIpMap
.
Values
);
...
@@ -71,6 +72,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -71,6 +72,10 @@ namespace OnlineStore.DeviceLibrary
mainTimer
.
Enabled
=
true
;
mainTimer
.
Enabled
=
true
;
canStart
=
true
;
canStart
=
true
;
AgvClient
.
Init
();
AgvClient
.
Init
();
string
dataFile
=
Application
.
StartupPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
DataPath
);
sQLite
=
new
SQLite
(
dataFile
);
bool
result
=
sQLite
.
Connect
();
LogUtil
.
info
(
Name
+
"连接【"
+
dataFile
+
"】结果: "
+
result
+
","
+
sQLite
.
ErrInfo
);
});
});
}
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
查看文件 @
f36d1d7
...
@@ -338,7 +338,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -338,7 +338,7 @@ namespace OnlineStore.DeviceLibrary
}
}
int
count
=
99999
;
int
count
=
99999
;
WorkLog
(
"点料:开始调用 countImage.GetCount "
);
WorkLog
(
"点料:开始调用 countImage.GetCount "
);
bool
result
=
countImage
.
GetCount
(
lastTh
,
out
count
);
bool
result
=
countImage
.
GetCount
(
lastTh
,
out
count
);
WorkLog
(
"点料:获取点料结果["
+
lastTh
+
"]=【"
+
count
+
"】,result="
+
result
+
",保存并上传结果"
);
WorkLog
(
"点料:获取点料结果["
+
lastTh
+
"]=【"
+
count
+
"】,result="
+
result
+
",保存并上传结果"
);
if
(
Work_ReelInfo
.
WareCount
<=
0
)
if
(
Work_ReelInfo
.
WareCount
<=
0
)
...
@@ -360,6 +360,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -360,6 +360,8 @@ namespace OnlineStore.DeviceLibrary
{
{
LogUtil
.
error
(
"点料:未找到结果图片【"
+
outF
+
"】"
);
LogUtil
.
error
(
"点料:未找到结果图片【"
+
outF
+
"】"
);
}
}
int
c
=
RobotManager
.
robot
.
sQLite
.
Insert
(
Work_ReelInfo
.
WareCode
,
Work_ReelInfo
.
PlateW
,
Work_ReelInfo
.
PlateH
,
count
,
outF
);
LogUtil
.
info
(
"插入数据【"
+
Work_ReelInfo
.
WareCode
+
"】【"
+
count
+
"】结果:"
+
c
+
" ,"
+
RobotManager
.
robot
.
sQLite
.
ErrInfo
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论