Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Micro-Manager
XenethCamera
Commits
d121d677
Commit
d121d677
authored
Jun 02, 2021
by
Rossa, Lutz
Browse files
handle E_NO_FRAME (no image available) differently inside background thread
parent
29f6cb28
Changes
1
Show whitespace changes
Inline
Side-by-side
XenethCamera.cpp
View file @
d121d677
...
...
@@ -749,6 +749,8 @@ int XenethCamera::SnapImage()
m_abyImage
.
resize
(
XC_GetFrameSize
(
m_hCamera
),
0
);
}
m_bDoCameraThread
=
false
;
if
(
!
m_byCameraTrigger
)
m_byCameraTrigger
=
1
;
m_hMutex
.
unlock
();
while
(
m_bInitialized
&&
m_pCameraThread
&&
!
m_bDoCameraThread
&&
m_byCameraTrigger
)
std
::
this_thread
::
sleep_for
(
std
::
chrono
::
milliseconds
(
20
));
...
...
@@ -766,18 +768,23 @@ void XenethCamera::CameraThread()
{
m_abyImageTmp
.
resize
(
XC_GetFrameSize
(
m_hCamera
),
0
);
ErrCode
dwErr
(
XC_GetFrame
(
m_hCamera
,
FT_NATIVE
,
0
,
static_cast
<
void
*>
(
m_abyImageTmp
.
data
()),
static_cast
<
int
>
(
m_abyImageTmp
.
size
())));
m_iLastCamera
Result
=
ConvertXenethResult
(
dwErr
);
if
(
dwErr
==
I_OK
)
int
i
Result
(
ConvertXenethResult
(
dwErr
)
)
;
switch
(
dwErr
)
{
case
I_OK
:
m_iLastCameraResult
=
iResult
;
m_abyImage
.
swap
(
m_abyImageTmp
);
if
(
m_byCameraTrigger
>
0
)
--
m_byCameraTrigger
;
}
else
{
break
;
case
E_NO_FRAME
:
break
;
default:
m_iLastCameraResult
=
iResult
;
LOG
((
"XenethCamera::CameraThread(%p) camera error %u, iResult=%d
\n
"
,
this
,
dwErr
,
m_iLastCameraResult
));
if
(
m_byCameraTrigger
>
0
)
m_byCameraTrigger
=
1
;
break
;
}
}
m_bDoCameraThread
=
true
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment