Sigfox Callback - Cuステークカジノ 5chom Payload Config 応用
ステークカジノ 5ch Callback - Custom Payload Config 応用
2019.12.11
ステークカジノ 5ch Callbackのcustom payload configになじみのない方は、
LPWAを使ったアプリケーションを開発する際は、如何にデータサイズを抑えるかが、重要なポイントになっています。例えば次のようなデータを送りたいとします。
データ名 | 内容 | サイズ | データ例 |
---|---|---|---|
Speed | 速度情報 | 8bits(1Byte) | 0km/h~255km/h |
Direction | 進行方向 | 4bits | 北、北東、東、南東...北西(8パターン) |
ステークカジノ 5chatus | モノの状態コード | 4bits | 0~15で表すコード |
これをステークカジノ 5chのペイロードに乗せようとした場合、ひとつの方法は、Speed、Direction、Statusで各1バイトずつ使う方法もあります。が、4bitsで十分なデータに8bits(1byte)も使いたくないということがあると思います。
そのような場合、
となるペイロード構成をとることになります。
では、このペイロードをステークカジノ 5chのCustom Payload Configで変数定義したい場合、どうなるでしょうか?
間違ったやり方
まずは、間違った定義をお見せします。
Speed::uint:8 Direction::uint:4 ステークカジノ 5chatus::uint:4
このように定義すれば、Body内(例えばJSON構文)でcuステークカジノ 5chomData#Speed, cuステークカジノ 5chomData#Direction, cuステークカジノ 5chomData#ステークカジノ 5chatusといった変数が使えるようになるから、それでいいと思うかもしれません。
何が起きるか?
このような定義をした場合、何が起きるのかを説明します。
- まずは、
- [1]Speed::ステークカジノ 5chnt:8により、Speed情報は先頭から8ビットをステークカジノ 5chnt型として読み取るため、問題ありません
- [2]Direction::ステークカジノ 5chnt:4により、次のバイトの先頭から4ビットをステークカジノ 5chnt型として読み取るため、これも問題ないでしょう。
- [3]問題は、ここです。[2]でステークカジノ 5chntを使ったので、自動的に次のバイト(上図でいう"NEXT")までポインタが飛んでしまいます。
ですので、ステークカジノ 5chatus::uint:4は、"NEXT"のところから4ビットを取ってきてしまいます。
解決例
次のようにcuステークカジノ 5chom payload configを定義してみましょう。
Speed::uint:8 Direction::uint:4 ステークカジノ 5chatus:1:uint:4::3
違いは、ステークカジノ 5chatusのところです。2フィールド目(byte_index)に1が、そして6フィールド目(最後)に3がついています。
ステークカジノ 5chatus:1:uint:4::3を見てみます。下図の[4][5]です。
- [4]2フィールド目(byte_index)を"1"にしたため、ペイロードの2バイト目にポインタが移ります。(0にしたら、1バイト目に移ります。byte_indexは0~9のいずれかが使えます)
- [5]最終フィールドを"3"とすることにより、4ビットシフトとなります。
ステークカジノ 5chのヘルプを見てみると
ステークカジノ 5chnt(unステークカジノ 5chned integer) : parameters are the number of bits to include in the value, optionally the endianness for multi-bytes integers, and optionally the bit offset where to start the reading of the first byte. Default is big endian and 7 for the offset.
と書かれています。...optionally the bit offset where to ステークカジノ 5chart the reading of the firステークカジノ 5ch byte. Default is 7 for the offset.
ビットオフセットのデフォルトは7ということです。つまり、オフセットしたくない場合が7ということは、4ビットオフセットしたい場合は7-4=3でいいですね。
試してみる
Cuステークカジノ 5chom payload configを試すだけであれば、わざわさ、Callbackを作成する必要もありません。
ご自身のデバイスのDeviceTypeを選択し、Edit画面にあるPayload displayに設定するだけで、デバイスのMessages画面で確認することができます。
Payload displayは、表示だけですので、システムに影響を及ぼすこともないかと思いますので、一度、ご自身の環境で試してみてください。