Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 6c4d7bb7
由
LN
编写于
2020-03-11 18:12:57 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
相机获取图片修改
1 个父辈
4908c7bb
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
91 行增加
和
104 行删除
dll/CodeLibrary.dll
source/AssemblyLineClient/FrmDischargeLine.cs
source/AssemblyLineClient/FrmFeedingEquip.cs
source/AssemblyLineClient/FrmLineStore.cs
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
source/DeviceLibrary/deviceLibrary/halcon/OLD-CodeManager.cs
dll/CodeLibrary.dll
查看文件 @
6c4d7bb
此文件类型无法预览
source/AssemblyLineClient/FrmDischargeLine.cs
查看文件 @
6c4d7bb
...
@@ -405,14 +405,14 @@ namespace OnlineStore.AssemblyLine
...
@@ -405,14 +405,14 @@ namespace OnlineStore.AssemblyLine
}
}
cameraStr
=
cameraStr
.
Substring
(
0
,
cameraStr
.
Length
-
1
);
cameraStr
=
cameraStr
.
Substring
(
0
,
cameraStr
.
Length
-
1
);
string
msg
=
""
;
string
msg
=
CodeManager
.
ProcessCode
(
LastCodeList
)
;
if
(
LastCodeList
.
Count
>
0
)
//
if (LastCodeList.Count > 0)
{
//
{
foreach
(
string
str
in
LastCodeList
)
//
foreach (string str in LastCodeList)
{
//
{
msg
=
str
+
"\r\n"
;
//
msg = str + "\r\n";
}
//
}
}
//
}
LogUtil
.
info
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:\r\n"
+
msg
);
LogUtil
.
info
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:\r\n"
+
msg
);
MessageBox
.
Show
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:"
+
msg
);
MessageBox
.
Show
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:"
+
msg
);
...
...
source/AssemblyLineClient/FrmFeedingEquip.cs
查看文件 @
6c4d7bb
...
@@ -561,14 +561,16 @@ namespace OnlineStore.AssemblyLine
...
@@ -561,14 +561,16 @@ namespace OnlineStore.AssemblyLine
}
}
cameraStr
=
cameraStr
.
Substring
(
0
,
cameraStr
.
Length
-
1
);
cameraStr
=
cameraStr
.
Substring
(
0
,
cameraStr
.
Length
-
1
);
string
msg
=
""
;
if
(
LastCodeList
.
Count
>
0
)
string
msg
=
CodeManager
.
ProcessCode
(
LastCodeList
);
{
//if (LastCodeList.Count > 0)
foreach
(
string
str
in
LastCodeList
)
//{
{
// foreach (string str in LastCodeList)
msg
=
str
+
"\r\n"
;
// {
}
// msg = str + "\r\n";
}
// }
//}
LogUtil
.
info
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:\r\n"
+
msg
);
LogUtil
.
info
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:\r\n"
+
msg
);
MessageBox
.
Show
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:"
+
msg
);
MessageBox
.
Show
(
equipBean
.
Name
+
"["
+
cameraStr
+
"]扫码测试结果:"
+
msg
);
...
...
source/AssemblyLineClient/FrmLineStore.cs
查看文件 @
6c4d7bb
using
log4net
;
using
CodeLibrary
;
using
log4net
;
using
OnlineStore.Common
;
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary
;
using
OnlineStore.DeviceLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
...
@@ -286,6 +287,10 @@ namespace OnlineStore.AssemblyLine
...
@@ -286,6 +287,10 @@ namespace OnlineStore.AssemblyLine
IOManager
.
instance
.
CloseAllConnection
();
IOManager
.
instance
.
CloseAllConnection
();
//AIManager.CloseConnect();
//AIManager.CloseConnect();
ACServerManager
.
CloseAllPort
();
ACServerManager
.
CloseAllPort
();
if
(
Camera
.
_cam
!=
null
)
{
Camera
.
_cam
.
CloseAll
();
}
// CodeManager.CloseAllCamera();
// CodeManager.CloseAllCamera();
// RFIDManager.Close();
// RFIDManager.Close();
System
.
Environment
.
Exit
(
System
.
Environment
.
ExitCode
);
System
.
Environment
.
Exit
(
System
.
Environment
.
ExitCode
);
...
@@ -712,6 +717,10 @@ namespace OnlineStore.AssemblyLine
...
@@ -712,6 +717,10 @@ namespace OnlineStore.AssemblyLine
private
void
二维码学习
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
private
void
二维码学习
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
{
if
(
Camera
.
_cam
!=
null
)
{
Camera
.
_cam
.
CloseAll
();
}
CodeLibrary
.
FrmCodeDecode
frm
=
new
CodeLibrary
.
FrmCodeDecode
();
CodeLibrary
.
FrmCodeDecode
frm
=
new
CodeLibrary
.
FrmCodeDecode
();
frm
.
ShowDialog
();
frm
.
ShowDialog
();
frm
.
Dispose
();
frm
.
Dispose
();
...
...
source/DeviceLibrary/deviceLibrary/halcon/CodeManager.cs
查看文件 @
6c4d7bb
...
@@ -3,10 +3,12 @@ using OnlineStore.Common;
...
@@ -3,10 +3,12 @@ using OnlineStore.Common;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Drawing
;
using
System.Drawing
;
using
System.Drawing.Imaging
;
using
System.IO
;
using
System.IO
;
using
System.Linq
;
using
System.Linq
;
using
System.Runtime.ExceptionServices
;
using
System.Runtime.ExceptionServices
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
using
System.Windows.Forms
;
using
System.Windows.Forms
;
namespace
OnlineStore.DeviceLibrary
namespace
OnlineStore.DeviceLibrary
...
@@ -49,26 +51,23 @@ namespace OnlineStore.DeviceLibrary
...
@@ -49,26 +51,23 @@ namespace OnlineStore.DeviceLibrary
}
}
private
static
void
LoadCamera
(
bool
isReLoad
)
private
static
void
LoadCamera
(
bool
isReLoad
)
{
{
if
(
isReLoad
)
if
(
isReLoad
||
Camera
.
_cam
==
null
)
{
{
try
try
{
{
CodeLibrary
.
HIKCamera
.
Instance
.
Load
();
if
(
Camera
.
_cam
!=
null
)
{
Camera
.
_cam
.
CloseAll
();
}
Camera
.
Type
=
CameraType
.
HIK
;
Camera
.
_cam
.
Load
();
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"加载HIK相机出错:"
,
ex
);
LogUtil
.
error
(
"加载HIK相机出错:"
,
ex
);
}
}
try
{
CodeLibrary
.
BaslerCamera
.
Instance
.
Load
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"加载Basler相机出错:"
,
ex
);
}
}
}
string
[]
names
=
C
odeLibrary
.
HIKCamera
.
Instance
.
Camera
Name
;
string
[]
names
=
C
amera
.
_cam
.
Name
;
if
(
names
!=
null
)
if
(
names
!=
null
)
...
@@ -85,92 +84,42 @@ namespace OnlineStore.DeviceLibrary
...
@@ -85,92 +84,42 @@ namespace OnlineStore.DeviceLibrary
{
{
LogUtil
.
info
(
"加载到HIK相机:"
+
name
);
LogUtil
.
info
(
"加载到HIK相机:"
+
name
);
}
}
}
}
names
=
CodeLibrary
.
BaslerCamera
.
Instance
.
CameraName
;
if
(
names
!=
null
)
{
foreach
(
string
n
in
names
)
{
if
(!
balserNameList
.
Contains
(
n
))
{
balserNameList
.
Add
(
n
);
}
}
// balserNameList.AddRange(names);
foreach
(
string
name
in
balserNameList
)
{
LogUtil
.
info
(
"加载到Balser相机:"
+
name
);
}
}
}
}
public
static
void
CloseCamera
()
public
static
void
CloseCamera
(
string
cameraName
)
{
{
BaslerCamera
.
Instance
.
Close
();
Camera
.
_cam
.
Close
(
cameraName
);
HIKCamera
.
Instance
.
Close
();
}
public
static
void
CloseAllCamera
()
{
//BaslerCamera.Instance.Close();
//HIKCamera.Instance.Close();
Camera
.
_cam
.
CloseAll
();
}
}
public
static
Bitmap
GetCamerImage
(
string
cameraName
)
public
static
Bitmap
GetCamerImage
(
string
cameraName
)
{
{
Bitmap
bitm
=
null
;
Bitmap
bitm
=
null
;
try
try
{
{
if
(
balserNameList
.
Contains
(
cameraName
))
bitm
=
Camera
.
_cam
.
GrabOneImage
(
cameraName
);
{
bool
result
=
BaslerCamera
.
Instance
.
Open
(
cameraName
);
LogUtil
.
info
(
"相机【"
+
cameraName
+
"】打开:"
+
result
+
""
);
if
(
result
)
{
BaslerCamera
.
Instance
.
GrabOne
();
bitm
=
BaslerCamera
.
Instance
.
Image
;
BaslerCamera
.
Instance
.
Close
();
}
else
{
LogUtil
.
error
(
"相机【"
+
cameraName
+
"】打开失败:"
+
BaslerCamera
.
Instance
.
ErrInfo
);
}
}
else
if
(
hikNameList
.
Contains
(
cameraName
))
{
bool
result
=
HIKCamera
.
Instance
.
Open
(
cameraName
);
// LogUtil.info("打开相机:" + cameraName + "(" + result + ")");
if
(
result
)
{
HIKCamera
.
Instance
.
GrabOne
();
bitm
=
HIKCamera
.
Instance
.
Image
;
HIKCamera
.
Instance
.
Close
();
}
else
{
LogUtil
.
error
(
"相机【"
+
cameraName
+
"】打开失败:"
+
HIKCamera
.
Instance
.
ErrInfo
);
}
}
else
{
LogUtil
.
info
(
"未找到相机【"
+
cameraName
+
"】无法获取图片"
);
//若未加载到相机,需要重新加载相机
if
(
balserNameList
.
Count
<=
0
&&
hikNameList
.
Count
<=
0
)
{
LogUtil
.
error
(
"获取图片时发现未加载到相机,重新加载相机"
);
LoadCamera
(
true
);
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"
从相机
【"
+
cameraName
+
"】获取图片出错:"
,
ex
);
LogUtil
.
error
(
"
【"
+
cameraName
+
"】获取图片出错:"
,
ex
);
}
}
return
bitm
;
return
bitm
;
}
}
private
static
int
codeCount
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
CodeCount
);
private
static
int
codeCount
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
CodeCount
);
[
HandleProcessCorruptedStateExceptions
]
[
HandleProcessCorruptedStateExceptions
]
public
static
List
<
string
>
CameraScan
(
List
<
string
>
cameraList
,
string
deviceName
)
public
static
List
<
string
>
CameraScan
(
List
<
string
>
cameraList
,
string
deviceName
,
bool
isSaveImg
=
false
)
{
{
if
(
codeCount
<
1
)
if
(
codeCount
<
1
)
{
{
codeCount
=
1
;
codeCount
=
1
;
}
}
List
<
string
>
codeList
=
new
List
<
string
>();
List
<
string
>
codeList
=
new
List
<
string
>();
//List<CodeInfo> allCodeList = new List<CodeInfo>();
if
(
cameraList
==
null
||
cameraList
.
Count
<=
0
)
if
(
cameraList
==
null
||
cameraList
.
Count
<=
0
)
{
{
return
codeList
;
return
codeList
;
...
@@ -183,21 +132,22 @@ namespace OnlineStore.DeviceLibrary
...
@@ -183,21 +132,22 @@ namespace OnlineStore.DeviceLibrary
{
{
continue
;
continue
;
}
}
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】开始打开相机获取图片"
);
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】开始打开相机获取图片"
);
using
(
Bitmap
bitmap
=
GetCamerImage
(
cameraName
))
using
(
Bitmap
bitmap
=
GetCamerImage
(
cameraName
))
{
{
if
(
bitmap
==
null
)
if
(
bitmap
==
null
)
{
{
LogUtil
.
error
(
deviceName
+
" 【"
+
cameraName
+
"】获取图片失败,关闭相机"
);
LogUtil
.
error
(
deviceName
+
" 【"
+
cameraName
+
"】获取图片失败
["
+
Camera
.
_cam
.
ErrInfo
+
"]
,关闭相机"
);
CloseCamera
();
CloseCamera
(
cameraName
);
continue
;
continue
;
}
}
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】获取图片完成,开始转换图片,并扫码"
);
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】获取图片完成,开始转换图片,并扫码"
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
System
.
Threading
.
Thread
.
Sleep
(
1
);
//转换托盘大概100-150ms,不打印日志
//转换托盘大概100-150ms,不打印日志
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bitmap
);
Bitmap
bit
=
new
Bitmap
(
bitmap
);
// LogUtil.info(" 相机【" + cameraName + "】转换图片完成,开始扫码");
HalconDotNet
.
HObject
ho_Image
=
HDCodeHelper
.
Bitmap2HObjectBpp24
(
bit
);
// LogUtil.info(" 相机【" + cameraName + "】转换图片完成,开始扫码");
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
string
r
=
""
;
string
r
=
""
;
foreach
(
string
codeType
in
codeTypeList
)
foreach
(
string
codeType
in
codeTypeList
)
...
@@ -214,13 +164,20 @@ namespace OnlineStore.DeviceLibrary
...
@@ -214,13 +164,20 @@ namespace OnlineStore.DeviceLibrary
foreach
(
CodeInfo
c
in
cc
)
foreach
(
CodeInfo
c
in
cc
)
{
{
string
str
=
CodeManager
.
ReplaceCode
(
c
.
CodeStr
);
string
str
=
CodeManager
.
ReplaceCode
(
c
.
CodeStr
);
codeList
.
Add
(
str
);
if
(!
codeList
.
Contains
(
str
))
r
=
r
+
"##"
+
str
;
{
codeList
.
Add
(
str
);
r
=
r
+
"##"
+
str
;
}
}
}
// LogUtil.debug(" 相机【" + cameraName + "】【" + codeType + "】扫码完成:" + r);
// LogUtil.debug(" 相机【" + cameraName + "】【" + codeType + "】扫码完成:" + r);
}
if
(
String
.
IsNullOrEmpty
(
r
))
{
SaveImageToFile
(
deviceName
,
cameraName
,
bit
);
}
}
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】扫码完成:"
+
r
);
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】扫码完成:"
+
r
);
bit
.
Dispose
();
ho_Image
.
Dispose
();
ho_Image
.
Dispose
();
bitmap
.
Dispose
();
bitmap
.
Dispose
();
}
}
...
@@ -233,12 +190,31 @@ namespace OnlineStore.DeviceLibrary
...
@@ -233,12 +190,31 @@ namespace OnlineStore.DeviceLibrary
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
deviceName
+
" 扫码出错:"
,
ex
);
LogUtil
.
error
(
deviceName
+
" 扫码出错:"
+
ex
.
ToString
()
);
}
}
return
codeList
;
return
codeList
;
}
}
private
static
void
SaveImageToFile
(
string
deviceName
,
string
cameraName
,
Bitmap
bitmap
)
{
string
date
=
DateTime
.
Now
.
ToString
(
"HH-mm-ss-"
)
+
DateTime
.
Now
.
Millisecond
;
string
dire
=
@"D:\image\" + deviceName.Trim().Replace('_', '-') + @"
\
" + cameraName.Trim().Replace('_', '-').Replace(':', '-') + @"
\
";
string
iamgeName
=
date
+
".bmp"
;
try
{
Bitmap
bit
=
(
Bitmap
)
bitmap
.
Clone
();
if
(
Directory
.
Exists
(
dire
).
Equals
(
false
))
{
Directory
.
CreateDirectory
(
dire
);
}
bit
.
Save
(
dire
+
iamgeName
,
ImageFormat
.
Bmp
);
LogUtil
.
info
(
deviceName
+
" 【"
+
cameraName
+
"】扫码失败,保存图片到【"
+
dire
+
iamgeName
+
"】成功"
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"保存"
+
deviceName
+
" 【"
+
cameraName
+
"】的图片到【"
+
dire
+
iamgeName
+
"】出错"
+
ex
.
ToString
());
}
}
public
static
string
GetCodeParamFilePath
(
string
codePath
)
public
static
string
GetCodeParamFilePath
(
string
codePath
)
{
{
string
appPath
=
Application
.
StartupPath
;
string
appPath
=
Application
.
StartupPath
;
...
...
source/DeviceLibrary/deviceLibrary/halcon/OLD-CodeManager.cs
0 → 100644
查看文件 @
6c4d7bb
此文件的差异被折叠,
点击展开。
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论