-
产品中心
计算机视觉硬件工业相机 镜头 机器视觉光源 采集卡 线材 配件 网络和外围设备计算机视觉软件pylon Camera Software Suite pylon vTools VisualApplets 其他软件产品线嵌入式视觉产品线 医疗和生命科学产品线 CoaXPress产品线 5GigE产品线 3D产品线面阵相机Basler ace 2 短波红外相机 Basler ace Basler MED ace Basler boost Basler beat Basler dart Basler pulseBasler aceace lite线阵相机Basler racerpylon Camera Software Suitepylon vTools pylon开源项目 pylon-data-faq pylon驱动程序和GenTL pylon SDKs pylon Viewer
- 选型工具
- 解决方案
- 下载中心
- 品牌中心
- 销售与支持
-
Vision Campus
相机技术Sony IMX CMOS芯片系列型号比较 为什么要对相机进行色彩校准? 专家教您如何为视觉系统找到合适的镜头 适用于嵌入式视觉系统的五大专家级技巧 什么是多光谱成像? CMOS相机比较 图像处理过程中的色彩 处理板 什么是图像处理 图像处理中的3D技术 什么是嵌入式视觉? 为何选择CMOS图像芯片? 什么是ToF (Time-of-Flight)? 什么是成像质量? 相机尺寸 数字相机的工作原理是什么? 芯片技术:CMOS与CCD的对比 实时性 NIR: 即使在弱光条件也可以呈现清晰图像 高灵敏度图像处理相机 Time-of-Flight versus Stereovision显示更多收起接口和标准千兆网(GigE) 什么是CoaXPress? 配备GigE 2.0的多相机系统 System Setup with CoaXPress 2.0 USB 3.0和USB3 Vision Camera Link 哪一款接口适合嵌入式视觉? GenICam标准
- 公司概况
USB3 Error 0xE200010B "The image stream is out of sync" (related: BlockID() = UINT64T_MAX)
Symptom
This warning message is shown in pylon viewer or the customer's code.
Also the customer may notice that BlockID() ceases to be sequential for subsequent images, and instead holds a constant value of UINT64T_MAX (or -1 if cast to int).
Cause
This warning indicates that the underlying image stream from the camera to the host has fallen out of synchronization.
Most likely causes are:
- Faulty cable or host controller
- Faulty host controller drivers
- The usage of CancelGrab() within the customer's code. The behavior of this call has different effects for USB cameras than for GigE cameras.
Solution
1. Please read the pylon Programmer's Guide (Advanced Topics --> Migrating Existing Code for Using USB Camera Devices) for full details!
- This is installed with pylon and can be found here: C:\Program Files\Basler\pylon 5\Development\Doc
2. The customer should check that their cables & Host Controller are of good quality and preferably meet the recommendations in the following document:
- https://www.baslerweb.com/en/support/downloads/document-downloads/maximum-bandwidth-measurements-of-usb-3-0-host-controllers/
3. The customer should examine their usage of CancelGrab() in their code to determine if modifications need to be made.
Notes
- Excerpt from programmer's guide:
USB Camera Devices and Block ID
Image data is transferred between a PC and a USB camera device using a certain sequence of data packets. In the rare case of an error during the image transport, the image data stream between PC and USB camera device is reset automatically, e.g. if the image packet sequence is out of sync. The image data stream reset causes the Block ID delivered by the USB camera device to start again at zero. pylon indicates this error condition by setting the Block ID of the grab result to its highest possible value (UINT64_MAX) for all subsequent grab results. A Block ID of UINT64_MAX is invalid and cannot be used in any further operations. The image data and other grab result data are not affected by the Block ID being invalid. The grabbing needs to be stopped and restarted to recover from this error condition if the application uses the Block ID. The Block ID starts at zero if the grabbing is restarted.
Applications that are still using the Low Level API can use the pylon::IStreamGrabber::CancelGrab method. Calling CancelGrab resets the image stream between PC and USB camera device, too. Therefore, the value of the Block ID is set to UINT64_MAX for all subsequent grab results after calling CancelGrab.
- Considerations when using the Low Level API:
If using the low level api, the definition of "The grabbing needs to be stopped and restarted to recover from this error" above translates to:
(Assuming that CancelGrab() has invoked the stream reset)
1. Degregister Buffers
2. StreamGrabber->FinishGrab()
3. StreamGrabber->Close()
4. StreamGrabber->Open()
5. StreamGrabber->PrepareGrab()
6. Re-Register Buffers
7. Re-Queue Buffers