エラーコード 0xE200010B のトラブルシューティング: イメージストリームが非同期状態です#
問題#
この警告メッセージは、pylon Viewer または独自のアプリケーションに表示されます。
また、以後の画像において BlockID() が連番にならず、代わりに定数値 UINT64T_MAX(int にキャストした場合は -1)が保持されることがあります。
原因#
この警告は、カメラからホストへの基盤となるイメージストリームの同期がズレていることを示しています。
最も可能性の高い原因は次のとおりです。
- 不良のあるケーブルまたはホストコントローラー
- 不良のあるホストコントローラードライバー
- コードでの CancelGrab() の使用。このコールの動作は、GigE カメラと USB カメラで影響が異なります。
解決策#
- 詳細、特にUSB Camera Devices and Block IDのセクションについては、pylon API ドキュメントのプログラマーズガイドをお読みください。
- ケーブルとホストコントローラーの Quality が良好であり、できれば次のドキュメントの推奨事項を満たしていることを確認してください: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()
- バッファーの再登録
- バッファーの再キューイング