排查錯誤代碼 0xE200010B:影像串流不同步#
問題#
此警告訊息會顯示在 pylon Viewer 或您自己的應用程式中。
此外,您可能會注意到後續影像的 BlockID() 不再連續,而是保持 UINT64T_MAX(若轉型為 int 則為 -1)的常數值。
原因#
此警告表示從相機到主機的底層影像串流已失去同步。
最常見的原因包括:
- 故障的纜線或主機控制器
- 故障的主機控制器驅動程式
- 在您的程式碼中使用了 CancelGrab()。此呼叫的行為對 USB 相機和 GigE 相機造成的影響有所不同。
解決方案#
- 請參閱 pylon API Documentation 中的 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()
- 重新註冊緩衝區
- 重新將緩衝區排入佇列