错误代码 0xE200010B 排查:图像流不同步#
问题#
此警告消息显示在 pylon Viewer 或您自己的应用程序中。
此外,您可能会注意到,后续图像的 BlockID() 不再是连续的,而是保持为 UINT64T_MAX(如果转换为 int,则为 -1)的常数值。
原因#
此警告表明从相机到主机的底层图像流已失步。
最可能的原因包括:
- 线缆或主机控制器故障
- 主机控制器驱动程序故障
- 在您的代码中使用了 CancelGrab()。此调用对于 USB 相机和 GigE 相机具有不同的行为效果。
解决方案#
- 请阅读 pylon API 文档中的 Programmer's Guide 以了解完整详情,尤其是 USB Camera Devices and Block ID 一节。
- 请检查您的线缆和主机控制器质量良好,并且最好符合以下文档中的推荐标准:Maximum Bandwidth Measurements of USB 3.0 Host Controller
- 请检查代码中的 CancelGrab() 调用,以确定是否需要进行修改。
使用 Low Level API 时的注意事项#
在 USB Camera Devices and Block ID 一节中,文档提到:“需要停止并重新启动采集才能从该错误中恢复”。
当使用 Low Level API 时,这意味着:
(假设 CancelGrab() 已触发流重置)
- 取消注册缓冲区
- StreamGrabber->FinishGrab()
- StreamGrabber->Close()
- StreamGrabber->Open()
- StreamGrabber->PrepareGrab()
- 重新注册缓冲区
- 重新将缓冲区排入队列