パルアプリ
App_PAL
センサーデータの簡易的な読み方
下記のデータ羅列は、: に始まり改行コードまでの16進数データをテキストで表現したものです。
データの詳細情報はこちらをご参照ください。
上記が逐次解釈する書式ですので、厳密に解釈するのが煩雑です。
そのため、以下に使用するセンサーパルごとのデータのある場所とその抽出例のコードを示します。 その際、: を 0 文字目とします。
データの位置の表記法
以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。
例えば、15文字目から4文字を指定する場合は、以下のように表記します。
開閉センサーパル
開閉センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
磁気センサーのデータは63文字目から2文字分です。 磁気センサーは下表の値を出力します。
磁気センサーデータ | 意味 |
---|---|
磁気センサーのデータ | 意味 |
00 | 磁石が遠ざかった。 |
01 | 磁石のN極が近づいた。 |
02 | 磁石のS極が近づいた。 |
80 | 磁石が近くにない。(タイマーによる定期送信) |
81 | 磁石のN極が近くにある。(タイマーによる定期送信) |
82 | 磁石がS極が近くにある。(タイマーによる定期送信) |
例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。
※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。
また、磁石が近くにあるかだけ知りたい場合は、64文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。
センサーのデータの抽出例
以下は磁気センサーの状態を抜き出すためのPythonの対話モードでの実行例です。 以下の例では、63文字目と64文字目を抜き出して数値に変換し、上表に従って磁気センサーが検出している状態に変換し、標準出力しております。
アドレスなどのセンサー以外のデータ
出力メッセージは、磁気センサーのデータ以外に以下の情報が含まれております。
開閉センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力されたデータがどのアプリのデータか区別する必要があります。 開閉センサーパルの出力メッセージは、改行コード抜きで69文字(改行コードありでは71文字)で、ほかのセンサーパルのデータとは文字数が違うため、文字数で見分けると簡単です。 ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
1文字目が8であること
15文字目が8であること
25、26文字目が '80' であること
27、28文字目が '81' であること
環境センサーパル
環境センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
温度などのセンサーデータは63文字目から94文字目までに含まれております。 各データの位置やデータ形式は以下の通りです。
以下は、環境センサーパルのデータを取得するためのPythonの対話モードでの実行例です。 出力メッセージから、温度、湿度、照度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、温度は符号付の数値に変換します。 そのあと、センサーのデータを出力しますが、温度と湿度データは100倍されたデータですので、出力時に100で割った値を出力しています。
アドレスなどのセンサー以外のデータ
出力メッセージは、温湿度、照度センサーのデータ以外に以下の情報が含まれております。
環境センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリの出力か区別する必要があります。 環境センサーパルの出力メッセージは、改行コード抜きで99文字(改行コードありでは101文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。 ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
1文字目が8であること
15文字目が8であること
25、26文字目が '80' であること
27、28文字目が '82' であること
動作センサーパル
動作センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
加速度データは63文字目から時系列順でX、Y、Zに並んだ加速度が16個分格納されます。 加速度は、符号付整数で単位はmg(1重力加速度(g)の1/1000)です。 *データが12文字、ヘッダが8文字で、20文字ごとにデータが並びます。
以下は、1サンプル目の加速度を取得するためのPythonの対話モードでの実行例です。 出力メッセージから、1サンプル目の加速度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、符号付の数値に変換します。 変換後、加速度データを出力します。
アドレスなどのセンサー以外のデータ
出力メッセージは、加速度センサーのデータ以外に以下の情報が含まれております。
動作センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリのデータか区別する必要があります。 動作センサーパルの出力メッセージは、改行コード抜きで379文字(改行コードありでは381文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。 ただし、シリアル通信アプリなどのように出力メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
1文字目が8であること
15文字目が8であること
25、26文字目が '80' であること
27、28文字目が '83' であること
出力例
以下は、パルごとのデータの出力例です。
開閉センサーパル
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | |
2 | 1 | LQI | A8 | 168 | |
3 | 2 | 続き番号 | 001C | 28 | |
4 | 4 | 送信元のシリアルID | 82012B1E | 送信元のシリアルIDは2012B1E | |
5 | 1 | 送信元の論理デバイスID | 01 | 送信元の論理デバイスIDは01 | |
6 | 1 | センサー種別 | 80 | ||
7 | 1 | PAL基板バージョンとPAL基板ID | 81 | 開閉センサーパル Ver.1 | |
8 | 1 | センサーデータの数 | 03 | 3つ | |
9 | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0D0C | 3340mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
f | 1 | データソース | 30 | ADC | |
g | 1 | 拡張バイト | 01 | ADC1 | |
h | 1 | データ長 | 02 | 2バイト | |
i | 2 | データ | 03E4 | 996mV | |
j | 1 | 各種情報ビット値 | 00 | 拡張バイトなし 符号なしChar型 | |
k | 1 | データソース | 00 | 磁気 | |
l | 1 | 拡張バイト | 00 | 0 | |
m | 1 | データ長 | 01 | 1バイト | |
n | 1 | データ | 01 | 磁石(N極)が近づいた | 00: 磁石が離れた。 01: N極が近づいた 02: S局が近づいた 80: 変化なし(磁石なし) 81: 変化なし(N極が近くにある) 82: 変化なし(S極が近くにある) |
o | 1 | チェックサム1 | EC | ||
p | 1 | チェックサム2 | 6E |
環境センサーパル
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | |
2 | 1 | LQI | 84 | 132 | |
3 | 2 | 続き番号 | 811F | 33055 | |
4 | 4 | 送信元のシリアルID | 810EFF6D | 送信元のシリアルIDは810EFF6D | |
5 | 1 | 送信元の論理デバイスID | 04 | 送信元の論理デバイスIDは04 | |
6 | 1 | センサー種別 | 80 | ||
7 | 1 | PAL基板バージョンとPAL基板ID | 82 | 環境センサーパル Ver.1 | |
8 | 1 | センサーデータの数 | 05 | 5つ | |
9 | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0AEB | 2795mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
f | 1 | データソース | 30 | ADC | |
g | 1 | 拡張バイト | 01 | ADC1 | |
h | 1 | データ長 | 02 | 2バイト | |
i | 2 | データ | 035A | 858mV | |
j | 1 | 各種情報ビット値 | 05 | 拡張バイトなし 符号ありShort | |
k | 1 | データソース | 01 | 温度 | |
l | 1 | 拡張バイト | 00 | 0 | |
m | 1 | データ長 | 02 | 2バイト | |
n | 2 | データ | 09E3 | 25.31℃ | |
o | 1 | 各種情報ビット値 | 01 | 拡張バイトなし 符号なしShort | |
p | 1 | データソース | 02 | 湿度 | |
q | 1 | 拡張バイト | 00 | 0 | |
r | 1 | データ長 | 02 | 2バイト | |
s | 2 | データ | 0E3A | 36.42% | |
t | 1 | 各種情報ビット値 | 02 | 拡張バイトなし 符号ありLong | |
u | 1 | データソース | 03 | 照度 | |
v | 1 | 拡張バイト | 00 | 0 | |
w | 1 | データ長 | 04 | 4バイト | |
x | 4 | データ | 000001BE | 446 lux | |
y | 1 | チェックサム1 | 6C | ||
z | 1 | チェックサム2 | 00 |
動作センサーパル
出力例
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | |
2 | 1 | LQI | BA | 186 | |
3 | 2 | 続き番号 | 0023 | 35 | |
4 | 4 | 送信元のシリアルID | 82011CEF | 送信元のシリアルIDは82011CEF | |
5 | 1 | 送信元の論理デバイスID | 01 | 送信元の論理デバイスIDは01 | |
6 | 1 | センサー種別 | 80 | ||
7 | 1 | PAL基板バージョンとPAL基板ID | 83 | 動作センサーパル Ver.1 | |
8 | 1 | センサーデータの数 | 12 | 18 | |
9 | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0D02 | 3330mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
f | 1 | データソース | 30 | ADC | |
g | 1 | 拡張バイト | 01 | ADC1 | |
h | 1 | データ長 | 02 | 2バイト | |
i | 2 | データ | 055C | 1372mV | |
j | 1 | 各種情報ビット値 | 15 | 拡張バイトあり 符号ありShort | |
k | 1 | データソース | 04 | 加速度 | |
l | 1 | 拡張バイト | 40 | サンプリング周波数 : 100Hz 0サンプル目 | |
m | 1 | データ長 | 06 | 6バイト | |
n | 2 | データ | 001000100450 | X : 16mg Y : 16mg Z : 1104mg | |
o | 1 | 各種情報ビット値 | 15 | 拡張バイトあり 符号ありShort | |
p | 1 | データソース | 04 | 加速度 | |
q | 1 | 拡張バイト | 41 | サンプリング周波数 : 100Hz 1サンプル目 | |
r | 1 | データ長 | 06 | 2バイト | |
s | 2 | データ | 000800100430 | X : 8mg Y : 16mg Z : 1072mg | |
... | |||||
t | 1 | 各種情報ビット値 | 15 | 拡張バイトあり 符号ありShort | |
u | 1 | データソース | 04 | 加速度 | |
v | 1 | 拡張バイト | 4F | サンプリング周波数 : 100Hz 15サンプル目 | |
w | 1 | データ長 | 06 | 6バイト | |
x | 4 | データ | 000000180438 | X : 0mg Y : 24mg Z : 1080mg | |
y | 1 | チェックサム1 | 28 | ||
z | 1 | チェックサム2 | A5 |
通知パル
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | |
2 | 1 | LQI | CQ | 186 | |
3 | 2 | 続き番号 | BBC0 | 48064 | |
4 | 4 | 送信元のシリアルID | 82014C35 | 送信元のシリアルIDは82014C35 | |
5 | 1 | 送信元の論理デバイスID | 01 | 送信元の論理デバイスIDは01 | |
6 | 1 | センサー種別 | 80 | ||
7 | 1 | PAL基板バージョンとPAL基板ID | 84 | 通知パル Ver.1 | |
8 | 1 | センサーデータの数 | 03 | 3 | |
9 | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0D0C | 3340mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり 符号なしShort型 | |
f | 1 | データソース | 30 | ADC | |
g | 1 | 拡張バイト | 01 | ADC1 | |
h | 1 | データ長 | 02 | 2バイト | |
i | 2 | データ | 03F9 | 1017mV | |
j | 1 | 各種情報ビット値 | 12 | 拡張バイトあり符号なしLong | |
k | 1 | データソース | 05 | イベント | |
l | 1 | 拡張バイト | 04 | 加速度によるイベント | |
m | 1 | データ長 | 04 | 4バイト | |
n | 1 | データ1 | 10 | イベント0x10(16)が発生 | 加速度の場合 0x01(1)~0x06(6):さいころ 0x08(8):シェイク 0x10(16):タップ |
o | 3 | データ2 | 000000 | 0 | 将来の拡張用。現在は未使用 |
p | 1 | チェックサム1 | 28 | ||
q | 1 | チェックサム2 | A5 |
最終更新