Буферизация потока битов для FIFO

Мое приложение получает 32-битное слово от оборудования.

Первый байт обозначает тип данных, остальные 3 байта являются данными (24 бита жесткого решения)

Приложение должно буферизовать биты данных до тех пор, пока не будет доступно достаточное количество для обработки. 30 бит требуется для дальнейшей обработки.

Таким образом, после получения второго слова приложение будет иметь 30 бит первого пакета и 18 бит второго пакета.

Мой вопрос, как лучше всего буферизовать и выводить биты из fifo. Биты также должны быть упакованы в 32-битное слово

Я пытался использовать потоки и битсет безрезультатно. Я еще не пробовал сдвиги, так как надеялся найти что-то более «элегантное» и научиться чему-нибудь!

Любые предложения C ++?

РЕДАКТИРОВАТЬ — Надеюсь, это немного прояснит ситуацию … в идеале я хочу прочитать 3 байта, которые я получаю, в поток. Как только у этого потока будет 30 или более битов, я хочу прочитать эти 30 битов. Оставшиеся биты останутся, пока не будут доступны еще 30 битов. По сути, я хочу немного FIFO, чтобы я мог писать и читать биты.

0

Решение

Задача ещё не решена.

Другие решения