セクションの複数ページをまとめています。 印刷またはPDF形式で保存...
親機・中継機アプリ マニュアル
1 - 親機・中継機アプリ マニュアル
2020年6月以降に出荷される MONOSTICK BLUE や MONOSTICK RED に本アプリがあらかじめインストールされます。
資料の取り扱いについてをご参照ください。
お気付きの点がありましたら、当サポート窓口にご連絡いただければ幸いです。
本資料の表示例(ボタン名や画面キャプチャ)は、資料作成時のバージョンのものとなっています。
一部、入手されたバージョンと差異がある場合があります。
1.1 - 概要
機能
- 超簡単!標準アプリやパル専用アプリなどの TWELITE APPS や act のデータを1つの MONOSTICK で収集可能
- 16チャンネルで複数システムを個別に運用可能
- アプリケーションIDの設定することで、同一チャネルに複数システムを混在可能
- 中継機能で通信範囲拡大
1.2 - 使用方法
本アプリには 親機モードと中継機モードの 2つのモードがあります。次のページからそれぞれのモードについて説明を行います。
1.2.1 - 親機モード
1.2.1.1 - 受信メッセージ
TWELTIE APPSのデータを本アプリですべて同時に受信することができます。
データを受信したときのシリアル出力書式は以下のページをご覧ください。
1.2.1.1.1 - 超簡単!標準アプリ
相手端末からの状態通知:ステータス0x81
データフォーマット
:78811501C98201015A000391000C2E00810301FFFFFFFFFB
^1^2^3^4^5^^^^^^^6^7^^^8^9^^^a^b^c^de1e2e3e4ef^g
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | 78 | 送信元の論理デバイスIDは0x78 | |
2 | 1 | コマンドID | 81 | IO状態の通知 | |
3 | 1 | パケット識別子 | 15 | | アプリケーションIDより生成される |
4 | 1 | プロトコルバージョン | 01 | | 01 で固定 |
5 | 1 | LQI | C9 | 201 | 0が最小で255が最大 |
6 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは201015A | |
7 | 1 | 宛先の論理デバイスID | 00 | 親機宛 | |
8 | 2 | タイムスタンプ | 0391 | 約14.3秒 | 1秒で64カウント |
9 | 1 | 中継フラグ | 00 | 中継してない | ※1 参照 |
a | 2 | 電源電圧[mV] | 0C2E | 3118mV | |
b | 1 | 未使用 | 00 | | |
c | 1 | DI の状態ビット | 81 | DI1がON(Low) | DI1(0x1) DI2(0x2) DI3(0x4) DI4(0x8)。1がOn(Lowレベル)。 MBSが1だったら定期送信。 |
d | 1 | DI の変更状態ビット | 03 | DI1とDI2が変更対象 | DI1(0x1) DI2(0x2) DI3(0x4) DI4(0x8)。1が変更対象。 |
e1 | 1 | AI1の変換値 | 01 | 16mV | ※2、※3 参照 |
e2 | 1 | AI2の変換値 | FF | 未使用 | ※2、※3 参照 |
e3 | 1 | AI3の変換値 | FF | 未使用 | ※2、※3 参照 |
e4 | 1 | AI4の変換値 | FF | 未使用 | ※2、※3 参照 |
ef | 1 | AI1~AI4の補正値 | FF | 未使用 | LSBから順に2ビットずつ補正値、LSB側が AI1、MSB側が AI4 ※2、※3 参照 |
g | 1 | チェックサム | FB | |
※1 中継フラグは中継の回数を意味します。中継をしていない時は0になります。 ※2 AD値の復元には以下のように計算します。
AI1[mV] = (e1 * 4 + ef1) * 4 AI2[mV] = (e2 * 4 + ef2) * 4 AI3[mV] = (e3 * 4 + ef3) * 4 AI4[mV] = (e4 * 4 + ef4) * 4
※3 AI は未使用(VCC接続) の場合、対応する e1 ~ e4 値は 0xFF です。
任意データの送受信:コマンド0x01
データフォーマット
:780100112233AABBCCDD13
^1^2^^^^^^^^^^^^^^^3^4
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | 78 | 送信元の論理デバイスIDは0x78 | |
2 | 1 | コマンドID | 01 | 任意データの送受信 | |
3 | N | データ | 00112233AABBCCDD | | |
4 | 1 | チェックサム | 13 |
1.2.1.1.2 - リモコンアプリ
相手端末からの状態通知:ステータス0x81
データフォーマット
:78811202848201015A003FC9000001000100010086
^1^2^3^4^5^^^^^^^6^7^^^8^9^^^a^^^b^^^c^d^e
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | 78 | 送信元の論理デバイスIDは0x78 | |
2 | 1 | コマンドID | 81 | IO状態の通知 | |
3 | 1 | パケット識別子 | 12 | アプリケーションIDより生成される | |
4 | 1 | プロトコルバージョン | 02 | 02 で固定 | |
5 | 1 | LQI | 84 | 132 | (0が最小で255が最大) |
6 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは201015A | |
7 | 1 | 宛先の論理デバイスID | 00 | 親機宛 | |
8 | 2 | タイムスタンプ | 3FC9 | 約255.1秒 | 1秒で64カウント |
9 | 1 | 中継フラグ | 00 | 中継してない | ※1 参照 |
a | 2 | DI の状態ビット | 0001 | DI1がON(Low) | LSBからDI1、DI2… |
b | 2 | DI の変更状態ビット | 0001 | DI1が変更対象 | LSBからDI1、DI2… |
c | 2 | DIの割込状態ビット | 0001 | DI1が割り込み入力された(変化した)。 | |
d | 1 | 未使用 | 00 | ||
e | 1 | チェックサム | 86 |
※1 中継フラグは中継の回数を意味します。中継をしていない時は0になります。
1.2.1.1.3 - シリアル通信アプリ
本アプリでは書式モードの電文のみ受信可能です。
透過モードやチャットモードのパケットを受信した場合の出力は未定義ですので、ご注意ください。
簡易書式
データフォーマット
:780100112233AABBCCDD13
^1^2^^^^^^^^^^^^^^^3^4
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | 78 | 送信元の論理デバイスIDは0x78 | |
2 | 1 | 応答ID | 01 | 任意の0x00~0x7Fの値 | |
3 | N | データ | 00112233AABBCCDD | ||
4 | 1 | チェックサム | 01 |
拡張書式
データフォーマット
:78A0028201015AFFFFFFFFA8000700112233AABBCCC6
^1^2^3^^^^^^^4^^^^^^^5^6^^^7^^^^^^^^^^^^^8^9
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | 78 | 送信元の論理デバイスIDは0x78 | |
2 | 1 | コマンド種別 | A0 | 拡張形式 | 0xA0固定 |
3 | 1 | 応答ID | 02 | 任意の0x00~0x7Fの値 | |
4 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは201015A | |
5 | 4 | 送信先のシリアルID | FFFFFFFF | FFFFFFFFのときは論理デバイスIDを指定して送信している。 | |
6 | 1 | LQI | A8 | 168 | 0が最小で255が最大 |
7 | 2 | データのバイト数 | 0007 | 7バイト | |
8 | N | データ | 00112233AABBCC | | |
9 | 1 | チェックサム | C6 | |
1.2.1.1.4 - 無線タグアプリ
以下は、主なセンサー接続時のデータの出力例です。
アナログセンサ―
:80000000B700628201015A0010DF08FD09A300000000E9
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^^^8^^^9^^^^^^^a^b
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | 中継していない場合は80000000 |
2 | 1 | LQI | B7 | 168 | 0が最小で255が最大 |
3 | 2 | 続き番号 | 0062 | 98 | |
4 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは8201015A | |
5 | 1 | 送信元の論理デバイスID | 00 | 送信元の論理デバイスIDは00 | |
6 | 1 | センサー種別 | 10 | アナログセンサー | |
7 | 1 | 電源電圧 [mV] | DF | 3330mV | 電源電圧の計算方法を参照 |
8 | 2 | ADC1の電圧 | 08FD | 2301mV | |
9 | 2 | ADC2の電圧 | 09A3 | 2467mV | |
a | 4 | 未使用 | 00000000 | ||
b | 1 | チェックサム | E9 |
加速度センサー (ADXL34x / TWELITE 2525A)
:8000000063001781013C850035DF057702F2000000FF96FFF0BB
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^^^8^^^9^a^^^b^^^c^^^d^e
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | 中継していない場合は80000000 |
2 | 1 | LQI | 63 | 99 | 0が最小で255が最大 |
3 | 2 | 続き番号 | 0017 | 23 | |
4 | 4 | 送信元のシリアルID | 81013C85 | 送信元のシリアルIDは1013C85 | |
5 | 1 | 送信元の論理デバイスID | 00 | 送信元の論理デバイスIDは00 | |
6 | 1 | センサー種別 | 35 | 加速度センサー(ADXL34x) | |
7 | 1 | 電源電圧 [mV] | DF | 3330mV | 電源電圧の計算方法を参照 |
8 | 2 | ADC1の電圧 | 0577 | 1399mV | |
9 | 2 | ADC2の電圧 | 02F2 | 754mV | |
a | 1 | センサーモード番号 | 00 | 通常モード | |
b | 2 | X軸の加速度 | 0000 | 0mg | 単位はmg*10 |
c | 2 | Y軸の加速度 | FF96 | -1060mg | 単位はmg*10 |
d | 2 | Z軸の加速度 | FFF0 | -160mg | 単位はmg*10 |
e | 1 | チェックサム | BB |
スイッチ
:800000009C00118201015A00FEDF000709A300010064
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^^^8^^^9^a^b^c^d
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 4 | 中継機のシリアルID | 80000000 | 中継無し | 中継していない場合は80000000 |
2 | 1 | LQI | 9C | 156 | 0が最小で255が最大 |
3 | 2 | 続き番号 | 0062 | 98 | |
4 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは201015A | |
5 | 1 | 送信元の論理デバイスID | 00 | 送信元の論理デバイスIDは00 | |
6 | 1 | センサー種別 | 10 | スイッチ | |
7 | 1 | 電源電圧 [mV] | DF | 3330mV | 電源電圧の計算方法を参照 |
8 | 2 | ADC1の電圧 | 0007 | 7mV | |
9 | 2 | ADC2の電圧 | 09A3 | 2467mV | |
a | 1 | センサーモード番号 | 00 | 立ち下がり検出モード | 0:立ち下り検出モード 1:立ち上り検出モード |
b | 1 | DI1の状態 | 01 | ON(Low) | 1がON(Low) |
c | 1 | 未使用 | 00 | ||
d | 1 | チェックサム | 64 |
電源電圧の計算方法
読み値が170(0xAA)以下の場合
電源電圧[mV] = 1950+読み値*5読み値が170(0xAA)より大きいの場合
電源電圧[mV] = 2800+(読み値-170)*10
1.2.1.1.5 - パル/キュー/アリアアプリ
1.2.1.1.5.1 - パルアプリ
センサーデータの簡易的な読み方
下記のデータ羅列は、: に始まり改行コードまでの16進数データをテキストで表現したものです。
:80000000CF7F7382019E3B0180050F003400038135001205040406000000113008020B8611300102042E000000018015044006FFF00010FC1815044106FFF00018FC1815044206FFF00010FC0015044306FFF80000FC1015044406FFF00010FC1815044506FFE00018FBF815044606FFE80000FC0015044706FFE80010FBF815044806FFE80010FC0815044906FFE80010FC080C0E[CR][LF]
上記が逐次解釈する書式ですので、厳密に解釈するのが煩雑です。
そのため、以下に使用するセンサーパルごとのデータのある場所とその抽出例のコードを示します。
その際、: を 0 文字目とします。
データの位置の表記法
以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。
[データの開始位置:データの開始位置+文字数]
例えば、15文字目から4文字を指定する場合は、以下のように表記します。
[15:15+4]
開閉センサーパル
開閉センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E[CR][LF]
磁気センサーのデータは63文字目から2文字分です。
磁気センサーは下表の値を出力します。
磁気センサーデータ | 意味 |
---|---|
磁気センサーのデータ | 意味 |
00 | 磁石が遠ざかった。 |
01 | 磁石のN極が近づいた。 |
02 | 磁石のS極が近づいた。 |
80 | 磁石が近くにない。(タイマーによる定期送信) |
81 | 磁石のN極が近くにある。(タイマーによる定期送信) |
82 | 磁石がS極が近くにある。(タイマーによる定期送信) |
例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。
80 -- 80 -- 80 -- 01(※) -- 81 -- 81 --
※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。
また、磁石が近くにあるかだけ知りたい場合は、64文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。
センサーのデータの抽出例
以下は磁気センサーの状態を抜き出すためのPythonの対話モードでの実行例です。
以下の例では、63文字目と64文字目を抜き出して数値に変換し、上表に従って磁気センサーが検出している状態に変換し、標準出力しております。
>>> t = ':80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E'
>>> v = int(t[63:63+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: False, N
アドレスなどのセンサー以外のデータ
出力メッセージは、磁気センサーのデータ以外に以下の情報が含まれております。
データ位置 データ例 意味
[1:1+8] 80000000 中継機のシリアルID
[9:9+2] A8 LQI
[11:11+4] 001C 続き番号
[15:15+8] 82012B1E 送信元のシリアルID
[23:23+2] 01 送信元の論理デバイスID
[25:25+2] 80 センサー種別(80で固定)
[27:27+2] 81 PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
開閉センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力されたデータがどのアプリのデータか区別する必要があります。
開閉センサーパルの出力メッセージは、改行コード抜きで69文字(改行コードありでは71文字)で、ほかのセンサーパルのデータとは文字数が違うため、文字数で見分けると簡単です。
ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
- 1文字目が8であること
- 15文字目が8であること
- 25、26文字目が ‘80’ であること
- 27、28文字目が ‘81’ であること
環境センサーパル
環境センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
:8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00[CR][LF]
温度などのセンサーデータは63文字目から94文字目までに含まれております。
各データの位置やデータ形式は以下の通りです。
データ位置 意味
[63:63+4] 温度(符号付整数、単位は°Cの100倍(23.56°C→2356))
[75:75+4] 湿度(符号無整数、単位は%の100倍(25.99%→2599))
[87:87+8] 照度(符号無整数、単位はLux)
以下は、環境センサーパルのデータを取得するためのPythonの対話モードでの実行例です。
出力メッセージから、温度、湿度、照度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、温度は符号付の数値に変換します。
そのあと、センサーのデータを出力しますが、温度と湿度データは100倍されたデータですので、出力時に100で割った値を出力しています。
>>> t = ':8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00'
>>> temp = int(t[63:63+4], 16) # 63文字目から4文字取り出し、整数値に変換
>>> temp = (-65536 + temp) if temp >= 32768 else temp # 符号付き16ビット整数の対応
>>> hum = int(t[75:75+4], 16)
>>> illum = int(t[87:87+8], 16)
>>> print('temperature: %f' % ( temp/100.0 ))
temperature: 25.310000
>>> print('humidity: %f' % ( hum/100.0 ))
humidity: 36.420000
>>> print('illuminance: %d' % illum)
illuminance: 446
アドレスなどのセンサー以外のデータ
出力メッセージは、温湿度、照度センサーのデータ以外に以下の情報が含まれております。
データ位置 データ例 意味
[1:1+8] 80000000 中継機のシリアルID
[9:9+2] 84 LQI
[11:11+4] 8114 続き番号
[15:15+8] 810EFF6D 送信元のシリアルID
[23:23+2] 04 送信元の論理デバイスID
[25:25+2] 80 センサー種別(80で固定)
[27:27+2] 82 PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
環境センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリの出力か区別する必要があります。
環境センサーパルの出力メッセージは、改行コード抜きで99文字(改行コードありでは101文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。
ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
- 1文字目が8であること
- 15文字目が8であること
- 25、26文字目が ‘80’ であること
- 27、28文字目が ‘82’ であること
動作センサーパル
動作センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。
:80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5[CR][LF]
加速度データは63文字目から時系列順でX、Y、Zに並んだ加速度が16個分格納されます。
加速度は、符号付整数で単位はmg(1重力加速度(g)の1/1000)です。
*データが12文字、ヘッダが8文字で、20文字ごとにデータが並びます。
データ位置 データ例 意味
[63:63+12] 001000100450 データ1 0010(X軸)/0010(Y軸)/0450(Z軸)
[83:83+12] 000800100430 データ2 0008(X軸)/0010(Y軸)/0430(Z軸)
[103:103+12] 000000100438 ...
[123:123+12] 000800180430
[143:143+12] 000000180458
[163:163+12] 000000200438
[183:183+12] 000800180428
[203:203+12] FFE800100420
[223:223+12] FFF000100438
[243:243+12] FFE800180430
[263:263+12] FFF800180440
[283:283+12] FFF800180418
[303:303+12] 000000100420
[323:323+12] 000000280450
[343:343+12] 000000080438
[363:363+12] 000000180438 データ16
以下は、1サンプル目の加速度を取得するためのPythonの対話モードでの実行例です。
出力メッセージから、1サンプル目の加速度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、符号付の数値に変換します。
変換後、加速度データを出力します。
>>> t = ':80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5'
>>> x = int(t[63:63+4], 16) # 63文字目から4文字取り出し、整数値に変換(X軸)
>>> x = (-65536 + x) if x >= 32768 else x # 符号付き16ビット整数の対応
>>> y = int(t[67:67+4], 16) # 67文字目から4文字取り出し、整数値に変換(Y軸)
>>> y = (-65536 + y) if y >= 32768 else y # 符号付き16ビット整数の対応
>>> z = int(t[71:71+4], 16) # 63文字目から4文字取り出し、整数値に変換(Z軸)
>>> z = (-65536 + z) if z >= 32768 else z # 符号付き16ビット整数の対応
>>> print('x:%d, y:%d, z:%d' % ( x, y, z ))
x:16, y:16, z:1104
アドレスなどのセンサー以外のデータ
出力メッセージは、加速度センサーのデータ以外に以下の情報が含まれております。
データ位置 データ例 意味
[1:1+8] 80000000 中継機のシリアルID
[9:9+2] BA LQI
[11:11+4] 0023 続き番号
[15:15+8] 82011CEF 送信元のシリアルID
[23:23+2] 01 送信元の論理デバイスID
[25:25+2] 80 センサー種別(80で固定)
[27:27+2] 83 PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
動作センサーパルのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリのデータか区別する必要があります。
動作センサーパルの出力メッセージは、改行コード抜きで379文字(改行コードありでは381文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。
ただし、シリアル通信アプリなどのように出力メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
- 1文字目が8であること
- 15文字目が8であること
- 25、26文字目が ‘80’ であること
- 27、28文字目が ‘83’ であること
出力例
以下は、パルごとのデータの出力例です。
開閉センサーパル
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E
^^^^^^^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
0 10 20 30
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
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 | 拡張バイトあり | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0D0C | 3340mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり | |
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: 磁石が離れた。 |
o | 1 | チェックサム1 | EC | ||
p | 1 | チェックサム2 | 6E |
環境センサーパル
:8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00
^^^^^^^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^r^^^s^t^u^v^w^^^^^^^x^y^z
0 10 20 30 40
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
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 | 拡張バイトあり | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0AEB | 2795mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり | |
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°C | |
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 |
動作センサーパル
出力例
:80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5
^^^^^^^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^r^^^^^^^^^^^s ... ^t^u^v^w^^^^^^^^^^^x^y^z
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
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 | 拡張バイトあり | |
a | 1 | データソース | 30 | ADC | |
b | 1 | 拡張バイト | 08 | 電源電圧 | |
c | 1 | データ長 | 02 | 2バイト | |
d | 2 | データ | 0D02 | 3330mV | |
e | 1 | 各種情報ビット値 | 11 | 拡張バイトあり | |
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 |
通知パル
:80000000C9BBC082014C3501808403113008020D0C1130010203F9120504041000000097C6
^^^^^^^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
0 10 20 30
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
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)が発生 | 加速度の場合 |
o | 3 | データ2 | 000000 | 0 | 将来の拡張用。現在は未使用 |
p | 1 | チェックサム1 | 28 | ||
q | 1 | チェックサム2 | A5 |
1.2.1.1.5.2 - キューアプリ
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バイト、拡張ビット有 |
e | センサーデータ3 | 2 | 052E | 1432mV |
f | センサーデータ4 (ヘッダ) | 4 | 00000001 | 1バイト拡張ビットなし ホールIC 詳しくはこちらを参照してください。 |
g | センサーデータ4 | 1 | 80 | 変化なし、オープン |
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はイベントがあるかどうか |
6 | 起床要因センサー | 1 | 04 | 磁気センサー:0x00 タイマー:0x35 |
7 | 起床要因 | 1 | 02 | 送信要因 イベントが発生した:0x00 |
イベント
1205040410000000
^1^2^3^4^5^6^7^8
意味 | バイト数 | データ例 | 備考 | |
---|---|---|---|---|
1 | 各種情報ビット値 | 1 | 12 | 拡張バイトあり、符号なしLong |
2 | データソース | 1 | 05 | イベント |
3 | 拡張バイト | 1 | 04 | イベントの発生要因 磁気センサー:0x00 MSBが1の場合はデータ2にデータが存在する。 |
4 | データ長 | 1 | 04 | |
5 | データ1 | 1 | 10 | イベント発生要因が磁気センサーの場合 0x00(0):近くに磁石がない イベント発生要因が加速度の場合 0x01(1)~0x06(6):さいころ |
6 | データ2 | 3 | 000000 | 未使用 |
1.2.1.1.5.3 - アリアアプリ
TWELITE ARIAには温湿度センサーと磁気センサーが搭載されており、両方のセンサーのデータも出力メッセージに含まれます。
このページでは出力メッセージからそれらのセンサーデータの読み方について解説します。
センサーデータの簡易的な読み方
以下のご案内はTWELITE ARIAモード時のご案内です。
開閉センサーパルモードの場合はこちらをご確認ください。
下記のデータ羅列は、: に始まり改行コードまでの16進数データをテキストで表現したものです。
:80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934[CR][LF]
上記は逐次解釈する書式ですので、厳密に解釈するのは煩雑です。
そのため、各センサーの値の場所とその抽出例をご説明します。
その際、: を 0 文字目とします。
データの位置の表記法
以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。
[データの開始位置:データの開始位置+文字数]
例えば、15文字目から4文字を指定する場合は、以下のように表記します。
[15:15+4]
温湿度センサー
温度などのセンサーデータは103文字目から118文字目までに含まれております。
各データの位置やデータ形式は以下の通りです。
データ位置 意味
[103:103+4] 温度(符号付整数、単位は°Cの100倍(23.56°C→2356))
[115:115+4] 湿度(符号無整数、単位は%の100倍(25.99%→2599))
磁気センサー
磁気センサーは93文字目から2文字分です。
磁気センサーは下表の値を出力します。
磁気センサーデータ | 意味 |
---|---|
磁気センサーのデータ | 意味 |
00 | 磁石が遠ざかった。 |
01 | 磁石のN極が近づいた。 |
02 | 磁石のS極が近づいた。 |
80 | 磁石が近くにない。(タイマーによる定期送信) |
81 | 磁石のN極が近くにある。(タイマーによる定期送信) |
82 | 磁石がS極が近くにある。(タイマーによる定期送信) |
例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。
80 -- 80 -- 80 -- 01(※) -- 81 -- 81 --
※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。
また、磁石が近くにあるかだけ知りたい場合は、94文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。
センサーのデータの抽出例
以下は、温湿度と磁気センサーのデータを取得するPythonの対話モードでの実行例です。
出力メッセージから、温度、湿度、照度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、温度は符号付の数値に変換します。
そのあと、センサーのデータを出力しますが、温度と湿度データは100倍されたデータですので、出力時に100で割った値を出力しています。
また、磁気センサーのデータをシリアル出力から抜き出し、上表に従って磁気センサーが検出している状態に変換し、加速度データと磁気センサーの情報を標準出力しております。
>>> t = ':80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934'
>>> temp = int(t[103:103+4], 16) # 63文字目から4文字取り出し、整数値に変換
>>> temp = (-65536 + temp) if temp >= 32768 else temp # 符号付き16ビット整数の対応
>>> hum = int(t[115:115+4], 16)
>>> print('temperature: %f, humidity: %f' % ( temp/100.0, hum/100.0 ))
temperature: 25.120000, humidity: 38.920000
>>> v = int(t[93:93+2], 16) # 93文字目から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] CF LQI
[11:11+4] 0002 続き番号
[15:15+8] 8201BAA2 送信元のシリアルID
[23:23+2] 01 送信元の論理デバイスID
[25:25+2] 80 センサー種別(80で固定)
[27:27+2] 06 PAL基板バージョンとPAL基板ID(TWELITE ARIAは06)
TWELITE ARIAのデータの判別方法
親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリの出力か区別する必要があります。
TWELITE ARIAの出力メッセージは、改行コード抜きで123文字(改行コードありでは125文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。
ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。
より厳密に区別するには、文字数と以下の項目を確認してください。
- 1文字目が8であること
- 15文字目が8であること
- 25、26文字目が ‘80’ であること
- 27、28文字目が ‘06’ であること
TWELITE ARIAモード
出力例
:80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^^^^^^^9^^^^^a^^^^^^^b^^^^^^^c^^^^^^^d^^^e^^^^^^^f^^^g^^^^^^^h^i^^^^^^^j^^^k^^^^^^^l^^^m^n^o
意味 | バイト数 | データ例 | 備考 | |
1 | 中継機シリアルID | 4 | 80000000 | 中継されていない場合は80000000 |
2 | LQI | 1 | CF | 大きいほど電波品質が良い |
3 | 続き番号 | 2 | 0002 | |
4 | 送信元シリアルID | 4 | 8201BAA2 | |
5 | 送信元LID | 1 | 01 | |
6 | センサー種別 | 1 | 80 | TWELITE ARIAは80固定 |
7 | PAL ID | 1 | 06 | TWELITE ARIAモードは06 |
8 | センサーデータ数 | 1 | 07 | |
9 | センサーデータ0(ヘッダ) | 4 | 00340003 | 拡張バイトなし、符号なし1バイト、パケットプロパティが3バイト |
a | センサーデータ0 | 3 | 813500 | タイマーイベントで送信した |
b | センサーデータ1(ヘッダ) | 4 | 12053504 | 拡張バイトあり、符号なしLong、タイマーイベント情報 |
c | センサーデータ1 | 4 | 01000000 | タイマーが起床させた |
d | センサーデータ2(ヘッダ) | 4 | 11300802 | 符号なし2バイト、電源電圧 |
e | センサーデータ2 | 2 | 0D20 | 3360mV |
f | センサーデータ3(ヘッダ) | 4 | 11300102 | 符号なし2バイト、ADC1 |
g | センサーデータ3 | 2 | 04ED | 1261mV |
h | センサーデータ4(ヘッダ) | 4 | 00000001 | 拡張バイトなし、符号なし1バイト、磁気センサー |
i | センサーデータ4 | 1 | 80 | 変化なし、オープン |
j | センサーデータ5(ヘッダ) | 4 | 05010002 | 拡張バイトなし、符号あり2バイト、温度 |
k | センサーデータ5 | 2 | 09D0 | 25.12°C |
l | センサーデータ6(ヘッダ) | 4 | 01020002 | 拡張バイトなし、符号なし2バイト、湿度 |
m | センサーデータ6 | 2 | 0F34 | 38.92% |
n | チェックサム1 | 1 | 79 | 1~mまでのLRC |
o | チェックサム2 | 1 | 34 | 1~nまでのCRC8 |
1.2.1.1.5.4 - 出力書式の詳細
出力書式
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E
^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^9^a^b
番号 | バイト数 | 意味 | データ例 | 備考 |
---|---|---|---|---|
1 | 4 | 中継機のシリアルID | 80000000 | 中継していない場合は80000000 |
2 | 1 | LQI | A8 | 0が最小で255が最大 |
3 | 2 | 続き番号 | 001C | |
4 | 4 | 送信元のシリアルID | 82012B1E | |
5 | 1 | 送信元の論理デバイスID | 01 | |
6 | 1 | センサー種別 | 80 | 80で固定 |
7 | 1 | PAL基板バージョンとPAL基板ID | 81 | |
8 | 1 | センサーデータの数 | 03 | |
9 | N | センサーデータ | 113008020D0C1130010203E40000000101 | センサーデータ参照 |
a | 1 | チェックサム1 | EC | 1~9までのCRC8 |
b | 1 | チェックサム2 | 6E | 1~aまでのLRC |
センサーデータ
センサーデータは以下のような構成で表記されます。
113008020D0C
^1^2^3^4^^^5
番号 | バイト数 | 意味 | データ例 | 備考 |
---|---|---|---|---|
1 | 1 | 情報ビット | 11 | データの大きさや拡張バイトの有無を保持する |
2 | 1 | データソース | 30 | センサーの種類 |
3 | 1 | 拡張バイト | 08 | データの補足情報が付与される |
4 | 1 | データ長 | 02 | データのバイト数 |
5 | N | データ | 0D0C | センサーの実データ |
情報ビット
データの型や拡張バイトの有無、読み込みエラーの有無を示すデータです。
読み方は以下の通りです。
ビット位置 | 意味 |
---|---|
7 | 読み込みエラーの有無。1だったら読み込みエラー |
6 | - |
5 | - |
4 | 拡張バイトの有無。1だったら拡張バイトあり。 |
3 | - |
2 | データの符号の有無。1だったら符号あり、もしくはデータ型が可変長 |
1, 0 | データ型。 00 : char(1バイト) 01 : short(2バイト) 10 : long (4バイト) 11 : 可変長 |
データソース
データの種類を示します。
ID | 内容 |
---|---|
0x00 | 磁気 |
0x01 | 温度 |
0x02 | 湿度 |
0x03 | 照度 |
0x04 | 加速度 |
0x05 | イベント |
0x30 | 電圧 |
0x34 | パケットプロパティ |
拡張バイト
何サンプル目のデータか、ADCの何番目のデータかなどデータの補助的な値が格納されます。
データソース | 内容 |
---|---|
磁気 | なし |
温度 | なし |
湿度 | なし |
照度 | なし |
加速度 | 7-5ビット:サンプリング周波数。0=25Hz, 1=50Hz, 2=100Hz, 3=190Hz, 4以上=未定義 4-0ビット:サンプリング番号。0が最も古く、31が最も新しい。 |
イベント | イベントの発生要因を示す。 磁気センサー:0x00, 温度:0x01, 湿度:0x02, 照度:0x03, 加速度:0x04 MSBが1の場合はデータ2にデータが存在する。 |
電圧 | 1 : ADC1 |
パケットプロパティ | なし |
データ長
データのバイト数を示します。
データ
センサーの実データが格納されています。
データソース | バイト数 | 内容 | 数値例 (16進数) | 数値例の内容 |
---|---|---|---|---|
磁気 | 1(符号無1バイト) | 0x00=近くに磁石がない | 01 | 磁石のN極が近くにある |
温度 | 2(符号有2バイト) | 温度の100倍 (°C) | 09E3 | 25.31°C |
湿度 | 2(符号無2バイト) | 湿度の100倍 (%) | 0E3A | 36.42% |
照度 | 4(符号無4バイト) | 照度 (lux) | 000001BE | 446 lux |
加速度 | 6(符号有2バイト*3) | X 軸、Y 軸、Z軸の順でそれぞれの2バイトの重力加速度 (mg) | 001000100450 | X : 16mg Y : 16mg Z : 1104mg |
イベント | 4(符号無1バイト+3バイト) | 1バイト : イベント内容 ・拡張バイトが磁気の場合 0x00(0):近くに磁石がない ・拡張バイトが加速度の場合 0x01(1)~0x06(6):さいころ 3バイト : 未使用(将来の拡張用) | 01000000 | 拡張バイトが磁気の場合 : 磁石のN極が近くにある |
電圧 | 2(符号無2バイト) | 電圧 (mV) | 03E4 | 996mV |
パケットプロパティ | 3(符号無1バイト*3) | 1バイト : パケットID 1バイト : 起床要因データソース 磁気センサー:0x00 タイマー:0x35 送信要因 イベントが発生した:0x00 | 810402 | パケットIDが1でイベントあり、起床要因データソースは加速度で、閾値を超えたので起床した。 |
1.2.1.1.6 - アクト
データフォーマット
:FEAA008201015A00000000B7000F424154310F0CEE000B03FF03FF03FF92
^1^2^3^^^^^^^4^^^^^^^5^6^^^7^^^^^^^^^^^^^^^^^^^^^^^^^^^^^8^9
番号 | バイト数 | 意味 | データ例 | 内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信元の論理デバイスID | FE | 送信元の論理デバイスIDは0xFE | |
2 | 1 | コマンド種別 | AA | アクトのパケット | 0xAA固定 |
3 | 1 | 応答ID | 00 | 任意の0x00~0x7Fの値 | |
4 | 4 | 送信元のシリアルID | 8201015A | 送信元のシリアルIDは201015A | |
5 | 4 | 送信先のシリアルID | 00000000 | 00000000のときは論理デバイスIDを指定して送信している。 | |
6 | 1 | LQI | B7 | 183 | 0が最小で255が最大 |
7 | 2 | データのバイト数 | 000F | 15バイト | |
8 | N | データ | 424154310F0CEE000B03FF03FF03FF | | |
9 | 1 | チェックサム | 92 | |
1.2.1.2 - 送信コマンド
コマンドを入力することで子機に対して電波を送信することができます。
送信できるコマンドは以下のページをご覧ください。
1.2.1.2.1 - 0x90コマンド
:0190010004000169[CR][LF]
^1^2^3^^^^^^^4^5
番号 | バイト数 | 意味 | データ例 | 備考 |
---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先のTWELITE PALの論理デバイスIDを指定します。 |
2 | 1 | コマンド種別 | 90 | |
3 | 1 | コマンドパラメータ数 | 01 | コマンドパラメータの数を指定します。例えば、コマンドパラメータを1つだけ指定するなら1に、2つ指定するには2にします。 |
4 | コマンド数x4 | コマンドパラメータ | 00040001 | イベントやLEDの色などを指定するためのパラメータを指定します。 |
5 | 1 | チェックサム | 69 | 1~4の各バイトの和を8ビット幅で計算し2の補数をとります。つまりデータ部の各バイトの総和+チェックサムバイトを8ビット幅で計算すると0になります。 |
6 | 2 | フッター | [CR][LF] | [CR] (0x0D) [LF] (0x0A) を指定します。ただし、チェックサムをXで省略する場合はフッターも省略可能です。 |
コマンドパラメータ
4バイトのコマンドパラメータを組み合わせてコマンドを指定します。
0x00:イベントIDを送信する
TWELITE PALは受信したイベントIDごとの振る舞いが設定されております。 本パラメータでは送信先のTWELITE PALにイベントIDを送信し、設定した動作を行います。
番号 | バイト数 | 内容 | 備考 |
---|---|---|---|
1 | 1 | コマンドパラメータID | 0x00 |
2 | 1 | 送信先PAL ID | 送信先のPAL IDを指定します。 |
3 | 1 | 未使用領域 | 0x00固定 |
4 | 1 | イベントID | 0~16までのイベントIDを指定します。 |
0x01 : LEDの色、点滅パターン、明るさを送信する
送信先の通知パルにLEDの色、点滅パターン、明るさを送信します。
番号 | バイト数 | 内容 | 備考 |
---|---|---|---|
1 | 1 | コマンドパラメータID | 0x01 |
2 | 1 | 色 | 0:赤 |
3 | 1 | 点滅パターン | 0:常時点灯 |
4 | 1 | 明るさ | 0:消灯 |
0x02 : 点灯時間を送信する
通知パルのLEDの点灯時間を送信します。
番号 | バイト数 | 内容 | 備考 |
---|---|---|---|
1 | 1 | コマンドパラメータID | 0x02 |
2 | 1 | 未使用領域 | 0xFF固定 |
3 | 1 | 未使用領域 | 0x00固定 |
4 | 1 | 点灯時間 | 秒で指定(0は常時点灯) |
0x03:LEDの色をRGBWで指定する
通知パルのLEDの点灯色をRGBWで送信します。
番号 | バイト数 | 内容 | 備考 |
---|---|---|---|
1 | 1 | コマンドパラメータID | 0x03 |
2 | 1 | 未使用領域 | 0xFF固定 |
3 | 2 | LEDの点灯色 | LSBからRGBWの順番で4ビットずつ指定する。 数値が大きいほど明るい |
0x04:点滅パラメータを指定する。
通知パルのLEDの点滅周期と点滅Dutyを送信します。
番号 | バイト数 | 内容 | 備考 |
---|---|---|---|
1 | 1 | コマンドパラメータID | 0x04 |
2 | 1 | 未使用領域 | 0xFF固定 |
3 | 1 | 点滅時間の割合 | 0x00~0xFFで指定する。 数値が大きいほど1周期当たりの点灯時間が長くなる。 1周期の半分だけ点灯させるには0x7Fを指定する。 |
4 | 1 | 点滅周期 | 0x00~0xFFで指定する。 設定値が1大きくなるごとに点滅の周期が約0.04sずつ増える。 1周期1秒にするには0x17を指定する。 |
コマンド例
例1:イベントを送信する
論理デバイスIDが1のNOTICE PALに対してイベント1を送信するコマンド例です。
:0190010004000169
^1^2^3^4^5^6^7^8
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先の論理デバイスIDは0x01 | |
2 | 1 | コマンド種別 | 90 | 0x90コマンド | 90固定 |
3 | 1 | コマンド数 | 01 | コマンドは1個 | |
4 | 1 | コマンドID | 00 | コマンド00 | |
5 | 1 | 送信先PAL ID | 04 | 通知パルに対して送信する | |
6 | 1 | 未使用領域 | 00 | ||
7 | 1 | イベントID | 01 | イベント1 | 0x00~0x10まで |
8 | 1 | チェックサム | 69 |
例2:通知パルのLEDの点灯色を送信する
論理デバイスIDが1のNOTICE PALに対して明るさ8で白色にゆっくり点滅させるためのコマンドです。
:019001010601085E
^1^2^3^4^5^6^7^8
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先の論理デバイスIDは0x01 | |
2 | 1 | コマンド種別 | 90 | 0x90コマンド | 90固定 |
3 | 1 | コマンド数 | 01 | コマンドは1個 | |
4 | 1 | コマンドパラメータID | 01 | コマンドパラメータID 0x01 | |
5 | 1 | 色 | 06 | 白 | |
6 | 1 | 点滅パターン | 01 | 点滅 | |
7 | 1 | 明るさ | 08 | 明るさ8 | 0x00~0x0Fまで |
8 | 1 | チェックサム | 5E |
例3:通知パルのLEDの点灯色と点灯時間を送信する。
論理デバイスIDが1のNOTICE PALに対して紫に点灯させ、点灯後1秒で消灯させるコマンドです。
:0190020104000802FF00015E
^1^2^3^4^5^6^7^8^9^a^b^c
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先の論理デバイスIDは0x01 | |
2 | 1 | コマンド種別 | 90 | 0x90コマンド | 90固定 |
3 | 1 | コマンド数 | 02 | コマンドは2個 | |
4 | 1 | コマンドパラメータID | 01 | コマンドパラメータID 0x01 | |
5 | 1 | 色 | 04 | 紫 | |
6 | 1 | 点滅パターン | 00 | 点灯 | |
7 | 1 | 明るさ | 08 | 明るさ8 | 0x00~0x0Fまで |
8 | 1 | コマンドパラメータID | 02 | コマンドパラメータID 0x02 | |
9 | 1 | 未使用領域 | FF | ||
a | 1 | 未使用領域 | 00 | ||
b | 1 | 点灯時間 | 01 | 点灯後1秒で消える | |
c | 1 | チェックサム | 5E |
例4:通知パルに詳細な点灯色送信する。
論理デバイスIDが1のNOTICE PALに対して紫に点灯させるコマンドです。
:01900103FF0F0459
^1^2^3^4^5^^^6^7
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先の論理デバイスIDは0x01 | |
2 | 1 | コマンド種別 | 90 | 0x90コマンド | 90固定 |
3 | 1 | コマンド数 | 01 | コマンドは2個 | |
4 | 1 | コマンドパラメータID | 03 | コマンドパラメータID 0x03 | |
5 | 1 | 未使用 | FF | ||
6 | 2 | LEDの点灯色 | 0F04 | 青:15、赤4の明るさで点灯させる。 | LSBからRGBWの順番で各色4bitずつ(0~15)で指定する。 数値が大きいほど明るい |
7 | 1 | チェックサム | 59 |
例5:通知パルのLEDの点灯色と点灯時間を送信する。
論理デバイスIDが1のNOTICE PALに対して紫に点灯させ、点灯後1秒で消灯させるコマンドです。
:0190020104000802FF00015E
^1^2^3^4^5^6^7^8^9^a^b^c
番号 | バイト数 | 意味 | データ例 | データ例の内容 | 備考 |
---|---|---|---|---|---|
1 | 1 | 送信先の論理デバイスID | 01 | 送信先の論理デバイスIDは0x01 | |
2 | 1 | コマンド種別 | 90 | 0x90コマンド | 90固定 |
3 | 1 | コマンド数 | 02 | コマンドは2個 | |
4 | 1 | コマンドパラメータID | 01 | コマンドパラメータID 0x01 | |
5 | 1 | 色 | 04 | 紫 | |
6 | 1 | 点滅パターン | 00 | 点灯 | |
7 | 1 | 明るさ | 08 | 明るさ8 | 0x00~0x0Fまで |
8 | 1 | コマンドパラメータID | 02 | コマンドパラメータID 0x02 | |
9 | 1 | 未使用領域 | FF | ||
a | 1 | 未使用領域 | 00 | ||
b | 1 | 点灯時間 | 01 | 点灯後1秒で消える | |
c | 1 | チェックサム | 5E |
1.2.2 - 中継機モード
設定例
中継機として使用する場合、以下のようにインタラクティブモードで動作モード(l)を1以上に設定してください。
a: (AID=0x67720102) Application ID1 [HEX:32bit]
C: (CHL=18 ) Channels Set
x: (PWR= 0x03) RF Power/Retry [HEX:8bit]
b: (UOP=38400,8N1 ) UART Baud [9600-230400]
o: (OPT=0x00000000) Option Bits [HEX:32bit]
k: (KEY=0xA5A5A5A5) Encryption Key [HEX:32bit]
l:$(MOD= 1) Mode (Parent or Router)
A: (ADR=0x00000000) Access point address [HEX:32bit]
詳しい説明は以下のページをご覧ください。
中継方式
TWELITE NETでは無線パケットの中継配送について、大きく分けて下表で示す2つの方式を用意しており、アプリケーションごとに異なります。本アプリでは下表で示すアプリケーションのパケットを識別し、中継することができます。
中継方式 | 対応アプリ |
---|---|
単純ネット | 超簡単!標準アプリ、リモコンアプリ、シリアル通信アプリ、アクト |
中継ネット | 無線タグアプリ、パルアプリ、キューアプリ |
単純ネットを使用した中継
単純ネットを使用するアプリの中継を行う場合、動作モードの値を1以上に設定することで3回まで中継することができます。
例えば、1. のように親機と子機の間に中継機が3台以内であれば親機にデータが届きますが、2. ように中継機が4台以上ある場合は親機にデータが届きません。
- 子機 —> 中継機 —> 中継機 —> 中継機 —> 親機
→ 親機が子機のデータを3回中継して受信できる。- 子機 —> 中継機 —> 中継機 —> 中継機 —> 中継機 -x-> 親機
→ 中継4回目で中継することをやめる。
単純ネットによる中継は、基本的に同報通信を使用して通信を行い、受信したパケットをすべて中継を行います。そのため、中継ネットワークを形成、維持するための通信が必要ないという利点がありますが、中継機が増えるほど爆発的に通信量が多くなることがあるという欠点もあります。
詳しくは こちら を参照ください。
中継ネットを使用した中継
中継ネットを使用するアプリのデータを1段の中継を行う場合、動作モードの値を1に設定してしてください。
複数回の中継を行う場合は、親機から遠くなるにつれて動作モードの設定値を大きくしてください。(設定値が昇順になっていれば設定値が飛んでもかまいません。)
本方式の最大中継回数は63回までです。
例1:1回の中継を行う場合
子機 —> 中継機(動作モード:1) —> 親機例2:2回の中継を行う場合
子機 —> 中継機(動作モード:2) —> 中継機(動作モード:1) —> 親機例3:3回の中継を行う場合
子機 —> 中継機(動作モード:6) —> 中継機(動作モード:3) —> 中継機(動作モード:1) —> 親機
中継ネットは上り方向の配送を効率的に実施する目的を持って設計されたツリー型ネットワークで、中継機は上位レイヤ(より動作モードの設定値が小さい親機もしくは中継機)を探索し、発見した上位レイヤ1台に対して中継を行います。
そのため、中継機の台数が増えても単純ネットほどは通信量が多くなりにくいですが、接続先を探索、維持するための通信が発生します。
詳しくは こちら をご覧ください。
静的ルーティング(中継先を直接指定)をする場合
中継ネットでの中継を行うときに、下図のような配置を考えた場合、中継機2の接続先は親機もしくは中継機1のどちらかを自動的に選択します。
基本的には、中継する回数が少ない方が親機への配送率が高くなる場合が多いですが、中継機2の接続先として親機が選択されてしまった場合、親機と中継機2の間に障害物があるため、通信品質が悪くなり、親機への配送率が中継機1を経由するときより低くなる可能性が高くなります。
そのため、本アプリには中継機の接続先を TWELITE のシリアル番号で指定する機能 (静的ルーティング機能) があります。
静的ルーティングを行う場合は、中継機2→中継機1への経路を静的にする、または全ての経路を静的に設定します。
すべての経路の設定にはその分だけ設定が多くなり、また、中継機の故障や電波状況の変化といった状況を想定した冗長化に対応できない点がありますが、上位通信先を確定するまでの時間をなくし、速やかに中継動作に移行できる利点があります。
静的ルーティングをするには下表のように中継機1には親機のSID、中継機2には中継機1のSIDになるように接続先を設定してください。
例: 2段中継の場合 (親機 ← 中継機1 ← 中継機2 ← 子機)
TWELITEのSID例 | 接続先(A: Access Point Address)の設定例 | 動作モード(l:Mode)の設定例 | |
---|---|---|---|
親機 | 810F155E | - | 0 |
中継機1 | 810E18E8 | 810F155E (親機のSID)※ | 1 |
中継機2 | 810F17FF | 810E18E8 (中継機1のSID) | 2 |
※上図の壁による影響のみに対処したい場合は設定不要です。
1.3 - インタラクティブモード
インタラクティブモードでアプリの詳細設定を行うことができます。
インタラクティブモードに入るには、パソコン上のターミナルソフトから + + + と + を3回入力します。+ と + の間には 0.2 秒から 1.0 秒の間隔をあけてください。
また、TWELITE プログラマや TWELITE STAGE には簡単にインタラクティブモードに入れるショートカット機能もありますので、そちらもご利用ください。
インタラクティブモードに入ると以下の画面が表示されます。
うまくいかない場合は、TWELITE プログラマや TWELITE STAGE のショートカット機能を使用してください。
[CONFIG MENU/App_Wings:PARENT:0/v1-00-1/SID=82011098]
a: (AID=0x67720102) Application ID1 [HEX:32bit]
c: (CHL=18 ) Channels Set
x: (PWR= 0x03) RF Power/Retry [HEX:8bit]
b: (UOP=38400,8N1 ) UART Baud [9600-230400]
o: (OPT=0x00000000) Option Bits [HEX:32bit]
k: (KEY=0xA5A5A5A5) Encryption Key [HEX:32bit]
m: (MOD= 0) Mode (Parent or Router)
A: (ADR=0x00000000) Access point address [HEX:32bit]
[ESC]:Back [!]:Reset System [M]:Extr Menu
設定コマンド一覧
コマンド | 設定項目 | 初期値 | 説明 |
---|---|---|---|
a | アプリケーションID | 0x67720102 | 同じアプリケーションID同士のみ通信可能です。 異なった値を設定することにより、同一の周波数チャネルを複数のグループで使用することが可能です。 本設定を変更することで、TWELITE APPS のほかのアプリのデータを受信することできます。詳しくは [こちら](#TWELITE APPS のアプリケーションIDと周波数チャンネルの初期設定値) をご確認ください。 |
c | 周波数チャンネル | 18 | チャネル (11~26) を選択します。複数チャネルを指定した場合は チャネルアジリティにより電波干渉の回避に役立ちます。最大3チャネルまで指定可能です。例えばチャネル 13 とチャネル 22 を使用する場合は 13,22 と入力します。 本設定を変更することで、TWELITE APPS のほかのアプリのデータを受信することできます。詳しくは [こちら](#TWELITE APPS のアプリケーションIDと周波数チャンネルの初期設定値) をご確認ください。 |
x | 中継時の送信出力と再送回数 | 03 | XYの2桁で指定します。 X : 再送回数で1-9 が指定の回数、0 が再送なし Y : 送信出力を指定します。 3が最強で2,1,0と1段階小さくなるたびに -11.5db 出力が低下します。出力を制限し電波の有効伝達範囲を小さくしたい場合に使用します。ただし、伝達可能距離は環境(ノイズ・遮蔽物など)に影響を受けます。 ※ 理論上の伝達距離は 6db 出力が小さくなるたびに 1/2 になりますので、1段階小さくすることで見通し・環境ノイズ無しでの伝達距離は約1/4になります。 例えば 43 を指定すると再送4回、電波出力最強となります。 |
b | UARTオプション | 38400,8N1 | ボーレートとパリティの設定をカンマで区切って指定することができます。 ボーレートは9600、19200、38400、57600、115200、230400が設定可能です。他の値も設定可能ですが、オシロスコープ等を用いて誤差を検証した上で使用してください。 |
o | オプションビット | 0x00000000 | 各種詳細設定ができます。オプションビットの説明は以下をご参照ください。 |
k | 暗号化鍵 | 0xA5A5A5A5 | 32bitの16進数を設定します。 |
m | 動作モード | 0 | 0は親機モードになります。 1は中継モードになります。 |
A | 接続先 | 0x00000000 | 中継機モード時に静的ルーティングをするときの接続する上位段のTWELITEのSIDを指定します。近くに存在しないSIDや下位段のSIDを指定したときは不定となるので指定する場合は必ず存在する上位段のSIDを入力してください。0x00000000の時は自動で上位段を検索し、発見したTWELITEを通信を試みます。 |
S | 設定値の保存 | 設定を保存します。 | |
R | 初期値に設定を戻す | 続けてS キーによる設定の保存を行ってください。 | |
! | モジュールの再起動 | TWELITEを再起動します。 | |
M | ルートメニューへ移行 | 不具合などがあったときに使用するコマンドです。 技術サポートの指示がない限り、使用しないでください。 |
オプションビットの設定
オプションビット設定値を各ビットごとに解説します。
設定値(16進) | 機能 | 説明 |
---|---|---|
0x00000200 | UARTオプションの適用 | シリアルのボーレートやパリティの設定を反映させます。 |
0x00000400 | 定期送信パケットのUART出力の停止 | 超簡単!標準アプリとリモコンアプリの1秒毎の定期送信と連続モード時のUART出力を停止します。 |
0x00001000 | 暗号化通信の設定 | 暗号化通信を有効にします。(相手側の暗号化設定もしてください。) |
0x00002000 | 暗号化通信時の平文受信 | 暗号化通信が有効な時に暗号化していないパケットも受信します。 |
TWELITE APPS のアプリケーションIDと周波数チャンネルの初期設定値
本アプリが初期設定の時は超簡単!標準アプリと通信できるようになっておりますが、アプリケーション ID と周波数チャンネルを通信相手の TWELITE に合わせることでほかの TWELITE APPS とも通信することができます。下表は TWELITE APPS のアプリケーション ID と周波数チャンネルの初期設定値なので、これを参考に本アプリを設定してください。
TWELITE APPS | アプリケーション ID の初期設定値 | 周波数チャンネルの初期設定値 |
---|---|---|
超簡単!標準アプリ (App_Twelite) | 0x67720102 | 18 |
リモコンアプリ (App_IO) | 0x67720107 | 16 |
シリアル通信アプリ (App_Uart) | 0x67720103 | 18 |
無線タグアプリ (App_Tag) | 0x67726305 | 15 |
パルアプリ (App_PAL) | 0x67726305 | 15 |
キューアプリ (App_CUE) | 0x67720102 | 18 |
異なる複数の TWELITE APPS のデータを同時に受信する場合
本アプリは異なる TWELITE APPS の電波が混在していても、アプリケーション ID と周波数チャンネルをそろえていただければ受信することできます。例えば、超簡単!標準アプリの子機とパルアプリの子機がそれぞれある場合に、アプリケーションIDと周波数チャンネルをすべての TWELITE でそろえれば、本アプリがインストールされた TWELITE で子機の電波を受信・中継が可能になります。
その際は、下表の例のように設定を行います。
TWELITE の役割 | アプリケーション ID の設定例 | 周波数チャンネルの設定例 |
---|---|---|
親機 (App_Wings) | 0x12345678 | 22 |
中継機 (App_Wings) | 0x12345678 | 22 |
子機1 (App_Twelite) | 0x12345678 | 22 |
子機2 (App_PAL) | 0x12345678 | 22 |