Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
AutoCountMachine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 021a213a
由
刘韬
编写于
2025-10-20 09:58:47 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
稳定版本
1 个父辈
bedca39f
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
34 个修改的文件
包含
623 行增加
和
200 行删除
RC1266-AutoCountMachine/oldDll/Asa.Camera.VisionLib.dll
RC1266-AutoCountMachine/oldDll/Asa.Camera.VisionLib.xml
RC1266-AutoCountMachine/oldDll/Asa.CarerayImage.dll
RC1266-AutoCountMachine/oldDll/Asa.CarerayImage.xml
RC1266-AutoCountMachine/source/AutoCountClient/App.config
RC1266-AutoCountMachine/source/AutoCountClient/AutoCountClient.csproj
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.cs
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.Designer.cs
RC1266-AutoCountMachine/source/AutoCountClient/Program.cs
RC1266-AutoCountMachine/source/AutoCountClient/Properties/Resources.Designer.cs
RC1266-AutoCountMachine/source/AutoCountClient/Properties/Settings.Designer.cs
RC1266-AutoCountMachine/source/AutoCountSystem/App.config
RC1266-AutoCountMachine/source/AutoCountSystem/AutoCountSystem.csproj
RC1266-AutoCountMachine/source/CodeLibrary/CodeLibrary.csproj
RC1266-AutoCountMachine/source/CodeLibrary/HDCodeHelper.cs
RC1266-AutoCountMachine/source/CodeLibrary/RemoteDecodeHelper.cs
RC1266-AutoCountMachine/source/CodeLibrary/eyemDecode.cs
RC1266-AutoCountMachine/source/Common/Common.csproj
RC1266-AutoCountMachine/source/DeviceLibrary/DeviceLibrary.csproj
RC1266-AutoCountMachine/source/DeviceLibrary/bean/EquipBase.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/RobotBean.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/Camera.cs
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/EyemManager.cs
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
RC1266-AutoCountMachine/source/DeviceLibrary/manager/RobotManager.cs
RC1266-AutoCountMachine/source/DeviceLibrary/model/RobotMoveInfo.cs
RC1266-AutoCountMachine/source/LoadCVSLibrary/LoadCSVLibrary.csproj
RC1266-AutoCountMachine/source/UserFromControl/Properties/Resources.Designer.cs
RC1266-AutoCountMachine/source/UserFromControl/UserFromControl.csproj
RC1266-AutoCountMachine/oldDll/Asa.Camera.VisionLib.dll
0 → 100644
查看文件 @
021a213
此文件类型无法预览
RC1266-AutoCountMachine/oldDll/Asa.Camera.VisionLib.xml
0 → 100644
查看文件 @
021a213
此文件的差异被折叠,
点击展开。
RC1266-AutoCountMachine/oldDll/Asa.CarerayImage.dll
0 → 100644
查看文件 @
021a213
此文件类型无法预览
RC1266-AutoCountMachine/oldDll/Asa.CarerayImage.xml
0 → 100644
查看文件 @
021a213
此文件的差异被折叠,
点击展开。
RC1266-AutoCountMachine/source/AutoCountClient/App.config
查看文件 @
021a213
<?
xml
version
=
"1.0"
?>
<
configuration
>
<
configSections
>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
</
configSections
>
<
appSettings
>
<!--是否开机自动启动料仓-->
<
add
key
=
"App_AutoRun"
value
=
"1"
/>
<
add
key
=
"App_Title"
value
=
"自动点料机"
/>
<
add
key
=
"App_AutoRun"
value
=
"1"
/>
<
add
key
=
"App_Title"
value
=
"自动点料机"
/>
<
add
key
=
"ServerAddr"
value
=
"http://10.85.17.233"
/>
<
add
key
=
"ConfigPath_Robot"
value
=
"\RobotConfig\Config_Robot.csv"
/>
<
add
key
=
"ConfigPath_XRay"
value
=
"\RobotConfig\Config_XRay.csv"
/>
<
add
key
=
"ConfigPath_InputEquip"
value
=
"\RobotConfig\Config_InputEquip.csv"
/>
<
add
key
=
"ConfigPath_OutputEquip"
value
=
"\RobotConfig\Config_OutputEquip.csv"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<
add
key
=
"ConfigPath_Robot"
value
=
"\RobotConfig\Config_Robot.csv"
/>
<
add
key
=
"ConfigPath_XRay"
value
=
"\RobotConfig\Config_XRay.csv"
/>
<
add
key
=
"ConfigPath_InputEquip"
value
=
"\RobotConfig\Config_InputEquip.csv"
/>
<
add
key
=
"ConfigPath_OutputEquip"
value
=
"\RobotConfig\Config_OutputEquip.csv"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<!--二维码类型列表配置,用
#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<
add
key
=
"CodeType"
value
=
"Data Matrix ECC 200#QR Code"
/>
<
add
key
=
"CodeType"
value
=
"Data Matrix ECC 200#QR Code"
/>
<!--<
add
key
=
"CodeType"
value
=
"Data Matrix ECC 200"
/>-->
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<
add
key
=
"CodeParamPath"
value
=
"\CodeParam\\XRAY\countParam.csv"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<
add
key
=
"CodeParamPath"
value
=
"\CodeParam\\XRAY\countParam.csv"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<
add
key
=
"UseAIOBOX"
value
=
"1"
/>
<
add
key
=
"UseAIOBOX"
value
=
"1"
/>
<!--流水线监听端口-->
<
add
key
=
"TCPServerPort"
value
=
"5246"
/>
<
add
key
=
"TCPServerPort"
value
=
"5246"
/>
<!--
AGV
调度服务器地址-->
<
add
key
=
"AgvServerIp"
value
=
"10.85.199.20"
/>
<
add
key
=
"AgvServerIp"
value
=
"10.85.199.20"
/>
<!--
IO
配置-->
<
add
key
=
"DIMS"
value
=
"60"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<
add
key
=
"LineRunTest"
value
=
"1"
/>
<
add
key
=
"DIMS"
value
=
"60"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<
add
key
=
"LineRunTest"
value
=
"1"
/>
<
add
key
=
"DefaultPWD"
value
=
"123456"
/>
<
add
key
=
"Server_Log_Open"
value
=
"0"
/>
<
add
key
=
"CodeCount"
value
=
"3"
/>
<
add
key
=
"NeedScanCode"
value
=
"1"
/>
<
add
key
=
"Agv_Log_Open"
value
=
"0"
/>
<
add
key
=
"DefaultPWD"
value
=
"123456"
/>
<
add
key
=
"Server_Log_Open"
value
=
"0"
/>
<
add
key
=
"CodeCount"
value
=
"3"
/>
<
add
key
=
"NeedScanCode"
value
=
"1"
/>
<
add
key
=
"Agv_Log_Open"
value
=
"0"
/>
<!--检测到料串自动取料-->
<
add
key
=
"AutoInput"
value
=
"1"
/>
<
add
key
=
"InoutDefaultPosition"
value
=
"1000"
/>
<
add
key
=
"AutoInput"
value
=
"1"
/>
<
add
key
=
"InoutDefaultPosition"
value
=
"1000"
/>
<!--标签文件名称-->
<
add
key
=
"LabelName"
value
=
"test2"
/>
<
add
key
=
"LabelName"
value
=
"test2"
/>
<!--打印机名称
ZDesigner
GT800
-
300
dpi
EPL
-->
<
add
key
=
"PrinterName"
value
=
"Microsoft Print to PDF"
/>
<
add
key
=
"PrinterName"
value
=
"Microsoft Print to PDF"
/>
<!--是否启用打印标签-->
<
add
key
=
"NeedPrintLabel"
value
=
"0"
/>
<
add
key
=
"StickingPosJudgment"
value
=
"0"
/>
<
add
key
=
"NeedPrintLabel"
value
=
"0"
/>
<
add
key
=
"StickingPosJudgment"
value
=
"0"
/>
<!--
XRay
射线最后一次使用时间-->
<
add
key
=
"XRay_Data"
value
=
"2020-6-2"
/>
<
add
key
=
"ThresholdValue"
value
=
"30"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<
add
key
=
"DataPath"
value
=
"\data\DB.db3"
/>
<
add
key
=
"ResultMinCount"
value
=
"100"
/>
<
add
key
=
"ComPath_Config"
value
=
"\XRAY\pnDetailedList.csv"
/>
<
add
key
=
"LabelWaitMS"
value
=
"1000"
/>
<
add
key
=
"UseLabel"
value
=
"1"
/>
<
add
key
=
"XRay_Data"
value
=
"2020-6-2"
/>
<
add
key
=
"ThresholdValue"
value
=
"30"
/>
<
add
key
=
"CounParamConfig"
value
=
"\XRAY\countParam.csv"
/>
<
add
key
=
"DataPath"
value
=
"\data\DB.db3"
/>
<
add
key
=
"ResultMinCount"
value
=
"100"
/>
<
add
key
=
"ComPath_Config"
value
=
"\XRAY\pnDetailedList.csv"
/>
<
add
key
=
"LabelWaitMS"
value
=
"1000"
/>
<
add
key
=
"UseLabel"
value
=
"1"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/autoCount.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
file
value
=
"logs/autoCount.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
appender
name
=
"TheRFID"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/rfid/TheRFID.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
file
value
=
"logs/rfid/TheRFID.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
appender
name
=
"XRay"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/xray/XRay.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
file
value
=
"logs/xray/XRay.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
appender
name
=
"Count"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/Count.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
file
value
=
"logs/Count.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
appender
name
=
"AIOBOX"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/aio/AIOBOX.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
file
value
=
"logs/aio/AIOBOX.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
logger
name
=
"RollingLogFileAppender"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
</
logger
>
<
logger
name
=
"TheRFID"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"TheRFID"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"TheRFID"
/>
</
logger
>
<
logger
name
=
"XRay"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"XRay"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"XRay"
/>
</
logger
>
<
logger
name
=
"Count"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"Count"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"Count"
/>
</
logger
>
<
logger
name
=
"AIOBOX"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"AIOBOX"
/>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"AIOBOX"
/>
</
logger
>
<!--<
root
>
...
...
@@ -138,6 +138,6 @@
</
root
>-->
</
log4net
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.
1"
/>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.
2"
/>
</
startup
>
</
configuration
>
\ No newline at end of file
</
configuration
>
RC1266-AutoCountMachine/source/AutoCountClient/AutoCountClient.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.AutoCountClient</RootNamespace>
<AssemblyName>AutoCountClient</AssemblyName>
<TargetFrameworkVersion>v4.6.
1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.
2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<PublishUrl>publish\</PublishUrl>
...
...
@@ -63,7 +63,7 @@
</Reference>
<Reference Include="Asa.CarerayImage, Version=1.1.2.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\
..\..\CarerayImage\CarerayImage\bin\Debug
\Asa.CarerayImage.dll</HintPath>
<HintPath>..\..\
oldDll
\Asa.CarerayImage.dll</HintPath>
</Reference>
<Reference Include="Asa.PrintLabel">
<HintPath>..\..\dll\label\Asa.PrintLabel.dll</HintPath>
...
...
RC1266-AutoCountMachine/source/AutoCountClient/FrmOutputEquip.cs
查看文件 @
021a213
...
...
@@ -364,7 +364,8 @@ namespace OnlineStore.AutoCountClient
{
if
(
equipBean
.
runStatus
.
Equals
(
RobotRunStatus
.
Runing
))
{
if
(
equipBean
.
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
equipBean
.
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
var
re
=
equipBean
.
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
HIGH
);
if
(
re
.
GetValueOrDefault
()
&&
equipBean
.
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
{
WorkParam
param
=
new
WorkParam
();
param
.
IsTest
=
true
;
...
...
@@ -379,9 +380,9 @@ namespace OnlineStore.AutoCountClient
LogUtil
.
info
(
equipBean
.
Name
+
"点击:取放料测试"
);
equipBean
.
StartWorking
(
param
);
}
else
else
if
(
re
.
HasValue
)
{
if
(
equipBean
.
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
)
)
if
(
!
re
.
Value
)
{
MessageBox
.
Show
(
"XRay出口未检测到料盘,取放料测试 失败"
);
}
...
...
RC1266-AutoCountMachine/source/AutoCountClient/FrmRobotMain.Designer.cs
查看文件 @
021a213
...
...
@@ -384,7 +384,7 @@
this
.
批量
ToolStripMenuItem
,
this
.
单盘
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
.
Click
+=
new
System
.
EventHandler
(
this
.
元器件学习
ToolStripMenuItem_Click
);
//
...
...
@@ -405,24 +405,24 @@
// toolStripSeparator17
//
this
.
toolStripSeparator17
.
Name
=
"toolStripSeparator17"
;
this
.
toolStripSeparator17
.
Size
=
new
System
.
Drawing
.
Size
(
1
5
7
,
6
);
this
.
toolStripSeparator17
.
Size
=
new
System
.
Drawing
.
Size
(
1
7
7
,
6
);
//
// 二维码学习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
.
Click
+=
new
System
.
EventHandler
(
this
.
二维码学习
ToolStripMenuItem_Click
);
//
// 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
//
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
.
Visible
=
false
;
this
.
toolStripMenuItem2
.
Click
+=
new
System
.
EventHandler
(
this
.
toolStripMenuItem2_Click
);
...
...
@@ -430,13 +430,13 @@
// 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
);
this
.
toolStripSeparator6
.
Visible
=
false
;
//
// 标签编辑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
.
Click
+=
new
System
.
EventHandler
(
this
.
标签编辑
ToolStripMenuItem_Click
);
//
...
...
@@ -600,6 +600,7 @@
this
.
启用光栅信号
ToolStripMenuItem
.
Name
=
"启用光栅信号ToolStripMenuItem"
;
this
.
启用光栅信号
ToolStripMenuItem
.
Size
=
new
System
.
Drawing
.
Size
(
213
,
26
);
this
.
启用光栅信号
ToolStripMenuItem
.
Text
=
"启用光栅信号"
;
this
.
启用光栅信号
ToolStripMenuItem
.
Visible
=
false
;
this
.
启用光栅信号
ToolStripMenuItem
.
Click
+=
new
System
.
EventHandler
(
this
.
启用光栅信号
ToolStripMenuItem_Click
);
//
// toolStripSeparator14
...
...
RC1266-AutoCountMachine/source/AutoCountClient/Program.cs
查看文件 @
021a213
...
...
@@ -10,6 +10,11 @@ using System.Runtime.InteropServices;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
OnlineStore.DeviceLibrary
;
using
System.Drawing
;
using
CodeLibrary
;
using
System.IO
;
using
System.Text
;
using
System.Xml.Serialization
;
namespace
OnlineStore.AutoCountClient
{
...
...
@@ -54,8 +59,15 @@ namespace OnlineStore.AutoCountClient
[
STAThread
]
static
void
Main
(
string
[]
Args
)
{
//string code = " (X: 380,Y: 148) L00000000000WG9D19055;E20191230 0180;B7H.10618.5B1008082019123004000;R0080820191230E9600";
//string r = CodeManager.ReplaceCode(code);
//var b = new Bitmap(@"D:\logs\20230309\xray_监控点1_out_20230309091352_1646057.bmp");
//EyemManager.ReelCheck(b);
Application
.
SetUnhandledExceptionMode
(
UnhandledExceptionMode
.
CatchException
);
Application
.
ThreadException
+=
new
System
.
Threading
.
ThreadExceptionEventHandler
(
Application_ThreadException
);
AppDomain
.
CurrentDomain
.
UnhandledException
+=
new
UnhandledExceptionEventHandler
(
CurrentDomain_UnhandledException
);
...
...
RC1266-AutoCountMachine/source/AutoCountClient/Properties/Resources.Designer.cs
查看文件 @
021a213
...
...
@@ -19,7 +19,7 @@ namespace OnlineStore.AutoCountClient.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
5
.0.0.0"
)]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
7
.0.0.0"
)]
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
internal
class
Resources
{
...
...
@@ -47,8 +47,8 @@ namespace OnlineStore.AutoCountClient.Properties {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
///
重写当前线程的 CurrentUICulture 属性
。
/// 重写当前线程的 CurrentUICulture 属性
,对
///
使用此强类型资源类的所有资源查找执行重写
。
/// </summary>
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
internal
static
global
::
System
.
Globalization
.
CultureInfo
Culture
{
...
...
@@ -58,6 +58,16 @@ namespace OnlineStore.AutoCountClient.Properties {
set
{
resourceCulture
=
value
;
}
}
}
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal
static
System
.
Drawing
.
Bitmap
_152827
{
get
{
object
obj
=
ResourceManager
.
GetObject
(
"152827"
,
resourceCulture
);
return
((
System
.
Drawing
.
Bitmap
)(
obj
));
}
}
}
}
RC1266-AutoCountMachine/source/AutoCountClient/Properties/Settings.Designer.cs
查看文件 @
021a213
...
...
@@ -12,7 +12,7 @@ namespace OnlineStore.AutoCountClient.Properties {
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,
"1
5.9
.0.0"
)]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,
"1
7.5
.0.0"
)]
internal
sealed
partial
class
Settings
:
global
::
System
.
Configuration
.
ApplicationSettingsBase
{
private
static
Settings
defaultInstance
=
((
Settings
)(
global
::
System
.
Configuration
.
ApplicationSettingsBase
.
Synchronized
(
new
Settings
())));
...
...
RC1266-AutoCountMachine/source/AutoCountSystem/App.config
查看文件 @
021a213
<?
xml
version
=
"1.0"
?>
<?
xml
version
=
"1.0"
?>
<
configuration
>
<
configSections
>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
</
configSections
>
<
appSettings
>
...
...
@@ -33,12 +33,12 @@
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<
add
key
=
"UseAIOBOX"
value
=
"1"
/>
<!--流水线监听端口-->
<
add
key
=
"TCPServerPort"
value
=
"5246"
/>
<
add
key
=
"TCPServerPort"
value
=
"5246"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/Line-RC1246.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
...
...
@@ -52,6 +52,6 @@
</
root
>
</
log4net
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.
6.1
"
/>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.
8
"
/>
</
startup
>
</
configuration
>
\ No newline at end of file
</
configuration
>
RC1266-AutoCountMachine/source/AutoCountSystem/AutoCountSystem.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AssemblyLineSystem</RootNamespace>
<AssemblyName>AssemblyLineSystem</AssemblyName>
<TargetFrameworkVersion>v4.
6.1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
8
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
RC1266-AutoCountMachine/source/CodeLibrary/CodeLibrary.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CodeLibrary</RootNamespace>
<AssemblyName>CodeLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.
1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.
2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
@@ -95,6 +95,7 @@
<Compile Include="ImageHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="CodeResourceControl.cs" />
<Compile Include="RemoteDecodeHelper.cs" />
<Compile Include="ZXingCodeHelper.cs" />
</ItemGroup>
<ItemGroup>
...
...
RC1266-AutoCountMachine/source/CodeLibrary/HDCodeHelper.cs
查看文件 @
021a213
...
...
@@ -577,6 +577,7 @@ public class CodeInfo
public
int
Y
=
0
;
public
string
CodeType
;
public
double
Orientation
=
0
;
public
CodeInfo
()
{
}
public
CodeInfo
(
string
codeStr
,
int
x
,
int
y
)
{
this
.
CodeStr
=
codeStr
;
...
...
RC1266-AutoCountMachine/source/CodeLibrary/RemoteDecodeHelper.cs
0 → 100644
查看文件 @
021a213
using
CodeLibrary
;
using
HalconDotNet
;
using
Microsoft.Win32
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Drawing
;
using
System.IO
;
using
System.Linq
;
using
System.Net
;
using
System.Runtime.Serialization.Formatters.Binary
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Xml
;
using
System.Xml.Serialization
;
public
class
RemoteDecodeHelper
{
static
int
webclienttimeout
=
30
*
1000
;
static
Process
p
=
new
Process
();
static
string
serverhost
=
"http://127.0.0.1:58137/"
;
public
static
List
<
CodeInfo
>
DecodeRequest
(
HObject
hoimg
,
RemoteDecodeParam
remoteDecodeParam
)
{
byte
[]
requestdata
;
lock
(
hoimg
)
{
using
(
MemoryStream
mStream
=
new
MemoryStream
())
{
hoimg
.
Serialize
(
mStream
);
requestdata
=
mStream
.
ToArray
();
mStream
.
Close
();
}
}
return
DecodeRequest
(
requestdata
,
remoteDecodeParam
,
true
);
}
public
static
List
<
CodeInfo
>
DecodeRequest
(
Bitmap
bitmap
,
RemoteDecodeParam
remoteDecodeParam
)
{
if
(
bitmap
==
null
)
return
null
;
byte
[]
requestdata
;
lock
(
bitmap
)
{
using
(
MemoryStream
mStream
=
new
MemoryStream
())
{
BinaryFormatter
bf
=
new
BinaryFormatter
();
bf
.
Serialize
(
mStream
,
bitmap
);
requestdata
=
mStream
.
ToArray
();
mStream
.
Close
();
}
}
return
DecodeRequest
(
requestdata
,
remoteDecodeParam
);
}
static
List
<
CodeInfo
>
DecodeRequest
(
byte
[]
requestdata
,
RemoteDecodeParam
remoteDecodeParam
,
bool
isHObject
=
false
)
{
try
{
CheckAndRunServer
();
}
catch
{
return
new
List
<
CodeInfo
>
{
new
CodeInfo
(
"ScanCodeServer error"
,
0
,
0
)
};
}
string
param
;
using
(
MemoryStream
mStreamparam
=
new
MemoryStream
())
{
XmlSerializer
xf
=
new
XmlSerializer
(
typeof
(
RemoteDecodeParam
));
xf
.
Serialize
(
mStreamparam
,
remoteDecodeParam
);
param
=
base64UrlEncode
(
mStreamparam
.
ToArray
());
mStreamparam
.
Close
();
}
string
url
=
serverhost
+
"ProcessBitmap?param="
;
if
(
isHObject
)
url
=
serverhost
+
"Process?param="
;
byte
[]
resp
;
try
{
using
(
MyWebClient
webClient
=
new
MyWebClient
(
webclienttimeout
))
{
resp
=
webClient
.
UploadData
(
url
+
param
,
requestdata
);
requestdata
=
null
;
}
}
catch
(
WebException
we
)
{
return
null
;
}
catch
{
return
null
;
}
List
<
CodeInfo
>
codeInfos
=
null
;
var
ss
=
Encoding
.
UTF8
.
GetString
(
resp
).
Trim
().
Trim
(
'"'
);
ss
=
ss
.
Replace
(
@"\/"
,
"/"
);
try
{
var
bb
=
Convert
.
FromBase64String
(
ss
);
using
(
MemoryStream
mStreamResult
=
new
MemoryStream
(
bb
))
{
XmlSerializer
xff
=
new
XmlSerializer
(
typeof
(
List
<
CodeInfo
>));
codeInfos
=
(
List
<
CodeInfo
>)
xff
.
Deserialize
(
mStreamResult
);
}
}
catch
{
throw
new
Exception
(
ss
);
}
return
codeInfos
;
}
/// <summary>
/// 在url中传递base64字符串需要替换加号等符号
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
static
string
base64UrlEncode
(
byte
[]
input
)
{
return
Convert
.
ToBase64String
(
input
).
Replace
(
'+'
,
'-'
).
Replace
(
'/'
,
'_'
);
}
/// <summary>
/// 检查并自动启动服务器
/// </summary>
static
void
CheckAndRunServer
()
{
lock
(
p
)
{
var
pss
=
Process
.
GetProcessesByName
(
"ScanCodeServer"
);
if
(
pss
.
Length
>
0
)
return
;
var
f
=
"ScanCodeServer\\ScanCodeServer.exe"
;
if
(!
File
.
Exists
(
f
))
throw
new
Exception
(
"找不到扫码服务器文件"
);
p
.
StartInfo
=
new
ProcessStartInfo
(
f
);
p
.
Start
();
int
checkcount
=
5
;
while
(
checkcount
>
0
)
{
checkcount
--;
Thread
.
Sleep
(
500
);
var
port
=
(
int
)
Registry
.
GetValue
(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\ScanCodeServer\\"
,
"port"
,
58137
);
serverhost
=
"http://127.0.0.1:"
+
port
+
"/"
;
using
(
MyWebClient
webClient
=
new
MyWebClient
(
webclienttimeout
))
{
var
s
=
webClient
.
DownloadString
(
serverhost
+
"alive"
);
if
(
s
.
Trim
()
==
"\"1\""
)
return
;
}
}
throw
new
Exception
(
"扫码服务器打开失败,退出码:"
+
p
.
ExitCode
);
}
}
[
Serializable
]
public
struct
RemoteDecodeParam
{
public
string
[]
codeTypeList
;
public
int
codeCount
;
public
int
timeout
;
}
public
class
MyWebClient
:
WebClient
{
private
int
_timeout
;
public
MyWebClient
(
int
timeout
)
{
this
.
_timeout
=
timeout
;
}
protected
override
WebRequest
GetWebRequest
(
Uri
address
)
{
var
result
=
base
.
GetWebRequest
(
address
);
result
.
Timeout
=
this
.
_timeout
;
return
result
;
}
}
}
RC1266-AutoCountMachine/source/CodeLibrary/eyemDecode.cs
查看文件 @
021a213
...
...
@@ -9,7 +9,6 @@ using System.Runtime.InteropServices;
using
System.Text
;
using
System.Text.RegularExpressions
;
using
System.Threading.Tasks
;
using
static
Asa
.
eyemLib
;
namespace
CodeLibrary
{
...
...
RC1266-AutoCountMachine/source/Common/Common.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>MyCommon</AssemblyName>
<TargetFrameworkVersion>v4.
0
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
6.2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.
1
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.6.
2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
@@ -21,7 +21,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>
fals
e</AllowUnsafeBlocks>
<AllowUnsafeBlocks>
tru
e</AllowUnsafeBlocks>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
<LangVersion>7.3</LangVersion>
...
...
@@ -41,9 +41,13 @@
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
<Reference Include="Asa.CarerayImage, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="Asa.Camera.VisionLib, Version=1.3.8398.28384, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\oldDll\Asa.Camera.VisionLib.dll</HintPath>
</Reference>
<Reference Include="Asa.CarerayImage, Version=1.1.2.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\
..\..\CarerayImage\CarerayImage\bin\Debug
\Asa.CarerayImage.dll</HintPath>
<HintPath>..\..\
oldDll
\Asa.CarerayImage.dll</HintPath>
</Reference>
<Reference Include="Asa.IOModule.AIOBOX">
<HintPath>..\..\dll\Asa.IOModule.AIOBOX.dll</HintPath>
...
...
@@ -99,6 +103,8 @@
<Compile Include="bean\BatchMoveBean_Partial.cs" />
<Compile Include="bean\BatchMoveBean.cs" />
<Compile Include="bean\OutputEquip_Shelf.cs" />
<Compile Include="deviceLibrary\Camera.cs" />
<Compile Include="deviceLibrary\EyemManager.cs" />
<Compile Include="deviceLibrary\TestPlate.cs" />
<Compile Include="FrmDevicePause.cs">
<SubType>Form</SubType>
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/EquipBase.cs
查看文件 @
021a213
...
...
@@ -22,6 +22,7 @@ namespace OnlineStore.DeviceLibrary
/// 手动报警
/// </summary>
public
bool
NeedAlarm
=
false
;
protected
DeviceConfig
Config
;
protected
void
SetAllTimer
(
bool
open
)
{
...
...
@@ -405,7 +406,11 @@ namespace OnlineStore.DeviceLibrary
{
wait
.
IsEnd
=
(
span
.
TotalMilliseconds
>=
wait
.
TimeMSeconds
);
}
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W013_Action
))
{
wait
.
IsEnd
=
wait
.
Action
.
Invoke
(
wait
);
LogUtil
.
info
(
$
"{Name} 自定义等待 IsEnd={wait.IsEnd},Type={wait.Action.GetType()}"
);
}
else
{
wait
.
IsEnd
=
CheckWaitResult
(
moveInfo
,
wait
);
...
...
@@ -797,5 +802,23 @@ namespace OnlineStore.DeviceLibrary
SetWarnMsg
(
""
);
}
}
public
bool
?
Out_TrayCheck_Test
(
string
CameraName
,
IO_VALUE
iO_VALUE
)
{
if
(!
RobotManager
.
Camera_Out_TrayCheck_Test
)
return
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
iO_VALUE
);
//if (iO_VALUE == IO_VALUE.HIGH)
// if (IOValue(IO_Type.Out_TrayCheck).Equals(IO_VALUE.HIGH))
// return true;
var
result
=
EyemManager
.
CameraTestReel
(
CameraName
);
if
(!
result
.
HasValue
)
return
null
;
if
(
iO_VALUE
==
IO_VALUE
.
HIGH
)
return
result
.
Value
;
else
return
!
result
.
Value
;
}
}
}
RC1266-AutoCountMachine/source/DeviceLibrary/bean/InputEquip_InStore.cs
查看文件 @
021a213
...
...
@@ -530,15 +530,10 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
if
(
LeftBatchMove
.
ProcessShelfOut
||
LeftBatchMove
.
ProcessShelfEnter
||
RightBatchMove
.
ProcessShelfOut
||
RightBatchMove
.
ProcessShelfEnter
)
{
return
;
}
if
(
CanStartWork
())
{
return
;
}
if
(
LeftBatchMove
.
MoveInfo
.
MoveStep
==
StepEnum
.
Wait
)
{
Debug
.
WriteLine
(
$
"GS:{LeftBatchMove.ProcessShelfOut},{LeftBatchMove.ProcessShelfEnter},{RightBatchMove.ProcessShelfOut},{RightBatchMove.ProcessShelfOut}"
);
return
;
}
if
(
IOValue
(
IO_Type
.
LineIn_GratingSignal
).
Equals
(
IO_VALUE
.
LOW
))
...
...
@@ -558,7 +553,15 @@ namespace OnlineStore.DeviceLibrary
}
NeedAlarm
=
false
;
}
}
}
if
(
CanStartWork
())
{
return
;
}
if
(
LeftBatchMove
.
MoveInfo
.
MoveStep
==
StepEnum
.
Wait
)
{
return
;
}
}
#
endregion
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip.cs
查看文件 @
021a213
...
...
@@ -5,6 +5,7 @@ using System.Collections.Concurrent;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Linq
;
using
System.Security.AccessControl
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
...
...
@@ -13,7 +14,7 @@ namespace OnlineStore.DeviceLibrary
{
public
partial
class
OutputEquip
:
EquipBase
{
public
OutputEquip_Config
Config
;
public
new
OutputEquip_Config
Config
;
public
AxisBean
MoveZAxis
=
null
;
...
...
@@ -593,6 +594,7 @@ namespace OnlineStore.DeviceLibrary
private
Stopwatch
needEnterWatch
=
new
Stopwatch
();
private
Stopwatch
needLeaveWatch
=
new
Stopwatch
();
private
Asa
.
ClientLevel
curAgvOutLevel
=
Asa
.
ClientLevel
.
Low
;
DateTime
lastCheckOutReelTime
=
DateTime
.
Now
;
protected
override
void
BaseTimerProcess
()
{
if
(
isInSuddenDown
||
isNoAirCheck
)
...
...
@@ -618,9 +620,10 @@ namespace OnlineStore.DeviceLibrary
}
}
if
(
MoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
))
if
(
MoveInfo
.
MoveType
.
Equals
(
RobotMoveType
.
None
)
&&
(
DateTime
.
Now
-
lastCheckOutReelTime
).
TotalSeconds
>
2
)
{
if
(
NoErrorAlarm
()
&&
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
lastCheckOutReelTime
=
DateTime
.
Now
;
if
(
NoErrorAlarm
()
&&
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
)
&&
Out_TrayCheck_Test
(
Config
.
CameraName
,
IO_VALUE
.
HIGH
).
GetValueOrDefault
())
{
//料串准备好才能取料
if
(
OutReelCount
>=
0
)
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/OutputEquip_Partial.cs
查看文件 @
021a213
...
...
@@ -85,7 +85,7 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
if
(
Out_TrayCheck_Test
(
Config
.
CameraName
,
IO_VALUE
.
HIGH
).
GetValueOrDefault
(
)
&&
IOValue
(
IO_Type
.
X_OLine_Run
).
Equals
(
IO_VALUE
.
LOW
))
{
IsStartLabel
=
false
;
MoveInfo
.
NewMove
(
RobotMoveType
.
Working
,
StepEnum
.
OT01_WaitCheck
);
...
...
@@ -113,7 +113,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
MoveParam
.
IsNgReel
=
true
;
}
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
HIGH
));
//
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.HIGH));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
X_OLine_Run
,
IO_VALUE
.
LOW
));
}
return
false
;
...
...
@@ -387,7 +387,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT08_2_Wait_Out_TrayCheck
))
{
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
if
(
Out_TrayCheck_Test
(
Config
.
CameraName
,
IO_VALUE
.
LOW
).
GetValueOrDefault
(
))
{
TakeReelRetay
=
0
;
ClearTimeoutAlarm
(
"取料失败"
);
...
...
@@ -424,13 +424,17 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
OT08_3_Wait_Out_TrayCheck
))
{
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
var
re
=
Out_TrayCheck_Test
(
Config
.
CameraName
,
IO_VALUE
.
LOW
);
if
(
re
.
GetValueOrDefault
())
{
ClearTimeoutAlarm
(
"取料失败"
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
OT25_NG_NGBack
);
NeedAlarm
=
false
;
}
else
{
else
if
(
re
.
HasValue
)
{
EyemManager
.
record
=
true
;
Out_TrayCheck_Test
(
Config
.
CameraName
,
IO_VALUE
.
LOW
);
EyemManager
.
record
=
false
;
WarnMsg
=
MoveInfo
.
Name
+
"[取料:取料失败,已重试3次,请手动取走料盘]"
;
//WorkLog(WarnMsg);
Alarm
(
AlarmType
.
IoSingleTimeOut
);
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/RobotBean.cs
查看文件 @
021a213
...
...
@@ -27,7 +27,7 @@ namespace OnlineStore.DeviceLibrary
public
X_RAY_Equip
XrayBean
;
public
OutputEquip
outputEquip
;
public
Dictionary
<
int
,
EquipBase
>
equipsMap
=
new
Dictionary
<
int
,
EquipBase
>();
public
Robot_Config
Config
=
null
;
private
bool
canStart
=
false
;
public
SQLite
sQLite
=
null
;
...
...
@@ -59,6 +59,7 @@ namespace OnlineStore.DeviceLibrary
inputEquip
=
new
InputEquip
(
"1"
,
fconfig
);
XrayBean
=
new
X_RAY_Equip
(
"2"
,
xconfig
);
outputEquip
=
new
OutputEquip
(
"3"
,
pconfig
);
equipsMap
.
Add
(
1
,
inputEquip
);
equipsMap
.
Add
(
2
,
XrayBean
);
equipsMap
.
Add
(
3
,
outputEquip
);
...
...
@@ -70,6 +71,12 @@ namespace OnlineStore.DeviceLibrary
AgvClient
.
NodeList
.
Add
(
inputEquip
.
Config
.
RightAgvName
);
AgvClient
.
NodeList
.
Add
(
inputEquip
.
Config
.
LeftAgvName
);
EyemManager
.
record
=
true
;
outputEquip
.
Out_TrayCheck_Test
(
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
HIGH
);
EyemManager
.
record
=
false
;
/*var carerayImage = new CarerayImage();
if (carerayImage.Open())
{
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip.cs
查看文件 @
021a213
...
...
@@ -23,7 +23,7 @@ namespace OnlineStore.DeviceLibrary
public
ReelInfo
Work_ReelInfo
=
new
ReelInfo
();
public
ReelInfo
Out_ReelInfo
=
new
ReelInfo
();
public
XRay_Config
Config
;
public
new
XRay_Config
Config
;
public
XRay
xRay
=
null
;
...
...
@@ -192,13 +192,10 @@ namespace OnlineStore.DeviceLibrary
{
try
{
if
(
xRay
!=
null
&&
xRay
.
IsRayOpen
)
{
xRay
.
Stop
();
}
if
(
xRay
!=
null
)
xRay
.
Close
();
xrayImage
.
Close
();
if
(
xRay
!=
null
&&
xRay
.
IsRayOpen
)
xRay
.
Stop
();
xRay
?.
Close
();
xrayImage
?.
Close
();
}
catch
(
Exception
ex
)
{
...
...
@@ -279,7 +276,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
.
NextMoveStep
(
StepEnum
.
XR02_DoorOpen
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_InDoor_Up
,
IO_Type
.
X_InDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_OutDoor_Up
,
IO_Type
.
X_OutDoor_Down
);
if
(
IOValue
(
IO_Type
.
X_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
if
(
IOValue
(
IO_Type
.
X_ReelCheck
).
Equals
(
IO_VALUE
.
HIGH
)
&&
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
HIGH
).
GetValueOrDefault
(
))
{
WorkLog
(
"XRay复位 :左侧们打开,右侧门打开,挡停下降"
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Up
,
IO_Type
.
X_StopCylinder_Down
);
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/bean/X_RAY_Equip_Partial.cs
查看文件 @
021a213
...
...
@@ -64,7 +64,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW21_WaitOutNoReel
);
WorkLog
(
"扫描区有料["
+
Work_ReelInfo
.
ToStr
()
+
"],点料已完成,准备放出料盘"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
IO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
Action
(
new
Func
<
WaitResultInfo
,
bool
>((
w
)=>
{
return
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
LOW
).
GetValueOrDefault
();
}),
$
"等待[Out_TrayCheck=Low]"
));
}
}
else
if
(
IOValue
(
IO_Type
.
X_InLine_Check
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
@@ -175,7 +175,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW21_WaitOutNoReel
);
WorkLog
(
"扫描区NG料 ["
+
Work_ReelInfo
.
ToStr
()
+
"],直接放行料盘"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
IO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
Action
(
new
Func
<
WaitResultInfo
,
bool
>((
w
)
=>
{
return
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
LOW
).
GetValueOrDefault
();
}),
$
"等待[Out_TrayCheck=Low]"
));
}
else
{
...
...
@@ -281,13 +281,14 @@ namespace OnlineStore.DeviceLibrary
#
endregion
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW16_EndCount
))
{
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
LOW
))
var
re
=
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
LOW
);
if
(
re
.
GetValueOrDefault
())
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW21_WaitOutNoReel
);
//MoveInfo.TimeOutSeconds = 120;
WorkLog
(
"料盘处理:出口无料盘继续"
,
0
);
}
else
if
(
RobotManager
.
robot
.
outputEquip
.
HasWorkingShelf
)
else
if
(
re
.
HasValue
&&
RobotManager
.
robot
.
outputEquip
.
HasWorkingShelf
)
{
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]"
+
"等待 出口皮带线料盘离开X57=Low 超时["
+
FormUtil
.
GetSpanStr
(
MoveInfo
.
StepSpan
())
+
"]"
;
...
...
@@ -295,7 +296,7 @@ namespace OnlineStore.DeviceLibrary
Alarm
(
AlarmType
.
IoSingleTimeOut
);
}
}
else
{
else
if
(
re
.
HasValue
)
{
LogUtil
.
error
(
"当前出口没有料串"
,
MoveInfo
.
ErrorLogType
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW16_EndCount
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
3000
));
...
...
@@ -315,7 +316,7 @@ namespace OnlineStore.DeviceLibrary
WorkLog
(
"料盘处理:右侧门打开,挡停放行"
,
0
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_OutDoor_Up
,
IO_Type
.
X_OutDoor_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
X_StopCylinder_Down
,
IO_Type
.
X_StopCylinder_Up
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
IO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
Action
(
new
Func
<
WaitResultInfo
,
bool
>((
w
)
=>
{
return
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
LOW
).
GetValueOrDefault
();
}),
$
"等待[Out_TrayCheck=Low]"
));
}
else
if
(
MoveInfo
.
IsTimeOut
(
120
))
{
...
...
@@ -326,14 +327,15 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW22_OutDoorOpen
))
{
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
))
var
re
=
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
HIGH
);
if
(
re
.
HasValue
&&
re
.
Value
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW21_WaitOutNoReel
);
MoveInfo
.
TimeOutSeconds
=
120
;
WorkLog
(
"料盘处理:XW22_OutDoorOpen后发现出口有料,再次等待出口无料盘"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
IO
(
IO_Type
.
Out_TrayCheck
,
IO_VALUE
.
LOW
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
Wait
Action
(
new
Func
<
WaitResultInfo
,
bool
>((
w
)
=>
{
return
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
LOW
).
GetValueOrDefault
();
}),
$
"等待[Out_TrayCheck=Low]"
));
}
else
else
if
(
re
.
HasValue
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW23_OutLineRun
);
WorkLog
(
"料盘处理:中间皮带线,出口皮带线转动"
,
1
);
...
...
@@ -354,13 +356,13 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW24_WaitOutCheck
))
{
if
(
IOValue
(
IO_Type
.
Out_TrayCheck
).
Equals
(
IO_VALUE
.
HIGH
)
||
Out_TrayCheck_force
)
if
(
Out_TrayCheck_Test
(
RobotManager
.
robot
.
outputEquip
.
Config
.
CameraName
,
IO_VALUE
.
HIGH
).
GetValueOrDefault
(
)
||
Out_TrayCheck_force
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW25_WaitTime
);
WorkLog
(
"料盘处理: 中间皮带线先停止,出口皮带线 再转动3秒,挡停先下降"
);
IOMove
(
IO_Type
.
X_MLine_Run
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
X_OLine_Run
,
IO_VALUE
.
HIGH
,
3000
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1
000
));
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
2
000
));
//MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Out_TrayCheck, IO_VALUE.HIGH));
CylinderMove
(
null
,
IO_Type
.
X_StopCylinder_Up
,
IO_Type
.
X_StopCylinder_Down
);
}
...
...
@@ -368,6 +370,7 @@ namespace OnlineStore.DeviceLibrary
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
XW24_WaitOutCheck
);
WorkLog
(
"料盘处理:Out_TrayCheck X57没有检测到料盘"
);
/*
var hasplate = TestPlate.TestIt(RobotManager.robot.outputEquip.Config.CameraName, saveone);
saveone = false;
if (!hasplate[0] && !hasplate[1])
...
...
@@ -382,7 +385,7 @@ namespace OnlineStore.DeviceLibrary
else {
WorkLog("料盘处理:图像检测到料盘,当作有料处理");
//Out_TrayCheck_force = true;
}
}
*/
}
}
else
if
(
MoveInfo
.
IsStep
(
StepEnum
.
XW25_WaitTime
))
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/Camera.cs
0 → 100644
查看文件 @
021a213
using
Asa.Camera
;
using
CodeLibrary
;
using
OnlineStore
;
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Drawing
;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
using
System.Text.RegularExpressions
;
using
System.Threading
;
using
System.Threading.Tasks
;
public
class
HIKCamera
{
Thread
camerathread
;
//static HIKCamera _camera;
Asa
.
Camera
.
VisionLib
camera
;
//public static HIKCamera Current
//{
// get
// {
// if (_camera == null)
// _camera = new HIKCamera();
// return _camera;
// }
//}
public
string
Name
=
""
;
public
event
EventHandler
<
Bitmap
>
camera_event
;
public
string
DeviceName
=
"CameraA"
;
public
bool
LoadCameraConfig
(
string
CameraID
,
out
string
msg
)
{
Name
=
CameraID
;
msg
=
""
;
string
path
=
$
".\\Config\\{CameraID}.json"
;
if
(!
File
.
Exists
(
path
))
{
msg
=
Name
+
"找不到监控相机配置文件"
;
LogUtil
.
error
(
Name
+
"找不到监控相机配置文件"
+
path
);
return
false
;
}
try
{
var
configtxt
=
File
.
ReadAllText
(
path
);
if
(
configtxt
.
IndexOf
(
"Pwd"
)
>
0
)
{
configtxt
=
configtxt
.
Replace
(
"Pwd"
,
"Password"
);
configtxt
=
configtxt
.
Replace
(
"\"8000\""
,
"8000"
);
File
.
WriteAllText
(
path
,
configtxt
);
}
var
m
=
Regex
.
Match
(
configtxt
,
"name\".*?\"(.+)\""
,
RegexOptions
.
IgnoreCase
);
DeviceName
=
m
.
Groups
[
1
].
Value
;
camera
=
new
VisionLib
(
path
,
true
,
"HIK.IPCamera"
);
}
catch
(
Exception
e
)
{
msg
=
Name
+
"加载监控相机配置文件失败:"
+
e
.
ToString
();
LogUtil
.
error
(
Name
+
"加载监控相机配置文件失败:"
+
e
.
ToString
());
return
false
;
}
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
camera
.
Open
(
DeviceName
);
Thread
.
Sleep
(
100
);
Bitmap
bmp
=
camera
.
GetImage
(
DeviceName
);
if
(
bmp
!=
null
)
{
return
true
;
}
camera
.
Close
(
DeviceName
);
Thread
.
Sleep
(
100
);
}
msg
=
Name
+
"监控相机打开失败"
;
LogUtil
.
error
(
Name
+
$
"监控相机打开失败"
);
return
false
;
//camerathread = new Thread(new ThreadStart(startCamera));
//camerathread.Start();
//GC.KeepAlive(camerathread);
}
int
errortimes
=
0
;
bool
camerathreadrun
=
true
;
public
void
stopCamera
()
{
camerathreadrun
=
false
;
}
void
startCamera
()
{
int
errorsleeptime
=
5000
;
camerathreadrun
=
true
;
while
(
camerathreadrun
)
{
try
{
Bitmap
bmp
=
camera
.
GetImage
(
DeviceName
);
if
(
bmp
!=
null
)
{
errortimes
=
0
;
errorsleeptime
=
5000
;
camera_event
?.
Invoke
(
this
,
bmp
);
}
else
if
(
bmp
==
null
&&
errortimes
<
5
)
{
errortimes
++;
LogUtil
.
error
(
Name
+
$
"相机获取图像出错,{errortimes}"
);
Thread
.
Sleep
(
errorsleeptime
);
}
else
if
(
errortimes
==
5
)
{
camera
.
Close
(
DeviceName
);
Thread
.
Sleep
(
1000
);
camera
.
Open
(
DeviceName
);
errortimes
=
0
;
errorsleeptime
=
errorsleeptime
*
2
;
LogUtil
.
error
(
Name
+
$
"相机错误次数过多,重新打开,{errortimes}"
);
}
else
if
(
errortimes
==
6
)
{
LogUtil
.
error
(
Name
+
$
"相机连接失败, 相机线程退出,{errortimes}"
);
break
;
}
Thread
.
Sleep
(
1000
/
5
);
}
catch
{
errortimes
++;
}
}
try
{
camera
.
Close
(
DeviceName
);
}
catch
{
}
camera
.
Dispose
();
}
public
Bitmap
CameraGrabOne
()
{
return
camera
.
GetImage
(
DeviceName
);
}
public
void
CameraGrabOne
(
string
filename
)
{
try
{
LogUtil
.
info
(
Name
+
"库位文件名:"
+
filename
);
Bitmap
bmp
=
camera
.
GetImage
(
DeviceName
);
if
(
bmp
!=
null
)
{
if
(
File
.
Exists
(
filename
))
File
.
Delete
(
filename
);
bmp
.
Save
(
filename
,
ImageFormat
.
Jpeg
);
bmp
.
Dispose
();
}
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
Name
+
e
.
ToString
());
}
}
}
public
enum
FixtureState
{
FromIn
,
FromOut
,
FromInSide
,
FromOutSide
,
ToIn
,
ToOut
,
ToInSide
,
ToOutSide
,
ToFix
,
}
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/EyemManager.cs
0 → 100644
查看文件 @
021a213
此文件的差异被折叠,
点击展开。
RC1266-AutoCountMachine/source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
查看文件 @
021a213
...
...
@@ -7,6 +7,7 @@ using System.Drawing;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.Linq
;
using
System.Reflection.Emit
;
using
System.Runtime.ExceptionServices
;
using
System.Runtime.InteropServices
;
using
System.Text
;
...
...
@@ -152,58 +153,32 @@ namespace OnlineStore.DeviceLibrary
CamErrCount
[
deviceName
]
=
0
;
LogUtil
.
debug
(
deviceName
+
" 【"
+
cameraName
+
"】取图片完成,开始扫码"
);
string
r
=
""
;
List
<
CodeInfo
>
tlci
=
EyemDecode2
.
Decoder
(
ref
bmp
);
foreach
(
CodeInfo
code
in
tlci
)
{
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】[eyemDecode]"
+
code
.
CodeType
+
"(X: "
+
code
.
X
+
",Y: "
+
code
.
Y
+
") "
+
code
.
CodeStr
);
string
str
=
CodeManager
.
ReplaceCode
(
code
.
CodeStr
);
if
(!
codeList
.
Contains
(
str
))
{
codeList
.
Add
(
str
);
r
=
r
+
"##eyemDecode|"
+
code
.
CodeType
+
"|"
+
str
;
if
(!
findRightCode
)
{
findRightCode
=
HasRightCode
(
str
);
}
if
(
HasRightCode
(
str
)
&&
ccall
.
FindAll
(
x
=>
x
.
CodeStr
==
str
).
Count
()==
0
)
ccall
.
Add
(
code
);
}
}
if
(!
findRightCode
)
RemoteDecodeHelper
.
RemoteDecodeParam
remoteDecodeParam
=
new
RemoteDecodeHelper
.
RemoteDecodeParam
{
foreach
(
string
codeType
in
codeTypeList
)
codeTypeList
=
codeTypeList
.
ToArray
(),
codeCount
=
codeCount
,
timeout
=
2500
};
cc
=
RemoteDecodeHelper
.
DecodeRequest
(
bmp
,
remoteDecodeParam
);
if
(
cc
!=
null
&&
cc
.
Count
>
0
)
{
foreach
(
CodeInfo
c
in
cc
)
{
//判断是否是一维码
if
(
codeType
.
ToLower
().
Equals
(
"barcode"
))
string
str
=
CodeManager
.
ReplaceCode
(
c
.
CodeStr
);
if
(
!
codeList
.
Contains
(
str
))
{
cc
=
HDCodeHelper
.
DecodeBarCode
(
ho_Image
);
}
else
{
cc
=
HDCodeHelper
.
DecodeCode
(
ho_Image
,
codeType
,
GetCodeParamFilePath
(
codeType
),
codeCount
,
2500
);
}
codeList
.
Add
(
str
);
r
=
r
+
"|"
+
c
.
CodeType
+
"|"
+
str
;
foreach
(
CodeInfo
c
in
cc
)
{
string
str
=
CodeManager
.
ReplaceCode
(
c
.
CodeStr
);
if
(!
codeList
.
Contains
(
str
))
if
(!
findRightCode
)
{
codeList
.
Add
(
str
);
r
=
r
+
"##Halcon|"
+
codeType
+
"|"
+
str
;
if
(!
findRightCode
)
findRightCode
=
HasRightCode
(
str
);
if
(
findRightCode
)
{
findRightCode
=
HasRightCode
(
str
);
if
(
findRightCode
)
{
ccall
.
Add
(
c
);
nosave
=
false
;
}
ccall
.
Add
(
c
);
///nosave = false;
}
//if (HasRightCode(str) && ccall.FindAll(x => x.CodeStr == str).Count() == 0)
}
//if (HasRightCode(str) && ccall.FindAll(x => x.CodeStr == str).Count() == 0)
}
}
}
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/manager/RobotManager.cs
查看文件 @
021a213
...
...
@@ -24,7 +24,7 @@ namespace OnlineStore.DeviceLibrary
public
static
RobotBean
robot
=
null
;
public
static
Robot_Config
Config
=
null
;
public
static
Dictionary
<
int
,
DeviceConfig
>
allConfigMap
=
null
;
public
static
HIKCamera
CameraA
=
new
HIKCamera
();
public
RobotManager
()
{
}
...
...
@@ -46,6 +46,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
public
static
bool
Camera_Out_TrayCheck_Test
=
true
;
public
static
bool
Init
()
{
try
...
...
@@ -91,8 +92,17 @@ namespace OnlineStore.DeviceLibrary
outconfig
.
SetIO
(
subType
);
allConfigMap
.
Add
(
subType
,
outconfig
);
ACServerManager
.
LogEvent
+=
ACServerManager_LogEvent
;
if
(!
CameraA
.
LoadCameraConfig
(
"CameraA"
,
out
string
errmsg
))
{
LogUtil
.
info
(
"监控相机加载出错!"
);
Camera_Out_TrayCheck_Test
=
false
;
}
robot
=
new
RobotBean
(
Config
,
inputConfig
,
XrayConfig
,
outconfig
);
InitPrint
();
LogUtil
.
info
(
"加载 完成!"
);
return
true
;
...
...
RC1266-AutoCountMachine/source/DeviceLibrary/model/RobotMoveInfo.cs
查看文件 @
021a213
...
...
@@ -291,6 +291,14 @@ namespace OnlineStore.DeviceLibrary
wait
.
WaitType
=
WaitEnum
.
W301_DLineScanCode
;
return
wait
;
}
public
static
WaitResultInfo
WaitAction
(
Func
<
WaitResultInfo
,
bool
>
a
,
string
msg
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
wait
.
WaitType
=
WaitEnum
.
W013_Action
;
wait
.
Action
=
a
;
wait
.
ActionMsg
=
msg
;
return
wait
;
}
public
string
ToStr
()
{
if
(
WaitType
.
Equals
(
WaitEnum
.
W001_AxisMove
))
...
...
@@ -403,7 +411,11 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public
int
HeightValue
{
get
;
set
;
}
/// <summary>
/// 等待事件代理
/// </summary>
public
Func
<
WaitResultInfo
,
bool
>
Action
{
get
;
set
;
}
public
string
ActionMsg
{
get
;
set
;
}
}
internal
class
WaitEnum
{
...
...
@@ -431,6 +443,8 @@ namespace OnlineStore.DeviceLibrary
/// 轴原点信号
/// </summary>
internal
static
int
W006_AxisOrg
=
6
;
internal
static
int
W013_Action
=
7
;
...
...
RC1266-AutoCountMachine/source/LoadCVSLibrary/LoadCSVLibrary.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.
0
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
6.2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
RC1266-AutoCountMachine/source/UserFromControl/Properties/Resources.Designer.cs
查看文件 @
021a213
...
...
@@ -19,7 +19,7 @@ namespace UserFromControl.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
5
.0.0.0"
)]
[
global
::
System
.
CodeDom
.
Compiler
.
GeneratedCodeAttribute
(
"System.Resources.Tools.StronglyTypedResourceBuilder"
,
"1
7
.0.0.0"
)]
[
global
::
System
.
Diagnostics
.
DebuggerNonUserCodeAttribute
()]
[
global
::
System
.
Runtime
.
CompilerServices
.
CompilerGeneratedAttribute
()]
internal
class
Resources
{
...
...
@@ -47,8 +47,8 @@ namespace UserFromControl.Properties {
}
/// <summary>
///
使用此强类型资源类,为所有资源查找
///
重写当前线程的 CurrentUICulture 属性
。
///
重写当前线程的 CurrentUICulture 属性,对
///
使用此强类型资源类的所有资源查找执行重写
。
/// </summary>
[
global
::
System
.
ComponentModel
.
EditorBrowsableAttribute
(
global
::
System
.
ComponentModel
.
EditorBrowsableState
.
Advanced
)]
internal
static
global
::
System
.
Globalization
.
CultureInfo
Culture
{
...
...
RC1266-AutoCountMachine/source/UserFromControl/UserFromControl.csproj
查看文件 @
021a213
...
...
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>UserFromControl</RootNamespace>
<AssemblyName>UserFromControl</AssemblyName>
<TargetFrameworkVersion>v4.
0
</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.
6.2
</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论