シリアル通信チャネルを介して送受信される一連のメッセージを定義するドキュメントが渡されました。受信メッセージを取得してオブジェクトに逆シリアル化し、送信メッセージもシリアル化したいのですが。有線でのエンコードは確立されており、変更できません。ヘッダー内のさまざまなビットフィールドとさまざまなペイロードで構成されます。
class Message{
int msg_num : 7
int dest_addr : 4
bool SRR : 1
bool IDE : 1
int source_addr : 6
//... and so on...
}
protobufsの使用を調べましたが、それらのvarintエンコード方法が確立されているようです。ブーストシリアル化についても見てきましたが、これまで読んだ内容に基づくと、そこでエンコードがどのように行われるかは完全には明確ではありません。
だから、いくつかの質問:
- ブーストシリアル化を使用してバイトストリームをオブジェクトに変換できますか?
- シリアル化のために自分のルーチンをロールする必要がないことを目標に(メンテナンスの混乱)、私のタスクを実行するための好ましいメカニズムがあります(たとえば、カスタムブーストシリアル化アーカイブ、私が発見していない別の方法)