錯誤代碼 0xE200010B 疑難排解:影像串流不同步#
問題#
此警告訊息會顯示於pylon Viewer 或您自己的應用程式中。
此外,您可能會注意到,對於後續的影像,BlockID() 已不再是連續的,而是保持一個恆定值 UINT64T_MAX(若轉換為 int 型別則為 -1)。
原因#
此警告表示,從攝影機傳輸至主機的底層影像串流已失去同步。
最可能的原因是:
- 纜線或主機控制器故障
- 主機控制器驅動程式有問題
- 您程式碼中對 CancelGrab() 的使用。此呼叫的行為對 USB 攝影機與 GigE 攝影機的影響有所不同。
解決方案#
- 請參閱《pylon API 》文件中的《程式設計師指南》以獲取完整詳情,特別是「USB 攝影機裝置與區塊識別碼」一節。
- 請確認您的纜線和主機控制器品質良好,且最好符合以下文件中的建議:USB 3.0 主機控制器最大頻寬測量
- 請檢查您程式碼中對 CancelGrab() 的呼叫,以判斷是否需要進行修改。
使用低階 API 時的注意事項#
在「USB 攝影機裝置與區塊 ID」一節中,文件提到:「必須停止並重新啟動擷取作業,才能從此錯誤中恢復」。
在使用低階 API 時,這表示:
(假設 CancelGrab() 已觸發串流重置)
- 註銷緩衝區
- StreamGrabber->FinishGrab()
- StreamGrabber->Close()
- StreamGrabber->Open()
- StreamGrabber->PrepareGrab()
- 重新註冊緩衝區
- 將緩衝區重新加入佇列