キューアプリ

App_CUE

TWELITE CUEには加速度センサーと磁気センサーが搭載されており、両方のセンサーのデータも出力メッセージに含まれます。

このページでは出力メッセージからそれらのセンサーデータの読み方について解説します。

書式はパルアプリと同様です。詳しい説明はこちらをご覧ください。

センサーデータの簡易的な読み方

以下のご案内はTWELITE CUEモード時のご案内です。

動作センサーパルモードの場合は、こちらをご確認ください。

また、開閉センサーパルモードの場合はこちらをご確認ください。

下記のデータ羅列は、: に始まり改行コードまでの16進数データをテキストで表現したものです。

:80000000CF7F7382019E3B0180050F003400038135001205040406000000113008020B8611300102042E000000018015044006FFF00010FC1815044106FFF00018FC1815044206FFF00010FC0015044306FFF80000FC1015044406FFF00010FC1815044506FFE00018FBF815044606FFE80000FC0015044706FFE80010FBF815044806FFE80010FC0815044906FFE80010FC080C0E[CR][LF]

上記は逐次解釈する書式ですので、厳密に解釈するのは煩雑です。

データの詳細情報はこちらをご参照ください。

そのため、各センサーの値の場所とその抽出例をご説明します。 その際、: を 0 文字目とします。

データの位置の表記法

以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。

[データの開始位置:データの開始位置+文字数]

例えば、15文字目から4文字を指定する場合は、以下のように表記します。

[15:15+4]

加速度

加速度データは103文字目から時系列順でX、Y、Zに並んだ加速度が10個分格納されます。 加速度は、符号付整数で単位はmg(1重力加速度(g)の1/1000)です。 *データが12文字、ヘッダが8文字で、20文字ごとにデータが並ぶ。

[93:93+2]    80           磁気センサー
[103:103+12] FFF00010FC18 データ1 FFF0(X軸)/0010(Y軸)/FC18(Z軸)
[123:123+12] FFF00018FC18 データ2 FFF0(X軸)/0018(Y軸)/FC18(Z軸)
[143:143+12] FFF00010FC00 ...
[163:163+12] FFF80000FC10
[183:183+12] FFF00010FC18
[203:203+12] FFE00018FBF8
[223:223+12] FFE00018FBF8
[243:243+12] FFE80010FBF8
[263:263+12] FFE80010FC08
[283:283+12] FFE80010FC08 データ10 

磁気センサー

磁気センサーは93文字目から2文字分です。 磁気センサーは下表の値を出力します。

磁気センサーデータ意味

磁気センサーのデータ

意味

00

磁石が遠ざかった。

01

磁石のN極が近づいた。

02

磁石のS極が近づいた。

80

磁石が近くにない。(タイマーによる定期送信)

81

磁石のN極が近くにある。(タイマーによる定期送信)

82

磁石がS極が近くにある。(タイマーによる定期送信)

例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。

80 -- 80 -- 80 -- 01(※) -- 81 -- 81 --

※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。

また、磁石が近くにあるかだけ知りたい場合は、94文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。

センサーのデータの抽出例

1サンプル目の加速度と磁気センサーのデータを取得するPythonの対話モードでの実行例です。 シリアルメッセージから、1サンプル目の加速度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、符号付の数値に変換します。 磁気センサーのデータをシリアル出力から抜き出し、上表に従って磁気センサーが検出している状態に変換し、加速度データと磁気センサーの情報を標準出力しております。

>>> t =':80000000CF7F7382019E3B0180050F003400038135001205040406000000113008020B8611300102042E000000018015044006FFF00010FC1815044106FFF00018FC1815044206FFF00010FC0015044306FFF80000FC1015044406FFF00010FC1815044506FFE00018FBF815044606FFE80000FC0015044706FFE80010FBF815044806FFE80010FC0815044906FFE80010FC080C0E'
>>> x = int(t[103:103+4], 16) # 103文字目から4文字(データ1のX軸)取り出し整数値へ変換
>>> x = (-65536 + x) if x >= 32768 else x # 符号付き16ビット整数の対応
>>> y = int(t[107:107+4], 16) # 103文字目から4文字(データ1のX軸)取り出し整数値へ変換
>>> y = (-65536 + y) if y >= 32768 else y # 符号付き16ビット整数の対応
>>> z = int(t[111:111+4], 16) # 103文字目から4文字(データ1のX軸)取り出し整数値へ変換
>>> z = (-65536 + z) if z >= 32768 else z # 符号付き16ビット整数の対応
>>> print("x=%d, y=%d, z=%d" % (x, y, z))
x=-16, y=16, z=-1000
>>> v = int(t[93:93+2], 16) # 63文字目から2文字取り出し、整数値に変換
>>> periodic = True if (v & 0x80) else False # 定期送信パケットかどうか調べる(Trueだったら定期送信)
>>> status = 'S' if (v & 0x4F) == 2 else 'N' if (v & 0x4F) == 1 else 'Open' # 磁気センサーの状態を取得する。
>>> print('Magnet: %s, %s' % (periodic, status))
Magnet: True, Open

アドレスなどのセンサー以外のデータ

出力メッセージは、加速度、磁気センサーのデータ以外に以下の情報が含まれております。

データ位置  データ例   意味
[1:1+8]    80000000  中継機のシリアルID
[9:9+2]    AE        LQI 
[11:11+4]  0098      続き番号 
[15:15+8]  810B6492  送信元のシリアルID
[23:23+2]  01        送信元の論理デバイスID
[25:25+2]  80        センサー種別(80で固定)
[27:27+2]  05        PAL基板バージョンとPAL基板ID(TWELITE CUEは05)

開閉センサーパルのデータの判別方法

親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力されたデータがどのアプリのデータか区別する必要があります。 TWELITE CUEの出力メッセージは、改行コード抜きで299文字(改行コードありでは301文字)で、ほかのセンサーパルのデータとは文字数が違うため、文字数で見分けると簡単です。 ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。

より厳密に区別するには、文字数と以下の項目を確認してください。

  • 1文字目が8であること

  • 15文字目が8であること

  • 25、26文字目が '80' であること

  • 27、28文字目が '05' であること

TWELITE CUEモード

出力例

:80000000B1001B810B64650180050F003400038135001205040403000000113008020D3411300102052E000000018015044006FC28FFB0001815044106FC28FFB0000815044206FC30FFB0FFF815044306FC30FFC0FFF815044406FC28FFB0000015044506FC38FFA8001015044606FC30FFB0FFF015044706FC30FFB8FFD815044806FC20FFB0000015044906FC40FFA80018A62C
 ^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^^^^^^^^^^^^^9^^^^^^^^^^^^^^^a^^^^^^^b^^^c^^^^^^^d^^^e^^^^^^^f^g^^^^^^^h^^^i^^^j^^^k^^^^^^^l^^^m^^^n^^^o                                                                                                                                                                ^p^q

意味

バイト数

データ例

備考

1

中継機シリアルID

4

80000000

2

LQI

1

B1

3

続き番号

2

001B

4

送信元シリアルID

4

810B6465

5

送信元LID

1

01

6

センサー種別

1

80

7

PAL IDとPAL Ver

1

05

TWELITE CUE

8

センサーデータ数

1

0F

15

9

センサーデータ0

7

00340003813500

a

センサーデータ1

8

1205040403000000

b

センサーデータ2 (ヘッダ)

4

11300802

2バイト、拡張ビット有 電圧(電源電圧) 詳しくはこちらを参照してください。

c

センサーデータ2

2

0D34

3350mV

d

センサーデータ3 (ヘッダ)

4

11300102

2バイト、拡張ビット有 電圧(ADC1) 詳しくはこちらを参照してください。

e

センサーデータ3

2

052E

1432mV

f

センサーデータ4 (ヘッダ)

4

00000001

1バイト拡張ビットなし

ホールIC

詳しくはこちらを参照してください。

g

センサーデータ4

1

80

変化なし、オープン (00: 磁石が離れた。 01: N極が近づいた 02: S局が近づいた 80: 変化なし(磁石なし) 81: 変化なし(N極が近くにある) 82: 変化なし(S極が近くにある))

h

センサーデータ5 (ヘッダ)

4

15044006

符号あり2バイト、拡張ビット有

加速度(1サンプル目)

詳しくはこちらを参照してください。

i

センサーデータ5(X軸)

2

FC28

X = 392mg

j

センサーデータ5(Y軸)

2

FFB0

Y = -800mg

k

センサーデータ5(Z軸)

2

0018

Z = 240mg

l

センサーデータ6 (ヘッダ)

4

15044106

符号あり2バイト、拡張ビット有

加速度(2サンプル目)

詳しくはこちらを参照してください。

m

センサーデータ6(X軸)

2

FC28

X = 176mg

n

センサーデータ6(Y軸)

2

FFB0

Y = -1248mg

o

センサーデータ6(Z軸)

2

0008

Z = -96mg

中略

p

チェックサム1

1

A6

1~pの1つ前までのCRC8

q

チェックサム2

1

2C

1~pまでのLRC

パケットプロパティ

00340003810402
^1^2^3^4^5^6^7

意味

バイト数

データ例

備考

1

各種情報ビット値

1

00

拡張バイトなし、符号なしChar

2

データソース

1

34

起床要因

3

拡張バイト

1

00

4

データ長

1

03

5

パケットID

1

81

0~127、MSBはイベントがあるかどうか 0もしくは0x80はADC1と電源電圧、イベント以外はデータがないことを示す

6

起床要因センサー

1

04

磁気センサー:0x00 温度:0x01 湿度:0x02 照度:0x03 加速度:0x04 DIO:0x31

タイマー:0x35

7

起床要因

1

02

送信要因 イベントが発生した:0x00 値が変化した:0x01 値が閾値を超えた:0x02 閾値を下回った:0x03 閾値の範囲に入った:0x04

イベント

1205040410000000
^1^2^3^4^5^6^7^8

意味

バイト数

データ例

備考

1

各種情報ビット値

1

12

拡張バイトあり、符号なしLong

2

データソース

1

05

イベント

3

拡張バイト

1

04

イベントの発生要因

磁気センサー:0x00 温度:0x01 湿度:0x02 照度:0x03 加速度:0x04

MSBが1の場合はデータ2にデータが存在する。

4

データ長

1

04

5

データ1

1

10

イベント発生要因が磁気センサーの場合

0x00(0):近くに磁石がない 0x01(1):磁石のN極が近くにある 0x02(2):磁石のS極が近くにある

イベント発生要因が加速度の場合

0x01(1)~0x06(6):さいころ 0x08(8):シェイク 0x10(16):ムーブ

6

データ2

3

000000

未使用

最終更新