pack_bytes()
要素データを並べてバイト列を生成します。
uint8_t* pack_bytes(uint8_t* b, uint8_t* e, ...)pack_bytesはコンテナクラスのbegin(),end()イテレータをパラメータとし、続くパラメータで指定されるデータをバイト列としてコンテナに書き込みます。
可変引数パラメータに与えるデータは以下に示すとおりです。
データ型
バイト数
解説
uint8_t
1
uint16_t
2
ビッグエンディアン並びで格納される
uint32_t
4
ビッグエンディアン並びで格納される
uint8_t[N]
N
uint8_t 型の固定長配列
std::pair<char*,N>
N
char*,uint8_t*型の配列と配列長のペア。make_pair()で生成できる。
smplbuf_u8& pack_bytes(smplbuf_u8& c, ...)pack_bytesはコンテナオブジェクトをパラメータとし、続くパラメータで指定されるデータをバイト列としてコンテナに書き込みます。コンテナの.push_back()メソッドで末尾に追加します。
可変引数パラメータに与えるデータは以下に示すとおりです。
データ型
バイト数
解説
uint8_t
1
uint16_t
2
ビッグエンディアン並びで格納される
uint32_t
4
ビッグエンディアン並びで格納される
uint8_t[N]
N
uint8_t 型の固定長配列
std::pair<char*,N>
N
char*,uint8_t*型の配列と配列長のペア。make_pair()で生成できる。
smplbuf_u8?
.size()
uint8_t型のsmplbuf<>コンテナ。コンテナ長(.size())のデータを格納する。
例
この例では受信パケットの各属性やペイロードを別のバッファbufに再格納しています。
背景
無全パケットのデータペイロードの生成やデータの取り出しで用いられるuint8_t型のバイト配列の記述を簡素化するため。
上記はもっとも単純な記述だが、以下のようにByte array utilsを用いてバイト配列を生成できる。
最終更新