私のアプリケーションは、ハードウェアから 32 ビット ワードを受け取ります。
最初のバイトはデータ型を表し、残りの 3 バイトはデータ (24 硬判定ビット) です。
アプリケーションは、処理に十分な数が利用可能になるまで、データ ビットをバッファリングする必要があります。その後の処理には 30 ビットが必要です。
したがって、2 番目のワードが受信されると、アプリケーションは 30 ビットの最初のパケットと 18 ビットの 2 番目のパケットを受け取ります。
私の質問は、FIFO からビットをバッファリングして出力する最善の方法です。ビットも 32 ビット ワードにパックする必要があります。
ストリームとビットセットを使用してみましたが、役に立ちませんでした。もう少し「エレガント」なものを見つけて何かを学びたいと思っていたので、まだビットシフトを試していません!
C++ の提案はありますか?
編集 - うまくいけば、これで物事が少し明確になります...理想的には、受信した3バイトをストリームに読み込みたいです。そのストリームに 30 ビット以上が含まれたら、それらの 30 ビットを読み取りたいと思います。残りのビットは、さらに 30 ビットが使用可能になるまで残されます。基本的に、ビットを読み書きできるビット FIFO が必要です。