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)も使いたくないということがあると思います。
そのような場合、

img-20191211-technical-01.jpg

となるペイロード構成をとることになります。
では、このペイロードをステークカジノ 5chのCustom Payload Configで変数定義したい場合、どうなるでしょうか?

間違ったやり方

まずは、間違った定義をお見せします。
Speed::uint:8 Direction::uint:4 ステークカジノ 5chatus::uint:4
このように定義すれば、Body内(例えばJSON構文)でcuステークカジノ 5chomData#Speed, cuステークカジノ 5chomData#Direction, cuステークカジノ 5chomData#ステークカジノ 5chatusといった変数が使えるようになるから、それでいいと思うかもしれません。

何が起きるか?

このような定義をした場合、何が起きるのかを説明します。

img-20191211-technical-02.jpg
    まずは、
  1. [1]
    Speed::ステークカジノ 5chnt:8により、Speed情報は先頭から8ビットをステークカジノ 5chnt型として読み取るため、問題ありません
  2. [2]
    Direction::ステークカジノ 5chnt:4により、次のバイトの先頭から4ビットをステークカジノ 5chnt型として読み取るため、これも問題ないでしょう。
  3. [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]です。

img-20191211-technical-03.jpg
  1. [4]
    2フィールド目(byte_index)を"1"にしたため、ペイロードの2バイト目にポインタが移ります。(0にしたら、1バイト目に移ります。byte_indexは0~9のいずれかが使えます)
  2. [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画面で確認することができます。

img-20191211-technical-04.jpg

Payload displayは、表示だけですので、システムに影響を及ぼすこともないかと思いますので、一度、ご自身の環境で試してみてください。

著者情報

Products and Marketing Department 日比 学

京セラコミュニケーションシステム株式会社(KCCS)よりステークカジノ 5ch社(フランス)に出向中の元自称ステークカジノ 5chエバンジェリスト

  • KCCSから追い出され、フランスの片田舎で余生を過ごしています
Twitter:https://twitter.com/ghibi
ステークカジノ 5ch