Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
1069_MIMO_PlUS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 36760465
由
张东亮
编写于
2023-11-29 11:53:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
检测料盘图片采集异常问题
1 个父辈
51065abc
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
32 行增加
和
21 行删除
DeviceLibrary/DeviceLibrary/CodeManager.cs
DeviceLibrary/DeviceLibrary/CodeManager.cs
查看文件 @
3676046
...
...
@@ -22,8 +22,8 @@ namespace DeviceLibrary
{
public
class
CodeManager
{
public
static
string
CodeType
=
ConfigHelper
.
Config
.
Get
(
Setting_Init
.
CodeType
,
"QR Code"
);
private
static
int
QRCodeCount
=
ConfigHelper
.
Config
.
Get
(
Setting_Init
.
QRCodeCount
,
3
);
public
static
string
CodeType
=
ConfigHelper
.
Config
.
Get
(
Setting_Init
.
CodeType
,
"QR Code"
);
private
static
int
QRCodeCount
=
ConfigHelper
.
Config
.
Get
(
Setting_Init
.
QRCodeCount
,
3
);
private
static
int
CodeTimeOut
=
ConfigHelper
.
Config
.
Get
(
Setting_Init
.
CodeTimeOut
,
1000
);
public
static
List
<
string
>
cameraNameList
=
new
List
<
string
>();
public
static
List
<
string
>
codeTypeList
=
new
List
<
string
>();
...
...
@@ -170,7 +170,7 @@ namespace DeviceLibrary
LoadCamera
(
true
);
return
;
}
if
(
idx
==
0
)
if
(
idx
==
0
)
camera_event
?.
Invoke
(
null
,
bmp
);
LogUtil
.
info
(
" 【"
+
cameraName
+
"】取图片完成,开始扫码"
);
string
r
=
""
;
...
...
@@ -183,7 +183,7 @@ namespace DeviceLibrary
List
<
CodeInfo
>
cc
=
new
List
<
CodeInfo
>();
cc
=
RemoteDecodeHelper
.
DecodeRequest
(
bmp
,
remoteDecodeParam
);
if
(
cc
!=
null
&&
cc
.
Count
>
0
)
if
(
cc
!=
null
&&
cc
.
Count
>
0
)
{
lock
(
codeList
)
{
...
...
@@ -237,27 +237,30 @@ namespace DeviceLibrary
}
catch
(
AccessViolationException
e
)
{
LogUtil
.
error
(
" 扫码出现AccessViolationException异常:"
+
e
.
ToString
());
LogUtil
.
error
(
" 扫码出现AccessViolationException异常:"
+
e
.
ToString
());
//throw new Exception("扫码出现AccessViolationException异常");
// GC.Collect();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
" 扫码出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
" 扫码出错:"
+
ex
.
ToString
());
//throw new Exception("扫码出错");
}
return
codeList
;
}
static
bool
lastHasReel
=
false
;
public
static
bool
?
TestHasRight
=
null
;
public
static
bool
?
TestHasRight
=
null
;
static
object
testLocObj
=
new
object
();
[
HandleProcessCorruptedStateExceptions
]
public
static
bool
?
TestHasReel
(
string
cameraName
,
out
string
srcimg
,
out
string
prcimg
)
public
static
bool
?
TestHasReel
(
string
cameraName
,
out
string
srcimg
,
out
string
prcimg
)
{
srcimg
=
""
;
prcimg
=
""
;
int
retrytime
=
0
;
if
(
Monitor
.
TryEnter
(
testLocObj
))
{
retry
:
string
logtxt
=
$
"【"
+
cameraName
+
"】开始取图片测试是否有料盘"
+
"\r\n"
;
string
logtxt
=
$
"【"
+
cameraName
+
"】开始取图片测试是否有料盘"
+
"\r\n"
;
DateTime
startTime
=
DateTime
.
Now
;
Bitmap
bmp
=
null
;
try
...
...
@@ -273,10 +276,10 @@ namespace DeviceLibrary
//LoadCamera(true);
LogUtil
.
info
(
$
"bitmap为空重试第{retrytime}次"
);
Thread
.
Sleep
(
5
00
);
Thread
.
Sleep
(
20
00
);
goto
retry
;
}
logtxt
+=
$
"【"
+
cameraName
+
"】获取到图像"
+
"\r\n"
;
logtxt
+=
$
"【"
+
cameraName
+
"】获取到图像"
+
"\r\n"
;
int
totalcover
=
ConfigHelper
.
Config
.
Get
(
"CamTestReel_totalcover"
,
69577
);
int
hl
=
ConfigHelper
.
Config
.
Get
(
"CamTestReel_HL"
,
40
);
int
hh
=
ConfigHelper
.
Config
.
Get
(
"CamTestReel_HH"
,
70
);
...
...
@@ -287,8 +290,8 @@ namespace DeviceLibrary
double
threshold
=
ConfigHelper
.
Config
.
Get
(
"CamTestReel_threshold"
,
0.6
);
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
))
srcimg
=
SaveImageToFile
(
"test"
,
cameraName
,
bmp
);
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
))
srcimg
=
SaveImageToFile
(
"test"
,
cameraName
,
bmp
);
var
b
=
new
Bitmap
(
bmp
.
Width
/
2
,
bmp
.
Height
/
2
,
bmp
.
PixelFormat
);
...
...
@@ -313,11 +316,12 @@ namespace DeviceLibrary
rois
[
0
].
RoiPath
.
Add
(
new
Point
(
0
,
bmp
.
Height
));
}
bool
hasReel
=
false
;
for
(
int
i
=
0
;
i
<
rois
.
Count
;
i
++)
{
bool
hasReel
=
false
;
for
(
int
i
=
0
;
i
<
rois
.
Count
;
i
++)
{
double
maskcout
=
0
;
var
roi
=
rois
[
i
];
var
rp
=
roi
.
RoiPath
.
Select
(
r
=>
new
Point
(
r
.
X
/
2
,
r
.
Y
/
2
)).
ToList
();
var
rp
=
roi
.
RoiPath
.
Select
(
r
=>
new
Point
(
r
.
X
/
2
,
r
.
Y
/
2
)).
ToList
();
var
fp
=
GetFilledPoints
(
rp
);
var
nfp
=
fp
.
Where
(
f
=>
IsPointInPath
(
f
.
X
,
f
.
Y
,
rp
)).
ToList
();
foreach
(
var
xy
in
nfp
)
...
...
@@ -374,13 +378,15 @@ namespace DeviceLibrary
}*/
b
.
UnlockBits
(
bd
);
if
(
hasReel
!=
lastHasReel
)
{
if
(
hasReel
!=
lastHasReel
)
{
lastHasReel
=
hasReel
;
}
else
if
(!
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
))
}
else
if
(!
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
))
logtxt
=
""
;
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
)
||
(
TestHasRight
.
HasValue
&&
TestHasRight
.
Value
!=
hasReel
))
prcimg
=
SaveImageToFile
(
"test2"
,
cameraName
,
b
);
if
(
ConfigHelper
.
Config
.
Get
(
"CamTestReel_debug"
,
false
)
||
(
TestHasRight
.
HasValue
&&
TestHasRight
.
Value
!=
hasReel
))
prcimg
=
SaveImageToFile
(
"test2"
,
cameraName
,
b
);
b
.
Dispose
();
TestHasRight
=
null
;
return
hasReel
;
...
...
@@ -402,8 +408,12 @@ namespace DeviceLibrary
bmp
.
Dispose
();
if
(!
string
.
IsNullOrEmpty
(
logtxt
))
LogUtil
.
error
(
logtxt
);
Monitor
.
Exit
(
testLocObj
);
}
}
else
return
null
;
}
/// <summary>
///
/// </summary>
...
...
@@ -412,7 +422,8 @@ namespace DeviceLibrary
/// <param name="pX"></param>
/// <param name="pY"></param>
/// <returns>x,y</returns>
static
(
int
,
int
)
PointRoate270
(
int
imgWidth
,
int
imgHeight
,
int
pX
,
int
pY
)
{
static
(
int
,
int
)
PointRoate270
(
int
imgWidth
,
int
imgHeight
,
int
pX
,
int
pY
)
{
int
x
=
pY
;
int
y
=
imgWidth
-
pX
;
return
(
x
,
y
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论