Preon Framework собирает отдельные биты (на самом деле грызет)

Двоичный поток, который я пытаюсь декодировать с использованием Preon, имеет значение, которое состоит из 5 непоследовательных отрывков, например:

Шестнадцатеричные данные: 00A00000F200EE0000

Учтите, что значение должно быть извлечено из ненулевых помеченных полубайтов в AF2EE, возможно ли это с помощью Preon? Если да, то можете ли вы дать какие-либо советы по этому поводу?

PS: Нули только для примера, они не представляют критерии для выбора того, какие кусочки извлечь, так как они с фиксированной позицией кусают необходимые.

Возможно, @wilfred-spinger может помочь?

1 ответ

Решение

Если клевы имеют фиксированное положение, то да, это возможно. Поля класса могут выглядеть примерно так:

 @BoundList(size = "8")
 private byte[] reserved0;

 @BoundList(size = "4")
 private byte[] nibble1; // location of A

 @BoundList(size = "20")
 private byte[] reserved1;

 @BoundList(size = "4")
 private byte[] nibble2; // location of F

 @BoundList(size = "4")
 private byte[] nibble3; // location of 2

 // etc

Я думаю, что может быть способ указать смещение в Preon, так что вам не нужно иметь поля для 0-битов, но я не могу вспомнить, что у меня в голове.

Надеюсь, это поможет.

Другие вопросы по тегам