Preon を使用して enum フィールドをバイト配列にエンコードしています。
最初のバイト (example-byte: 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
つまり、セグメントは逆の順序でエンコードされます! デコードとエンコードが同じバイト配列を返さないのはなぜですか? どうすればいいですか?欠落している注文の注釈はありますか?
プレオンのドキュメントが不足しているように見えるため、返信していただきありがとうございます!