Slide 22
Slide 22 text
lat.number = gps.location.lat(); // 緯度
for (int i = 0; i < 4; i++)
payload[i + payload_offset] = lat.bytes[i];
payload_offset = 4; // 4バイト分ずらす
lng.number = gps.location.lng(); // 経度
for (int i = 0; i < 4; i++)
payload[i + payload_offset] = lng.bytes[i];
1 2 3 4 5 6 7 8
緯度(lat) 経度(lng)
#include
MsgPack::Packer packer;
packer.serialize(MsgPack::map_size_t(2),
"lat", gps.location.lat(), // 緯度
“lng”, gps.location.lng() // 経度
);
• “位置” と “意味” の仕様化が必須
• 値の改廃が困難
極限までのデータ削減には役立つが、
仕様変更は慎重に行う必要がある
MessagePack の効果
• 構造化データを JSON のように取り扱える
バイナリデータ並みのデータ削減をしつつ、
仕様変更にも強い
{
"lat": 35.12313,
"lng": 135.123131
}