Я использую Preon для кодирования полей перечисления в массиве байтов.
Поля первого байта (пример-байт: 0xf7=1111 01 11) настроены следующим образом:
@BoundNumber(size="2") //Corresponds to 11
private byte b1_1_notUsed;
@BoundNumber(size="2") //Corresponds to 01
private ParkingBrakeSwitch parkingBrakeSwitch;
@BoundNumber(size="4")
private byte b1_3_notUsed; //Corresponds to 1111
Декодирование работает нормально, поэтому я ожидаю, что кодирование декодированного объекта обратно в массив байтов даст тот же массив байтов, который у меня был с самого начала. Однако это не так. Вместо этого биты в первом байте кодируются следующим образом:
0xdf=11 01 1111
То есть сегменты кодируются в обратном порядке! Почему декодирование-кодирование не возвращает один и тот же массив байтов? Что мне нужно сделать? Есть ли какая-то аннотация заказа, которую мне не хватает?
Спасибо за ответ, потому что документации Preon кажется мало!