最適な出力のために、Google Chrome(15以降)または Microsoft Edge(79以降)を推奨いたします。
2024-11-14 現在 TWELITE APPS 信号伝達やシリアル通信など、すぐに使える専用ファームウェア
TWELITE APPS - トワイライトアプリはTWELITEのソフトウエア開発を行わずにそのまま使えるレディメイドソフトウエアです。
インタラクティブモードとは インタラクティブモードは、 TWELITE APPS の詳細設定を行うモードです。
複数のグループで通信したい場合や、通信エラーを減らしたい場合等に必要な設定を行うことができます。
PC との接続 TWELITE の場合 MONOSTICK の場合 親基板へ用意した7Pインターフェイスに TWELITE R シリーズを装着し、USBケーブルを使ってパソコンと接続してください。 MONOSTICK をパソコンの USB ポートに接続してください。 TWELITE R シリーズ は必要ありません。 TWELITE (SMD) と PC の接続
MONOSTICK と PC の接続
TWELITE DIP (BLUE/RED) の場合 その他の場合 TWELITE R シリーズ へ装着し、USBケーブルを使ってパソコンと接続してください。7Pインターフェイスを備える TWELITE シリーズには TWELITE R シリーズ を装着し、USBケーブルを使ってパソコンと接続してください。 TWELITE DIP (BLUE/RED) と PC の接続
その他の TWELITE シリーズ と PC の接続
インタラクティブモードの切り替え
TWELITE がスリープしている間はインタラクティブモードを使用できません。
TWELITE STAGE を使用する場合 TWELITE STAGE APP は TWELITE のファームウェアの書き込みと設定、および受信したデータの表示機能を統合した開発ツールです。
TWELITE STAGE APP を起動する TWELITE STAGE APP のメインメニュー
TWELITE STAGE APP のメニューから「インタラクティブモード」を選択 する ターミナルソフトを使用する場合 一般のターミナルソフトを使用することもできます。
パソコン側でターミナルソフトを起動する(通信条件:115200bps/8-N-1) TWELITEをリセットする。 パソコンのキーボードの+
をゆっくり(0.2~1秒間隔)で3回押下する。上手くいかない場合は、繰り返し + を入力する。 インタラクティブモードを終了するには、もう一度+
を3回押下してください。
テンキーから+
キーを入力すると失敗する場合があります。本体の+
を使用してください。
インタラクティブモードの操作 インタラクティブモードでは、以下のような画面を表示します。
--- CONFIG/TWELITE APP V1-00-2/SID=0x81000038/LID=0x78 ---
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (18)
t: set mode4 sleep dur (1000ms)
y: set mode7 sleep dur (10s)
f: set mode3 fps (32)
---
S: save Configuration
R: reset to Defaults
表示内容は、ファームウェアの種類やバージョンによって異なります。
エスケープシーケンスに対応しないターミナルソフトウェアでは、表示が崩れる場合があります。
手順
値を選択:先頭のアルファベットを押下 値を指定:値を入力 値を確定:Enter
キーを押下 値を保存:S
(大文字)を押下 値を適用:TWELITE を再起動 ()
内の値は設定値です。
R
(大文字)を押下することで、初期値へリセットできます(S
で適用)。
操作例 アプリケーションIDを 0xBEEFCAFE
へ設定する場合の入力は次のようになります。
Input Application ID (HEX:32bit): BEEFCAFE
設定を適用するには、S
コマンドで内容を保存したのち、本体を再起動してください。
TWELITE APPS に共通する設定 周波数チャネル、アプリケーションID、デバイスID、再送回数と送信出力の設定は、TWELITE APPS に共通しています。
アプリケーションIDと周波数チャネル グループ化のイメージ
同一のアプリケーションIDと周波数チャネルをもつ端末でないと通信できません。
a
:アプリケーションID通信を行うすべての端末へ同一の値を設定すると、論理的にネットワークを分離 できます。
TWELITE は、自身と異なるアプリケーションIDをもつ端末から受信したパケットを破棄します。したがって、同一の周波数チャネル内へ複数のグループを設けることができます。
アプリケーションIDが同一であっても、周波数チャネルが同一であった場合はパケットの干渉を避けることはできません。可能な限り周波数チャネルを分けるようにしてください。
グループ数が16以下の場合は、周波数チャネルとアプリケーションIDの双方をグループごとに分けることを推奨いたします。
上位または下位の2バイトに0
またはF
が連続する値は設定できません(0xFFFF????
/0x0000????
/0x????FFFF
/0x????0000
)。
0x80000001
以上の値を設定する場合は、必ずお客さまのお手元にある TWELITE へ刻印されたシリアル番号を使用してください。
皆さんがこのルールを守る限り、誰もがユニークなアプリケーションIDを得ることができます。
c
:周波数チャネル通信を行うすべての端末へ同一の値を設定すると、物理的にネットワークを分離 できます。
TWELITE は IEEE802.15.4 規格へ準拠しており、2.4GHz帯を16チャネルに分割して使用します。
周波数チャネルの一覧
周波数チャネルを変更する場合は、c
(小文字)を押下してください。
チャネルアジリティーの使用(通常は非推奨) 動作イメージ
カンマ区切りで複数のチャネルを指定することで、チャネルアジリティを有効化できます。
チャネルアジリティは、複数の周波数チャネルを一定の間隔で切り替えながら通信することにより、劣悪な通信環境における通信の成功率を改善する仕組みです。
同時に3チャネルまで指定できます。指定されたチャネルを一定の間隔で順番に切り替えて送信します。受信側においても、チャネルを一定の間隔で順番に切り替えて受信します。
なお、チャネルの切り替え中は受信できません。通常の通信環境では、1チャネルを指定するよりも通信の信頼性は低下します 。
各 TWELITE APPS の初期値 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
アリアアプリ(App_ARIA) 0x67720102
18
親機・中継機アプリ(App_Wings) 0x67720102
18
i
:論理デバイスID論理デバイス ID は各端末を識別するために使用します。各端末に論理的なIDを割り振ることができます。
論理デバイスIDを付与するイメージ
1つの親機に対して複数の子機を使用する場合は、各子機へ異なる ID(1
~100
)を付与してください。
x
:送信出力と再送回数送信出力を弱めることで電波の有効伝達範囲を狭くすることができます。ただし消費電力は変わりませんから、通常は最大出力でお使いください。
出力を弱めてしまうと、届いてほしいときに届かないことがあります。
出力を弱めることで到達範囲を狭くしなくてはならないとき、多くの場合はシステムの設計に問題があるといえます。周波数チャネルとアプリケーションIDにより、ネットワークを適切に分離してください。
再送回数は、1回の送信リクエストにつき追加で送信する回数 を指します。通信環境が悪い場合は、再送回数を設定するとデータの到達率が向上する場合があります。ただし、通信時間と消費電力は再送に応じて増加します。
インタラクティブモードでは2桁の数値を入力します。
十の位:再送回数 一の位:送信出力3
が最強2
/1
/0
と1段階小さくなるたびに -11.5dB
の出力低下 例
32
→ 再送3回、出力1段階弱める93
→ 再送9回、出力最大
理論上の伝達距離は6dB
です。設定値を小さくするたびに半分となりますから、1段階小さくした場合の伝達距離は約4分の1になるものと予想されます。ただし、実際の距離はノイズや遮蔽物の有無に依存します。
設定の初期化 設定内容によっては、操作へ支障をきたす場合があります(ボーレート変更など)。
次の手順で初期化できます。
他のアプリへ書き換え インタラクティブモードへ切り替え 元のアプリへ書き戻す 各 TWELITE APPS に固有の設定 各アプリによって異なる設定については、以下のページをご覧ください。
1 - 超簡単!標準アプリ マニュアル デジタル・アナログ信号伝送
親機と子機の入出力状態がシンクロ(同期)します。デジタル4ポート、アナログ4ポート、シリアル、I2Cを使用出来るオールインパッケージです。多彩な機能を単純化してわかりやすい反面、処理速度や応答性、省電力性は追求していません。
1.1 - 超簡単!標準アプリ マニュアル 最新版
工場出荷時の TWELITE や TWELITE DIP へインストールされています。
ダウンロード 超簡単!標準アプリ(App_Twelite
)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換え てください。
1.1.1 - 超簡単!標準アプリのピン配置 超簡単!標準アプリが使用するピンの機能
超簡単!標準アプリ(App_Twelite)が使用するピンの機能とその配置
ピン配置 ピン配置表
x
は任意の数字を表します。例えば、M1
M2
M3
の総称を Mx
と表しています。
電源入力 VCC
/GND
には、3.3V(2.3-3.6V)の電源を接続します。
デジタル・アナログ入出力 DIx
/DOx
, AIx
/PWMx
ピンは、対応する番号のピンが同期して信号伝送を行います。
デジタル アナログ DIx
の入力→DOx
の出力AIx
の入力→PWMx
の出力
超簡単!標準アプリでは、アナログ入力の電圧範囲を 0-2V としています。
VCC
へ接続するなど、2V以上の電圧を入力した際は未使用扱いとなります。
シリアル通信 UART TX
/RX
は、UART 通信の送信と受信に使用します。具体的には、次のような場面で使用します。
無線による信号伝送 外部デバイスとの有線通信 ファームウェアの管理 I2C SCL
/SDA
ピンは、I2C のターゲットデバイスを接続する際に使用します。
設定入力 Mx
ピンを未接続またはGND
へ接続することで、親機、子機、中継機といった動作モードを切り替える ことができます。
BPS
ピンを未接続またはGND
へ接続することで、UART のボーレート(通信速度)を 115200bps 以外の値へ変更 できます。
リセット入力 リセット入力ピン RST
と GND
との間にプッシュボタンを接続することで、リセットボタンを実装できます。RST
は内部プルアップされています。
1.1.2 - 超簡単!標準アプリの動作モード 各動作モードの説明
超簡単!標準アプリ(App_Twelite)には、7つの動作モードがあります。
動作モードの一覧 各モードは、Mx
ピンを未接続または GND
へ接続することで設定します。
M3
M2
M1
モード 機能 省電力動作 LID初期値 O O O 子機:連続 入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します 120
O O G 親機:連続 入力状態を子機へ送信するほか、常に受信データを待機して出力へ反映します 0
O G O 中継機:連続 常に受信データを待機して中継します 122
O G G 子機:連続0.03秒 頻繁に入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します 123
G O O 子機:間欠1秒 1秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります ✅ 124
G O G 子機:間欠受信1秒 1秒おきに入力状態を親機へ送信するほか、同時に受信を行い常に節電モードへ入ります ✅ 125
G G O - 未使用 - - G G G 子機:間欠10秒 10秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります ✅ 127
O:未接続(OPEN)、G:GND
へ接続
初期状態は子機:連続モードです。
モードによって端末を識別するための論理デバイスID(LID)の初期値は異なります。
親機または中継機モードに限り、インタラクティブモード で切り替えできます。
親機は121
、中継機は122
としてください。
未使用のAIx
ポートの扱い 子機:連続/子機:連続0.03秒/親機:連続 モードでは、未使用の AIx
ポートを VCC
へ接続してください。
未使用の AIx
ポートは不定の値を報告します。これらのモードは入力信号に変化が生じた際にデータ送信を行いますから、不要なデータ送信を引き起こす場合があります。
親機 連続モード 親機:連続モード 信号入力の変化を検知したとき、また1秒おきに、すべての子機へデータを送信します。
また子機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
定期送信の無効化 インタラクティブモードでオプションビット 0x00000002
を設定することで、1秒おきの定期送信を無効化できます。
子機 連続モード 子機:連続モード 信号入力の変化を検知したとき、また1秒おきに、すべての親機へデータを送信します。
また親機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
親機との通信のイメージ
定期送信の無効化 インタラクティブモードでオプションビット 0x00000002
を設定することで、1秒おきの定期送信を無効化できます。
子機:連続0.03秒モード 子機:連続モードの定期送信の間隔は1秒ですが、これを0.03秒に短縮するモードです。
親機から送信されるデータを常時待機しているものの、子機から親機への通信で帯域を占有してしまうため、親機の入力に対する反応は鈍くなってしまいます。常に電力を消費します。
親機との通信のイメージ
1台の子機だけでほとんどの帯域を占有してしまうため、同時に複数の子機を使用することはなるべく避けてください。
間欠モード 子機:間欠1秒モード 信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
親機との通信のイメージ
子機:間欠10秒モード 信号入力の変化を検知したとき、また10秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
親機との通信のイメージ
子機:間欠受信1秒モード 信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。
1秒おきに受信処理も合わせて行います。省電力性能に優れていますが、子機:間欠1秒モードには劣ります。
親機との通信のイメージ
間欠して受信するため、親機側を連続して動作させる必要があります。
中継機 連続モード 中継機:連続モード 中継機は、受信したパケットを送信します。
親機と子機の間に3つまで設置できますが、中継機を増やすとパケットの数が増大するため、干渉しやすくなることに注意してください。
中継のイメージ
子機に中継機能を付与することもできます。インタラクティブモードのオプションビットに
0x00008000
を指定してください。
1.1.3 - 超簡単!標準アプリの代替ボーレート設定 UART 通信に使用するボーレート設定の変更
超簡単!標準アプリ(App_Twelite)はデフォルトで 115200 bps のボーレートを UART 通信に使用しますが、これを変更できます。
代替ボーレート設定の有効化 BPS
ピンを GND
へ接続することで、代替ボーレート設定を有効化できます。
BPS
内容 ボーレート 備考 O デフォルト 115200bps G 上書き設定 38400bps 変更 可
O:未接続(OPEN)、G:GND
へ接続
インタラクティブモードのボーレート設定は、代替ボーレートの値を示しています。BPS
ピンが GND
に接続されていないと、インタラクティブモードの設定値は適用されません。
インタラクティブモードは、UART 通信を利用します。TWELTIE のボーレートを切り替えた際は、インタラクティブモードを使用する前に PC 側のボーレートを合わせなくてはなりません(
TWELITE STAGE アプリの設定変更 )。
1.1.4 - 超簡単!標準アプリのUART機能 UART機能で利用するデータ形式
超簡単!標準アプリ(App_Twelite)の UART 機能で使用するデータ形式を解説します。
デジタル・アナログ入出力 0x81
:相手端末からの状態通知受信した入力信号の状態を出力します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 1 uint8
コマンド番号 0x81
のみ2 uint8
パケット識別子 アプリケーションIDより生成 3 uint8
プロトコルバージョン 0x01
のみ4 uint8
LQI 0
-255
5 uint32
送信元のシリアルID 0x8???????
9 uint8
送信先の論理デバイスID 10 uint16
タイムスタンプ 1秒で64カウント 12 uint8
中継回数 13 uint16
電源電圧 単位はmV 15 int8
- (未使用) 16 uint8
デジタル信号 LSBから順にDIx
へ対応、0
がHigh MSBが1
なら定期送信 17 uint8
デジタル信号マスク LSBから順にDIx
へ対応、1
が有効 18 uint8
AI1
の変換値アナログ信号の計算 を参照、0xFF
で未使用19 uint8
AI2
の変換値アナログ信号の計算 を参照、0xFF
で未使用20 uint8
AI3
の変換値アナログ信号の計算 を参照、0xFF
で未使用21 uint8
AI4
の変換値アナログ信号の計算 を参照、0xFF
で未使用22 uint8
AIx
の補正値LSBから2ビットずつ順にAIx
へ対応 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
アナログ信号の計算 AIx
の入力電圧 \(V\)は、受信した変換値\(e_{r}\)および補正値\(e_{fr}\)を使って次のように表すことができます。
$$\begin{align*}
V &= e+e_f \\
\text{where} \\
e &= 16e_r \\
e_f &= 4e_{fr} \\
\end{align*}$$
単位は mV
出力データの例
:78811501C98201015A000391000C2E00810301FFFFFFFFFB
上記データの解釈 # データ 内容 値 :
char
ヘッダ :
78
0 uint8
送信元の論理デバイスID 0x78
81
1 uint8
コマンド番号 0x81
15
2 uint8
パケット識別子 0x15
01
3 uint8
プロトコルバージョン 0x01
C9
4 uint8
LQI 201/255
8201015A
5 uint32
送信元のシリアルID 0x201015A
00
9 uint8
送信先の論理デバイスID 0x00
0391
10 uint16
タイムスタンプ 約14.27
秒 00
12 uint8
中継回数 0
0C2E
13 uint16
電源電圧 3118
mV00
15 int8
- 81
16 uint8
デジタル信号 DI1
L
DI2
H
DI3
H
DI4
H
(定期送信)03
17 uint8
デジタル信号マスク DI1
DI2
01
18 uint8
AI1
の変換値16
mVFF
19 uint8
AI2
の変換値未使用 FF
20 uint8
AI3
の変換値未使用 FF
21 uint8
AI4
の変換値未使用 FF
22 uint8
AIx
の補正値AI1
0x03
FB
uint8
チェックサム 0xFB
char
フッタ \r
char
フッタ \n
0x80
:相手端末の出力変更相手端末の出力信号を制御します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
のみ2 uint8
書式バージョン 0x01
のみ3 uint8
デジタル信号 LSBからDOx
に対応、0
でHigh 4 uint8
デジタル信号マスク LSBからDOx
に対応、1
で有効 5 uint16
PWM1
信号0
-1024
,0xFFFF
で無効7 uint16
PWM2
信号0
-1024
,0xFFFF
で無効9 uint16
PWM3
信号0
-1024
,0xFFFF
で無効11 uint16
PWM4
信号0
-1024
,0xFFFF
で無効uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
UART 入出力 0x01
:任意のデータの送信データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x01
のみ2 [uint8]
任意のデータ 長さ\(N\)のバイト列(\(N\leqq80\)を推奨) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0x01
:任意のデータの受信データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 0x01
のみ2 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
I2C 入出力 0x88
:I2C 入力データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0
-0x7F
,全子機0x78
,自身0xDB
1 uint8
パケット識別子 0x88
のみ2 uint8
応答番号 応答メッセージへ出力する番号 3 uint8
コマンド番号 書き込み0x1
,読み出し0x2
,読み書き0x4
4 uint8
I2Cアドレス 7ビット 5 uint8
I2Cコマンド 最初のコマンドバイト 6 uint8
データサイズ 0
はなし7 [uint8]
データ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
コマンド番号0x4
では、データサイズに読み出すデータのサイズを指定したうえで、データを省略してください。指定されたI2Cコマンドを書き込み、データサイズの分だけ読み出しを行います。
0x89
:I2C 出力データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0
-0x7F
,全子機0x78
,自身0xDB
1 uint8
パケット識別子 0x89
のみ2 uint8
応答番号 応答メッセージへ出力する番号 3 uint8
コマンド番号 書き込み0x1
,読み出し0x2
,読み書き0x4
4 uint8
結果 失敗0
、成功1
5 uint8
データサイズ 0
はなし6 [uint8]
データ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
1.1.5 - インタラクティブモード(超簡単!標準アプリ) インタラクティブモードによる詳細な設定変更
インタラクティブモードでアプリの詳細設定を行うことができます。
ここでは超簡単!標準アプリ(App_Twelite)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
Mx
ピンの設定 を子機連続モードあるいは親機・中継機モードとしてください。
表示例 次のような画面を表示します。
--- CONFIG/TWELITE APP V1-01-1/SID=0x8201001f/LID=0x78 ---
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (18)
x: set Tx Power (03)
t: set mode4 sleep dur (1000ms)
y: set mode7 sleep dur (10s)
f: set mode3 fps (32)
z: set PWM HZ (1000,1000,1000,1000)
o: set Option Bits (0x00000000)
b: set UART baud (38400)
p: set UART parity (N)
---
S: save Configuration
R: reset to Defaults
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
子機の場合は1
-100
の任意の値へ、親機の場合は121
へ、中継機の場合は122
へ設定してください。
121
または122
へ設定すると、親機または中継機モードへ切り替えできます。このときMx
ピンの設定は必要ありません。
超簡単!標準アプリでは、動作モードによって論理デバイスIDの初期値が異なります。
動作モードの一覧
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、パケットを追加で送信する回数を指定します。
t
:子機間欠1秒モードの間隔子機間欠1秒モードの間欠時間を1秒から他の値へ上書きします。単位はミリ秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときDIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
y
:子機間欠10秒モードの間隔子機間欠10秒モードの間欠時間を10秒から他の値へ上書きします。単位は秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときDIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
f
:子機連続0.03秒モードのサイクル毎秒の送信リクエストの数を32回から4
/8
/16
回へ上書きします。再送回数は含みません。
z
:PWMx
の周波数値を一つ指定した場合は、すべてのPWMポートの周波数を上書きします。カンマ区切りで指定した場合は、PWM1
-PWM4
に個別の値を上書きできます。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
b
:UART代替ボーレートBPS
ピンをGND
へ接続して起動した場合に選択される代替ボーレートを38400
bpsから上書きします。
値は9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
ボーレート変更によってインタラクティブモードが使用できない事態を防ぐための仕様です。
p
:UARTパリティN
はパリティ無し、O
は奇数、E
:は偶数を示します。
データビットは8、ストップビットは1で固定されます。ハードウェアフローは設定できません。
オプションビットの詳細 オプションビットの値の各ビットに紐付いた設定を解説します。
00000001
:低レイテンシモード低レイテンシモードは、DIx
の変化を検知してから速やかに送信を行うことで、受信側の遅延を短縮します。
低レイテンシモードの動作 初期状態ではDIx
がDOx
へ反映されるまでに30-70ms程度の遅延が生じます。低レイテンシモードでは、チャタリングや無線パケットの干渉を避けるための処理を簡略化することで、遅延を3-10ms程度に短縮します。
立ち下がりエッジの検出には割り込みを利用します 立ち上がりエッジの検出には定期的な判定を利用します1msおきに5回連続でHighである場合に送信します (初期状態では4msおきに5回連続でHighである場合に送信します) 検出時は送信および再送の遅延を設定しません。直ちに無線パケットを送信します 代表的な遅延は、DIx
の立ち下がりの場合に約3-5ms、立ち上がりの場合に約10msです 実際の遅延は送受信の失敗などを理由に変化します 間欠モードにおいても、本体の起床から送信までの時間を短縮します 00000002
:定期送信の無効化連続モードにおける1秒おきの定期送信を無効化します。
00000004
:定期送信とUART出力の無効化子機:連続モードにおける1秒おきの定期送信を無効化するほか、受信データのUART出力を停止します。
00000010
:AIx
の変化による送信の無効化子機:連続モードにおいて、AIx
の入力が変化した際の送信を無効化します。
開放されたAIx
ポートは不定の値を報告するため、正気状態でアナログ入力を利用しない場合はVCC
へ接続する必要があります。このオプションを設定すると、VCC
への接続を省略できます。
00000020
:AIx
の値の無効化ADCの計測値を使用せず、未使用ポート(0xFFFF
)扱いとしてパケットを送信します
00000040
:PWMx
の計算式を変更初期状態ではボリューム用に調節した出力を PWMx
へ適用します。
このオプションはこれを無効化し、1.8V 以下の入力に対してフルスケールの出力を行います。
デューティ比の計算式 デューティ比 \(duty\)は、入力電圧\(V_{input}\)と電源電圧\(V_{cc}\)を使って、(1) のように表すことができます。
$$\begin{align}
duty &= min(230\frac{V_{input}}{V_{cc}}-5, 100) \\
duty &= 100\frac{min(V_{input}, 1.8)}{1.8}
\end{align}$$
このオプションを有効化すると、代わりに (2) を適用します。
なお、2.0V 以上の入力は未使用扱いとなります。
00000100
:ボタン押下時のみ送信DIx
の入力が Low であるときにパケットを連続送信します。
例えば、モータを遠隔制御する際に利用します。リモコンのボタンを押している間にモータを回転させ、電波が途切れた場合に停止させることができます。
連続送信の動作 DIx
のいずれかが Low のときは、1秒につき32回送信しますDIx
のすべてが High へ遷移してから1秒間は引き続き32回送信しますDOx
のいずれかが Low へ遷移してから0.5秒間パケットを受信しなかった場合は、DOx
をすべて High へ戻します。PWMx
は保持します00000800
:DIx
の内部プルアップを停止DIx
の内部プルアップ(約50kΩ)をすべて停止します。
起動してからハードウェアの初期化を完了するまでの約1msの期間はプルアップされます。
00008000
:子機へ中継機能を付与子機:連続モードにおいて中継機能を付与します。最大中継段数は1です。
00001000
:子機中継時の最大中継段数を2とする00008000
:子機へ中継機能を付与 の設定時に、最大中継段数を2へ変更します。
00002000
:子機中継時の最大中継段数を3とする00008000
:子機へ中継機能を付与 の設定時に、最大中継段数を3へ変更します。
00010000
:PWMx
の波形を反転PWMx
の出力波形を反転します。
AIx
へ最大値を入力すると PWMx
は Low となります。
00020000
:起動後PWMx
を落とす起動後またはリセット後にPWMx
の出力を Low 状態とします。
起動してからハードウェアの初期化を完了するまでの約1msの期間は High 状態となります。
00080000
:代替ポート割り当て代替ポート割り当てを有効化します。
PWM2
/PWM3
へトランジスタ等を接続すると、動作が不安定となる場合があります(詳細 )そうした場合に利用してください。
代替ポート割り当ての内容 PWMx
の割り当て変更DI3
→PWM1
DI1
→PWM2
DI2
→PWM3
BPS
→PWM4
DIx
の割り当て変更PWM1
→DI1
PWM4
→DI2
SDA
→DI3
DI4
→DI4
(変更なし)BPS
の割り当て変更SCL
/SDA
を無効化00100000
:起動後2秒間DOx
を落とす起動後またはリセット後にDOx
を2秒間 Low 状態とします。
DOx
へ接続した LED を起動時に点灯させることができます。
起動してからハードウェアの初期化を完了するまでの約1msの期間は High 状態となります。
00400000
:DOx
の出力を反転DOx
の出力を反転します。
初期状態とは異なり、片方の DI が Low レベルになると、もう片方の DO も Low レベルとなります。
起動してからハードウェアの初期化を完了するまでの約1msの期間は High 状態となります。
00800000
:DOx
の内部プルアップを停止DOx
の内部プルアップ(約50kΩ)をすべて停止します。
2 - 親機・中継機アプリ マニュアル データ集約と通信範囲拡張に。
超簡単!標準アプリやパルアプリなどの TWELITE APPS やact のパケットを受信と中継をするアプリです。
2.1 - 親機・中継機アプリ マニュアル 最新版
TWELITE APPS や act の子機に対する親機や中継機として働きます。
機能 TWELITE APPSとactの全てのデータパケットを処理することができ、共通の親機または中継機として使用できます。
超簡単!標準アプリやパル専用アプリなどの TWELITE APPS や act のデータを1つの MONOSTICK で収集可能 16チャンネルで複数システムを個別に運用可能 アプリケーションIDの設定することで、同一チャネルに複数システムを混在可能 中継機能で通信範囲拡大 2.1.1 - 親機・中継機アプリの動作モード 親機・中継機アプリの動作モード
親機モードと中継機モードの2つのモードがあります。
2.1.1.1 - 親機・中継機アプリの親機モード 子機からデータを受信、子機へデータを送信する
子機から送信されたデータを受信し、シリアルポートから出力します。また、シリアルポートへ入力されたコマンドを子機へ送信します。
2.1.1.1.1 - 親機・中継機アプリの受信メッセージ 子機からデータを受信した際の出力
子機から送信されたデータを受信し、既定の書式でシリアルポートから出力します。
2.1.1.1.1.1 - 超簡単!標準アプリからの出力(親機・中継機アプリ) 超簡単!標準アプリからデータを受信した際の出力書式
0x81
:相手端末からの状態通知受信した入力信号の状態を出力します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 1 uint8
コマンド番号 0x81
のみ2 uint8
パケット識別子 アプリケーションIDより生成 3 uint8
プロトコルバージョン 0x01
のみ4 uint8
LQI 0
-255
5 uint32
送信元のシリアルID 0x8???????
9 uint8
送信先の論理デバイスID 10 uint16
タイムスタンプ 1秒で64カウント 12 uint8
中継回数 13 uint16
電源電圧 単位はmV 15 int8
- (未使用) 16 uint8
デジタル信号 LSBから順にDIx
へ対応、0
がHigh MSBが1
なら定期送信 17 uint8
デジタル信号マスク LSBから順にDIx
へ対応、1
が有効 18 uint8
AI1
の変換値アナログ信号の計算 を参照、0xFF
で未使用19 uint8
AI2
の変換値アナログ信号の計算 を参照、0xFF
で未使用20 uint8
AI3
の変換値アナログ信号の計算 を参照、0xFF
で未使用21 uint8
AI4
の変換値アナログ信号の計算 を参照、0xFF
で未使用22 uint8
AIx
の補正値LSBから2ビットずつ順にAIx
へ対応 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
アナログ信号の計算 AIx
の入力電圧 \(V\)は、受信した変換値\(e_{r}\)および補正値\(e_{fr}\)を使って次のように表すことができます。
$$\begin{align*}
V &= e+e_f \\
\text{where} \\
e &= 16e_r \\
e_f &= 4e_{fr} \\
\end{align*}$$
単位は mV
出力データの例
:78811501C98201015A000391000C2E00810301FFFFFFFFFB
# データ 内容 値 :
char
ヘッダ :
78
0 uint8
送信元の論理デバイスID 0x78
81
1 uint8
コマンド番号 0x81
15
2 uint8
パケット識別子 0x15
01
3 uint8
プロトコルバージョン 0x01
C9
4 uint8
LQI 201/255
8201015A
5 uint32
送信元のシリアルID 0x201015A
00
9 uint8
送信先の論理デバイスID 0x00
0391
10 uint16
タイムスタンプ 約14.27
秒 00
12 uint8
中継回数 0
0C2E
13 uint16
電源電圧 3118
mV00
15 int8
- 81
16 uint8
デジタル信号 DI1
L
DI2
H
DI3
H
DI4
H
(定期送信)03
17 uint8
デジタル信号マスク DI1
DI2
01
18 uint8
AI1
の変換値16
mVFF
19 uint8
AI2
の変換値未使用 FF
20 uint8
AI3
の変換値未使用 FF
21 uint8
AI4
の変換値未使用 FF
22 uint8
AIx
の補正値AI1
0x03
FB
uint8
チェックサム 0xFB
char
フッタ \r
char
フッタ \n
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータが超簡単!標準アプリのものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 1 uint8
コマンド番号 0x81
であること3 uint8
プロトコルバージョン 0x01
であること5 uint32
送信元のシリアルID MSBが1であること(0x8???????
) - - ペイロードのサイズ 23バイトであること(:
とチェックサムの間)
パーサの実装例 0x01
:任意のデータの受信データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 0x01
のみ2 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
2.1.1.1.1.2 - リモコンアプリからの出力(親機・中継機アプリ) リモコンアプリからデータを受信した際の出力書式
0x81
:相手端末からの状態通知受信した入力信号の状態を出力します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 1 uint8
コマンド番号 0x81
のみ2 uint8
パケット識別子 0x0F
のみ3 uint8
プロトコルバージョン 0x01
のみ4 uint8
LQI 0
-255
5 uint32
送信元のシリアルID 0x8???????
9 uint8
送信先の論理デバイスID 10 uint16
タイムスタンプ 1秒で64カウント、MSBは内部フラグ 12 uint8
中継回数 13 uint16
デジタル信号 LSBから順にIx
へ対応、0
がHigh 15 uint16
デジタル信号マスク LSBから順にIx
へ対応、1
なら有効 17 uint16
デジタル信号フラグ LSBから順にIx
へ対応、1
なら割り込み 19 uint8
未使用 内部管理用 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:01810F01DB8630000200645F000040004F00400049
# データ 内容 値 :
char
ヘッダ :
01
0 uint8
送信元の論理デバイスID 0x78
81
1 uint8
コマンド番号 0x81
0F
2 uint8
パケット識別子 0x15
01
3 uint8
プロトコルバージョン 0x01
DB
4 uint8
LQI 219/255
86300002
5 uint32
送信元のシリアルID 0x6300002
00
9 uint8
送信先の論理デバイスID 0x00
645F
10 uint16
タイムスタンプ 約401
秒 00
12 uint8
中継回数 0
0040
13 uint16
デジタル信号 I7
がLo004F
15 uint16
デジタル信号マスク I7
,I1
-I4
が有効0040
17 uint16
デジタル信号フラグ I7
は割り込みにより変化00
19 uint8
未使用 49
uint8
チェックサム 0x49
char
フッタ \r
char
フッタ \n
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがリモコンアプリのものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 1 uint8
コマンド番号 0x81
であること3 uint8
プロトコルバージョン 0x02
であること5 uint32
送信元のシリアルID MSBが1であること(0x8???????
) - - ペイロードのサイズ 20バイトであること(:
とチェックサムの間)
パーサの実装例 2.1.1.1.1.3 - シリアル通信アプリからの出力(親機・中継機アプリ) シリアル通信アプリからデータを受信した際の出力書式
本アプリでは、書式モードの電文のみ受信できます。
透過モードやチャットモードのパケットを受信した場合の出力は未定義ですから、ご注意ください。
書式モード:簡易形式 データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 送信側で指定した0x80
未満の値 2 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
# データ 内容 値 :
char
ヘッダ :
78
0 uint8
送信元の論理デバイスID ID未設定子機 01
1 uint8
コマンド番号 0x01
00112233AABBCCDD
2 [uint8]
任意のデータ そのまま 13
uint8
チェックサム 0x13
char
フッタ \r
char
フッタ \n
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがシリアル通信アプリ(書式モード:簡易形式)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint8
送信元の論理デバイスID 0x64
以下もしくは0x78
であること1 uint8
コマンド番号 0x80
未満であること- - ペイロードのサイズ 3バイト以上82バイト以下であること
緩い条件のため、超簡単!標準アプリなど他のパケットの条件に続けて確認してください。
パーサの実装例 書式モード:拡張書式 データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 送信側で指定した値 3 uint32
送信元の拡張アドレス シリアルIDの先頭へ0x8
を加えた値 7 uint32
送信先の拡張アドレス 論理デバイスID使用時は0xFFFFFFFF
11 uint8
LQI 受信時の電波通信品質 12 uint16
続くバイト列の長さ バイト数\(M\)を表す 14 [uint8]
任意のデータ 長さ\(M\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:78A0028201015AFFFFFFFFA8000700112233AABBCCC6
# データ 内容 備考 :
char
ヘッダ :
78
0 uint8
送信元の論理デバイスID ID未設定子機 A0
1 uint8
コマンド番号 0xA0
02
2 uint8
応答ID 0x02
8201015A
3 uint32
送信元の拡張アドレス 0x201015A
FFFFFFFF
7 uint32
送信先の拡張アドレス 論理デバイスID指定 A8
11 uint8
LQI 168/255
0007
12 uint16
続くバイト列の長さ 7
バイト00112233AABBCC
14 [uint8]
任意のデータ そのまま C6
uint8
チェックサム 0xC6
char
フッタ char
フッタ
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがシリアル通信アプリ(書式モード:拡張形式)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint8
送信元の論理デバイスID 0x64
以下もしくは0x78
であること1 uint8
コマンド番号 0xA0
であること2 uint8
応答ID 0x80
未満であること3 uint32
送信元の拡張アドレス MSBが1であること(0x8???????
) 12 uint16
続くバイト列の長さ ペイロードのサイズ - 14
バイトであること
パーサの実装例 2.1.1.1.1.4 - パル/キュー/アリアアプリからの出力(親機・中継機アプリ) パル/キュー/アリアアプリからデータを受信した際の出力書式
2.1.1.1.1.4.1 - パルアプリからの出力(親機・中継機アプリ) パルアプリからデータを受信した際の出力書式
全般 パルアプリから受信したデータは、センサ種別とその値からなるセンサーデータの羅列によって表現します。
パルアプリに共通する書式の詳細については、
共通書式の詳細 をご覧ください。
以降では、製品の種別に応じた具体的な例を取り上げます。
開閉センサーパル データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしの場合80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 0x8???????
11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 0x80
のみ13 uint8
PAL基板バージョンとPAL基板ID 0x81
のみ14 uint8
センサーデータ の数3
のみセンサーデータ1 15 uint8
情報ビット 0x11
のみ16 uint8
データソース 0x30
のみ17 uint8
拡張バイト 0x08
のみ18 uint8
データ長 2
のみ19 uint16
データ 電源電圧(mV) センサーデータ2 21 uint8
情報ビット 0x11
のみ22 uint8
データソース 0x30
のみ23 uint8
拡張バイト 0x01
のみ24 uint8
データ長 2
のみ25 uint16
データ ADC1の電圧(mV) センサーデータ3 27 uint8
情報ビット 0x00
のみ28 uint8
データソース 0x00
のみ29 uint8
拡張バイト 0x00
のみ30 uint8
データ長 1
のみ31 uint8
データ 磁気データ センサーデータの末端 32 uint8
チェックサム1 直前までのCRC8 uint8
チェックサム2 チェックサム1までのLRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし A8
4 uint8
LQI 168
/255
001C
5 uint16
続き番号 28
82012B1E
7 uint32
送信元のシリアルID 0x2012B1E
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 81
13 uint8
PAL基板バージョンとPAL基板ID 開閉パルV1 03
14 uint8
センサーデータ の数3
つセンサーデータ1 11
15 uint8
情報ビット 拡張バイトありuint16
30
16 uint8
データソース 電圧 08
17 uint8
拡張バイト 電源 02
18 uint8
データ長 2
バイト0D0C
19 uint16
データ 3340
mVセンサーデータ2 11
21 uint8
情報ビット 拡張バイトありuint16
30
22 uint8
データソース 電圧 01
23 uint8
拡張バイト ADC1 02
24 uint8
データ長 2
バイト03E4
25 uint16
データ 996
mVセンサーデータ3 00
27 uint8
情報ビット 拡張バイトなしuint8
00
28 uint8
データソース 磁気 00
29 uint8
拡張バイト なし 01
30 uint8
データ長 1
バイト01
31 uint8
データ N極が近づいた センサーデータの末端 EC
32 uint8
チェックサム1 0xEC
6E
uint8
チェックサム2 0x6E
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがパルアプリ(開閉センサーパル)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x81
であること- - ペイロードのサイズ 33バイトであること
パーサの実装例 環境センサーパル データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしの場合80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 0x8???????
11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 0x80
のみ13 uint8
PAL基板バージョンとPAL基板ID 0x82
のみ14 uint8
センサーデータ の数5
のみセンサーデータ1 15 uint8
情報ビット 0x11
のみ16 uint8
データソース 0x30
のみ17 uint8
拡張バイト 0x08
のみ18 uint8
データ長 2
のみ19 uint16
データ 電源電圧(mV) センサーデータ2 21 uint8
情報ビット 0x11
のみ22 uint8
データソース 0x30
のみ23 uint8
拡張バイト 0x01
のみ24 uint8
データ長 2
のみ25 uint16
データ ADC1の電圧(mV) センサーデータ3 27 uint8
情報ビット 0x05
のみ28 uint8
データソース 0x01
のみ29 uint8
拡張バイト 0x00
のみ30 uint8
データ長 2
のみ31 int16
データ 温度データ センサーデータ4 33 uint8
情報ビット 0x01
のみ34 uint8
データソース 0x02
のみ35 uint8
拡張バイト 0x00
のみ36 uint8
データ長 2
のみ37 uint16
データ 湿度データ センサーデータ5 39 uint8
情報ビット 0x02
のみ40 uint8
データソース 0x03
のみ41 uint8
拡張バイト 0x00
のみ42 uint8
データ長 4
のみ43 uint32
データ 照度データ センサーデータの末端 47 uint8
チェックサム1 直前までのCRC8 uint8
チェックサム2 チェックサム1までのLRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし 84
4 uint8
LQI 132
/255
811F
5 uint16
続き番号 33055
810EFF6D
7 uint32
送信元のシリアルID 0x10EFF6D
04
11 uint8
送信元の論理デバイスID 0x04
80
12 uint8
センサー種別 82
13 uint8
PAL基板バージョンとPAL基板ID 環境パルV1 05
14 uint8
センサーデータ の数5
つセンサーデータ1 11
15 uint8
情報ビット 拡張バイトありuint16
30
16 uint8
データソース 電圧 08
17 uint8
拡張バイト 電源 02
18 uint8
データ長 2
バイト0AEB
19 uint16
データ 2795
mVセンサーデータ2 11
21 uint8
情報ビット 拡張バイトありuint16
30
22 uint8
データソース 電圧 01
23 uint8
拡張バイト ADC1 02
24 uint8
データ長 2
バイト035A
25 uint16
データ 858
mVセンサーデータ3 05
27 uint8
情報ビット 拡張バイトなしint16
01
28 uint8
データソース 温度 00
29 uint8
拡張バイト なし 02
30 uint8
データ長 2
バイト09E3
31 int16
データ 25.31°C センサーデータ4 01
33 uint8
情報ビット 拡張バイトなしuint16
02
34 uint8
データソース 湿度 00
35 uint8
拡張バイト なし 02
36 uint8
データ長 2
バイト0E3A
37 uint16
データ 36.42% センサーデータ5 02
39 uint8
情報ビット 拡張バイトなしuint32
03
40 uint8
データソース 照度 00
41 uint8
拡張バイト なし 04
42 uint8
データ長 4
バイト000001BE
43 uint32
データ 446
lxセンサーデータの末端 6C
47 uint8
チェックサム1 0x6C
00
uint8
チェックサム2 0x00
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがパルアプリ(環境センサーパル)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x82
であること- - ペイロードのサイズ 48バイトであること
パーサの実装例 動作センサーパル データ形式 出力データの例
:80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし BA
4 uint8
LQI 186
/255
0023
5 uint16
続き番号 35
82011CEF
7 uint32
送信元のシリアルID 0x2011CEF
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 83
13 uint8
PAL基板バージョンとPAL基板ID 動作パルV1 12
14 uint8
センサーデータ の数18
個センサーデータ1 11
15 uint8
情報ビット 拡張バイトありuint16
30
16 uint8
データソース 電圧 08
17 uint8
拡張バイト 電源 02
18 uint8
データ長 2
バイト0D02
19 uint16
データ 3330
mVセンサーデータ2 11
21 uint8
情報ビット 拡張バイトありuint16
30
22 uint8
データソース 電圧 01
23 uint8
拡張バイト ADC1 02
24 uint8
データ長 2
バイト055C
25 uint16
データ 1372
mVセンサーデータ3 15
27 uint8
情報ビット 拡張バイトありint16
04
28 uint8
データソース 加速度 40
29 uint8
拡張バイト 100Hz, 0番サンプル 06
30 uint8
データ長 6
バイト001000100450
31 int16
データ X16
mG/Y16
mG/Z1104
mG センサーデータ4 15
37 uint8
情報ビット 拡張バイトありint16
04
38 uint8
データソース 加速度 41
39 uint8
拡張バイト 100Hz, 1番サンプル 06
40 uint8
データ長 6
バイト000800100430
41 uint16
データ X8
mG/Y16
mG/Z1072
mG センサーデータ5 <省略> センサデータ15 15
177 uint8
情報ビット 拡張バイトありint16
04
178 uint8
データソース 加速度 4F
179 uint8
拡張バイト 100Hz, 15番サンプル 06
180 uint8
データ長 6
バイト000000180438
181 uint32
データ X0
mG/Y24
mG/Z1080
mG センサーデータの末端 28
187 uint8
チェックサム1 0x28
A5
uint8
チェックサム2 0xA5
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがパルアプリ(動作センサーパル)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x83
であること- - ペイロードのサイズ 188バイトであること
パーサの実装例 通知パル データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしの場合80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 0x8???????
11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 0x80
のみ13 uint8
PAL基板バージョンとPAL基板ID 0x84
のみ14 uint8
センサーデータ の数3
のみセンサーデータ1 15 uint8
情報ビット 0x11
のみ16 uint8
データソース 0x30
のみ17 uint8
拡張バイト 0x08
のみ18 uint8
データ長 2
のみ19 uint16
データ 電源電圧(mV) センサーデータ2 21 uint8
情報ビット 0x11
のみ22 uint8
データソース 0x30
のみ23 uint8
拡張バイト 0x01
のみ24 uint8
データ長 2
のみ25 uint16
データ ADC1の電圧(mV) センサーデータ3 27 uint8
情報ビット 0x12
のみ28 uint8
データソース 0x05
のみ29 uint8
拡張バイト 0x04
のみ30 uint8
データ長 4
のみ31 uint8
データ 加速度イベントデータ 32 [uint8]
未使用 センサーデータの末端 35 uint8
チェックサム1 直前までのCRC8 uint8
チェックサム2 チェックサム1までのLRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:80000000C9BBC082014C3501808403 113008020D0C 1130010203F9 1205040410000000 97C6
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし C9
4 uint8
LQI 201
/255
BBC0
5 uint16
続き番号 48064
82014C35
7 uint32
送信元のシリアルID 0x2014C35
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 84
13 uint8
PAL基板バージョンとPAL基板ID 通知パルV1 03
14 uint8
センサーデータ の数3
つセンサーデータ1 11
15 uint8
情報ビット 拡張バイトありuint16
30
16 uint8
データソース 電圧 08
17 uint8
拡張バイト 電源 02
18 uint8
データ長 2
バイト0D0C
19 uint16
データ 3340
mVセンサーデータ2 11
21 uint8
情報ビット 拡張バイトありuint16
30
22 uint8
データソース 電圧 01
23 uint8
拡張バイト ADC1 02
24 uint8
データ長 2
バイト03F9
25 uint16
データ 1017
mVセンサーデータ3 12
27 uint8
情報ビット 拡張バイトありuint32
05
28 uint8
データソース イベント 04
29 uint8
拡張バイト 加速度イベント 04
30 uint8
データ長 4
バイト10
31 uint8
データ ムーブ 000000
32 [uint8]
センサーデータの末端 97
35 uint8
チェックサム1 0x97
C6
uint8
チェックサム2 0xC6
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがパルアプリ(通知パル)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x84
であること- - ペイロードのサイズ 36バイトであること
2.1.1.1.1.4.2 - キューアプリからの出力(親機・中継機アプリ) キューアプリからデータを受信した際の出力書式
TWELITE CUE モード データ形式 出力データの例
:80000000CF7F7382019E3B0180050F003400038135001205040406000000113008020B8611300102042E000000018015044006FFF00010FC1815044106FFF00018FC1815044206FFF00010FC0015044306FFF80000FC1015044406FFF00010FC1815044506FFE00018FBF815044606FFE80000FC0015044706FFE80010FBF815044806FFE80010FC0815044906FFE80010FC080C0E
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし CF
4 uint8
LQI 207
/255
7F73
5 uint16
続き番号 32627 82019E3B
7 uint32
送信元のシリアルID 0x2019E3B
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 05
13 uint8
PAL基板バージョンとPAL基板ID TWELITE CUE 0F
14 uint8
センサーデータ の数15
個センサーデータ1 00
15 uint8
情報ビット 拡張バイトなしuint8
34
16 uint8
データソース パケットプロパティ 00
17 uint8
拡張バイト なし 03
18 uint8
データ長 3
バイト813500
19 [uint8]
データ ID129
、タイマイベント発生 センサーデータ2 12
22 uint8
情報ビット 拡張バイトありuint32
05
23 uint8
データソース イベント 04
24 uint8
拡張バイト 加速度イベント 04
25 uint8
データ長 4
バイト06000000
26 uint32
データ サイコロ:6 センサーデータ3 11
30 uint8
情報ビット 拡張バイトありuint16
30
31 uint8
データソース 電圧 08
32 uint8
拡張バイト 電源電圧 02
33 uint8
データ長 2
バイト0B86
34 uint16
データ 2950
mVセンサーデータ4 11
36 uint8
情報ビット 拡張バイトありuint16
30
37 uint8
データソース 電圧 01
38 uint8
拡張バイト ADC1の電圧 02
39 uint8
データ長 2
バイト042E
40 uint16
データ 1070
mVセンサーデータ5 00
42 uint8
情報ビット 拡張バイトなしuint8
00
43 uint8
データソース 磁気 00
44 uint8
拡張バイト なし 01
45 uint8
データ長 1
バイト80
46 uint8
データ 磁石なし(定期送信) センサーデータ6 15
47 uint8
情報ビット 拡張バイトありint16
04
48 uint8
データソース 加速度データ 40
49 uint8
拡張バイト 100Hz, 0番サンプル 06
50 uint8
データ長 6
バイトFFF00010FC18
51 [int16]
データ X-16
mG/Y16
mG/Z-1000
mG センサーデータ7 15
57 uint8
情報ビット 拡張バイトありint16
04
58 uint8
データソース 加速度データ 41
59 uint8
拡張バイト 100Hz, 1番サンプル 06
60 uint8
データ長 6
バイトFFF00018FC18
61 [int16]
データ X-16
mG/Y24
mG/Z-1000
mG センサーデータ8 <省略> センサーデータ15 15
137 uint8
情報ビット 拡張バイトありint16
04
138 uint8
データソース 加速度データ 49
139 uint8
拡張バイト 100Hz, 9番サンプル 06
140 uint8
データ長 6
バイトFFE80010FC08
141 int16
データ X-24
mG/Y16
mG/Z-1016
mG センサーデータの末端 0C
147 uint8
チェックサム1 0x0C
0E
uint8
チェックサム2 0x0E
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがキューアプリ(TWELITE CUEモード)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x05
であること- - ペイロードのサイズ 148バイトであること
パーサの実装例 開閉センサーパルモード 動作センサーパルモード(加速度計測モード) 動作センサーパルモード(ムーブ/ダイスモード) データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしの場合80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 0x8???????
11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 0x80
のみ13 uint8
PAL基板バージョンとPAL基板ID 0x03
のみ14 uint8
センサーデータ の数04
のみセンサーデータ1 15 uint8
情報ビット 0x00
のみ16 uint8
データソース 0x34
のみ17 uint8
拡張バイト 0x00
のみ18 uint8
データ長 3
のみ19 [uint8]
データ パケットプロパティデータ センサーデータ2 22 uint8
情報ビット 0x12
のみ23 uint8
データソース 0x05
のみ24 uint8
拡張バイト 0x04
のみ25 uint8
データ長 4
のみ26 uint32
データ イベントデータ センサーデータ3 30 uint8
情報ビット 0x11
のみ31 uint8
データソース 0x30
のみ32 uint8
拡張バイト 0x08
のみ33 uint8
データ長 2
のみ34 uint16
データ 電源電圧(mV) センサーデータ4 36 uint8
情報ビット 0x11
のみ37 uint8
データソース 0x30
のみ38 uint8
拡張バイト 0x01
のみ39 uint8
データ長 2
のみ40 uint16
データ ADC1の電圧(mV) センサーデータの末端 42 uint8
チェックサム1 直前までのCRC8 uint8
チェックサム2 チェックサム1までのLRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例 ダイスモードの例を示します。ムーブモードの場合は、センサーデータ2
のイベント が異なります。
:80000000B400048106664801800304003400038035001205040403000000113008020D2011300102052C59B7
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし B1
4 uint8
LQI 177
/255
0008
5 uint16
続き番号 8 81066648
7 uint32
送信元のシリアルID 0x2019E3B
01
11 uint8
送信元の論理デバイスID 0x1066648
80
12 uint8
センサー種別 03
13 uint8
PAL基板バージョンとPAL基板ID TWELITE CUE ダイス/ムーブ 04
14 uint8
センサーデータ の数4
つセンサーデータ1 00
15 uint8
情報ビット 拡張バイトなしuint8
34
16 uint8
データソース パケットプロパティ 00
17 uint8
拡張バイト なし 03
18 uint8
データ長 3
バイト803500
19 [uint8]
データ ID128
、イベント発生(他ADC1と電源のみ) センサーデータ2 12
22 uint8
情報ビット 拡張バイトありuint32
05
23 uint8
データソース イベント 04
24 uint8
拡張バイト 加速度イベント 04
25 uint8
データ長 4
バイト03000000
26 uint32
データ ダイスモード、サイコロ:3 センサーデータ3 11
30 uint8
情報ビット 拡張バイトありuint16
30
31 uint8
データソース 電圧 08
32 uint8
拡張バイト 電源電圧 02
33 uint8
データ長 2
バイト0D20
34 uint16
データ 3360
mVセンサーデータ4 11
36 uint8
情報ビット 拡張バイトありuint16
30
37 uint8
データソース 電圧 01
38 uint8
拡張バイト ADC1の電圧 02
39 uint8
データ長 2
バイト052C
40 uint16
データ 1324
mVセンサーデータの末端 59
42 uint8
チェックサム1 0x0C
B7
uint8
チェックサム2 0x0E
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがキューアプリ(動作センサーパルモードのムーブあるいはダイスモード)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x03
であること- - ペイロードのサイズ 43バイトであること
パーサの実装例 2.1.1.1.1.4.3 - アリアアプリからの出力(親機・中継機アプリ) アリアアプリからデータを受信した際の出力書式
TWELITE ARIA モード データ形式 出力データの例
:80000000CF00028201BAA201800607003400038135001205350401000000113008020D201130010204ED00000001800501000209D0010200020F347934[CR][LF]
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし CF
4 uint8
LQI 207
/255
0002
5 uint16
続き番号 2 8201BAA2
7 uint32
送信元のシリアルID 0x201BAA2
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 06
13 uint8
PAL基板バージョンとPAL基板ID TWELITE ARIA 07
14 uint8
センサーデータ の数7
つセンサーデータ1 00
15 uint8
情報ビット 拡張バイトなしuint8
34
16 uint8
データソース パケットプロパティ 00
17 uint8
拡張バイト なし 03
18 uint8
データ長 3
バイト813500
19 [uint8]
データ ID129
、タイマイベント発生 センサーデータ2 12
22 uint8
情報ビット 拡張バイトありuint32
05
23 uint8
データソース イベント 35
24 uint8
拡張バイト タイマイベント 04
25 uint8
データ長 4
バイト01000000
26 uint32
データ タイマによる起床 センサーデータ3 11
30 uint8
情報ビット 拡張バイトありuint16
30
31 uint8
データソース 電圧 08
32 uint8
拡張バイト 電源電圧 02
33 uint8
データ長 2
バイト0D20
34 uint16
データ 3360
mVセンサーデータ4 11
36 uint8
情報ビット 拡張バイトありuint16
30
37 uint8
データソース 電圧 01
38 uint8
拡張バイト ADC1の電圧 02
39 uint8
データ長 2
バイト04ED
40 uint16
データ 1261
mVセンサーデータ5 00
42 uint8
情報ビット 拡張バイトなしuint8
00
43 uint8
データソース 磁気 00
44 uint8
拡張バイト なし 01
45 uint8
データ長 1
バイト80
46 uint8
データ 磁石なし(定期送信) センサーデータ6 05
47 uint8
情報ビット 拡張バイトなしint16
01
48 uint8
データソース 温度 00
49 uint8
拡張バイト なし 02
50 uint8
データ長 2
バイト09D0
51 int16
データ 25.12
°Cセンサーデータ7 01
53 uint8
情報ビット 拡張バイトなしuint16
02
54 uint8
データソース 湿度 00
55 uint8
拡張バイト なし 02
56 uint8
データ長 2
バイト0F34
57 uint16
データ 38.92
%センサーデータの末端 79
59 uint8
チェックサム1 0x79
34
uint8
チェックサム2 0x34
char
フッタ '\r'
char
フッタ '\n'
データの判別条件 親機・中継機アプリは、さまざまな種類の子機からデータを受信することができます。
出力されたデータがアリアアプリ(TWELITE ARIAモード)のものであるかを確認するには、次の箇所を参照してください。
# データ 項目 条件 0 uint32
中継機のシリアルID MSBが1であること 7 uint32
送信元のシリアルID MSBが1であること 12 uint8
センサー種別 0x80
であること13 uint8
PAL基板バージョンとPAL基板ID 0x06
であること- - ペイロードのサイズ 60バイトであること
パーサの実装例 開閉センサーパルモード 2.1.1.1.1.4.4 - パル・キュー・アリアアプリからの出力の詳細(親機・中継機アプリ) パル・キュー・アリアアプリに共通する出力書式の詳細
パル・キュー・アリアアプリの子機から受信したデータは、共通の書式に沿って出力されます。ここには、その詳細を記しています。それぞれの具体的な出力例は、
各アプリのページ をご覧ください。
全体 データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしの場合80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 0x8???????
11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 0x80
のみ13 uint8
PAL基板バージョンとPAL基板ID 0x81
など14 uint8
センサーデータ の数15 [uint8]
センサーデータ の羅列長さ\(N\)のバイト列 15+\(N\) uint8
チェックサム1 直前までのCRC8 uint8
チェックサム2 チェックサム1までのLRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし A8
4 uint8
LQI 168/255
001C
5 uint16
続き番号 28
82012B1E
7 uint32
送信元のシリアルID 0x2012B1E
01
11 uint8
送信元の論理デバイスID 0x01
80
12 uint8
センサー種別 - 81
13 uint8
PAL基板バージョンとPAL基板ID 0x81
03
14 uint8
センサーデータ の数3
つ1130...0101
15 [uint8]
センサーデータ の羅列長さ17のバイト列 EC
15+17 uint8
チェックサム1 0xEC
6E
uint8
チェックサム2 0x6E
char
フッタ '\r'
char
フッタ '\n'
センサーデータ データ形式 # データ 内容 備考 0 uint8
情報ビット データの型や拡張バイトの有無 1 uint8
データソース センサー値の種類 2 uint8
拡張バイト センサー値の付加情報 3 uint8
データ長 センサー値の長さ 4 [uint8]
データ センサー値
出力データの例
情報ビット センサー値のデータ型や拡張バイトの有無、読み込みエラーの有無を示します。
bit 7 6 5 4 3 2 1 0 機能 ERR - - EXT - TYP:2 TYP:1 TYP:0
各機能は次の内容を示します。
機能 説明 値 内容 ERR 読み込みエラーの有無 0
正常 1
エラーあり EXT 拡張バイトの有無 0
拡張バイトなし 1
拡張バイトあり TYP データ型 000
uint8
001
uint16
010
uint32
011
N/A 100
int8
101
int16
110
int32
111
[uint8]
データソース センサー値の種類を示します。
値 内容 0x00
磁気 0x01
温度 0x02
湿度 0x03
照度 0x04
加速度 0x05
イベント 0x30
電圧 0x34
パケットプロパティ
拡張バイト 連続データのインデックスなど、センサー値の付加情報を示します。
データソースが磁気/温度/湿度/照度/パケットプロパティの場合 なし
データソースが加速度の場合 加速度サンプルデータの属性を示します。
bit 7 6 5 4 3 2 1 0 機能 SFQ:2 SFQ:1 SFQ:0 SNM:4 SNM:3 SNM:2 SNM:1 SNM:0
各機能は次の内容を示します。
機能 説明 値 内容 SFQ サンプリング周波数 000
(0x00|SNM
)25Hz 001
(0x20|SNM
)50Hz 010
(0x40|SNM
)100Hz 011
(0x60|SNM
)190Hz 100
以上未定義 SNM サンプル番号 0
-31
古い順
データソースがイベントの場合 イベントの発生要因を示します。
値 内容 0x00
磁気 0x01
温度 0x02
湿度 0x03
照度 0x04
加速度 0x31
デジタル入力 0x35
タイマ
データソースが電圧の場合 対象を示します。
値 内容 0x01
ADC1 0x02
ADC2 0x03
ADC3 0x04
ADC4 0x08
電源
データ長 続くデータのバイト数を示します。
データ センサー値を表します。
データソースが磁気の場合 データ型はuint8
です。
値 内容 0x00
磁石なし 0x01
N極が近づいた 0x02
S極が近づいた 0x80
磁石なし(定期送信) 0x81
N極が近くにある(定期送信) 0x82
S極が近くにある(定期送信)
データソースが温度の場合 データ型はint16
です。
100倍されたセ氏の温度を表します。
データソースが湿度の場合 データ型はuint16
です。
100倍された相対湿度を表します。
データソースが照度の場合 データ型はuint32
です。
ルクスの値を表します。
データソースが加速度の場合 int16
のデータが3つ続きます。
X,Y,Z軸の値(mG)の合計は6バイトです。
byte 0 1 2 3 4 5 内容 X:15-8 X:7-0 Y:15-8 Y:7-0 Z:15-8 Z:7-0
データソースがイベントの場合 uint8
のデータが4つ続きます。
先頭のデータがイベントの内容を表し、残りは未使用です。
拡張バイトが磁気の場合 先頭の値 内容 0x00
磁石なし 0x01
N極が近くにある 0x02
S極が近くにある
拡張バイトが加速度の場合 先頭の値 内容 0x01
サイコロ:1 0x02
サイコロ:2 0x03
サイコロ:3 0x04
サイコロ:4 0x05
サイコロ:5 0x06
サイコロ:6 0x08
シェイク 0x10
ムーブ
拡張バイトがタイマの場合 データソースが電圧の場合 データ型はuint16
です。
mV単位の電圧を表します。
データソースがパケットプロパティの場合 uint8
のデータが3つ続きます。
byte 0 1 2 データ パケットID 起床要因の根源 起床要因の条件
各データは次の内容を表します。
データ 値 内容 パケットID 0
イベントなし、ADC1と電源の電圧のみ 1
-127
イベントなし、その他のデータあり 128
イベントあり、ADC1と電源の電圧のみ 129
-255
イベントあり、その他のデータあり 起床要因の根源 0x00
磁気 0x01
温度 0x02
湿度 0x03
照度 0x04
加速度 0x31
デジタル入力 0x35
タイマ 起床要因の条件 0x00
イベントが発生した 0x01
値が変化した 0x02
値がしきい値を上回った 0x03
値がしきい値を下回った 0x04
値が範囲を満たした
2.1.1.1.1.5 - actからの出力(親機・中継機アプリ) act からデータを受信した際の出力書式
act から受信したデータ データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 1 uint8
コマンド種別 0xAA
のみ2 uint8
応答ID 0x00
-0x7F
3 uint32
送信元のシリアルID 7 uint32
送信先のシリアルID 論理デバイスID指定時は00000000
11 uint8
LQI 0
-255
12 uint16
データのバイト数 14 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:FEAA008201015A00000000B7000F424154310F0CEE000B03FF03FF03FF92
# データ 内容 値 :
char
ヘッダ :
FE
0 uint8
送信元の論理デバイスID 0xFE
AA
1 uint8
コマンド種別 0xAA
00
2 uint8
応答ID 0x00
8201015A
3 uint32
送信元のシリアルID 0x201015A
00000000
7 uint32
送信先のシリアルID 論理デバイスID指定 B7
11 uint8
LQI 183/255
000F
12 uint16
データのバイト数 15
バイト424154310F0CEE000B03FF03FF03FF
14 [uint8]
任意のデータ そのまま 92
uint8
チェックサム 0x92
char
フッタ \r
char
フッタ \n
2.1.1.1.1.6 - 無線タグアプリからの出力(親機・中継機アプリ) 無線タグアプリからデータを受信した際の出力書式
子機へ主なセンサーを接続した際の出力を記載します。
アナログセンサー データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしは80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 13 uint8
電源電圧(mV) 電源電圧の計算 を参照14 uint16
ADC1の電圧 16 uint16
ADC2の電圧 18 uint32
未使用 22 uint8
チェックサム
出力データの例
:80000000B700628201015A0010DF08FD09A300000000E9
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし B7
4 uint8
LQI 183/255
0062
5 uint16
続き番号 98
8201015A
7 uint32
送信元のシリアルID 0x201015A
00
11 uint8
送信元の論理デバイスID 0x00
10
12 uint8
センサー種別 アナログセンサー DF
13 uint8
電源電圧(mV) 3330
mV08FD
14 uint16
ADC1の電圧 2301
mV09A3
16 uint16
ADC2の電圧 2467
mV00000000
18 uint32
未使用 E9
22 uint8
チェックサム 0xE9
char
フッタ \r
char
フッタ \n
加速度センサー(ADXL34x / TWELITE 2525A) データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしは80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 13 uint8
電源電圧(mV) 電源電圧の計算 を参照14 uint16
ADC1の電圧 16 uint16
ADC2の電圧 18 uint8
センサーモード番号 19 int16
X軸の加速度 単位はmG*10
21 int16
Y軸の加速度 単位はmG*10
23 int16
Z軸の加速度 単位はmG*10
25 uint8
チェックサム
出力データの例
:8000000063001781013C850035DF057702F2000000FF96FFF0BB
# データ 内容 値 :
char
ヘッダ :
80000000
0 uint32
中継機のシリアルID 中継なし 63
4 uint8
LQI 99/255
0017
5 uint16
続き番号 23
81013C85
7 uint32
送信元のシリアルID 0x1013C85
00
11 uint8
送信元の論理デバイスID 0x00
35
12 uint8
センサー種別 加速度センサー(ADXL34x) DF
13 uint8
電源電圧(mV) 3330
mV0577
14 uint16
ADC1の電圧 1399
mV02F2
16 uint16
ADC2の電圧 754
mV00
18 uint8
センサーモード番号 通常 0000
19 int16
X軸の加速度 0
mGFF96
21 int16
Y軸の加速度 -1060
mGFFF0
23 int16
Z軸の加速度 -160
mGBB
25 uint8
チェックサム 0xBB
char
フッタ \r
char
フッタ \n
スイッチ データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint32
中継機のシリアルID 中継なしは80000000
4 uint8
LQI 0
-255
5 uint16
続き番号 7 uint32
送信元のシリアルID 11 uint8
送信元の論理デバイスID 12 uint8
センサー種別 13 uint8
電源電圧(mV) 電源電圧の計算 を参照14 uint16
ADC1の電圧 16 uint16
ADC2の電圧 18 uint8
センサーモード番号 0
がHi→Lo、1
がLo→Hi19 uint8
DI1
の状態1
がLo20 uint8
未使用 21 uint8
チェックサム
出力データの例
:800000009C00118201015A00FEDF000709A300010064
# データ 内容 値 :
char
ヘッダ 80000000
0 uint32
中継機のシリアルID 中継なし 9C
4 uint8
LQI 156/255
0062
5 uint16
続き番号 98
8201015A
7 uint32
送信元のシリアルID 0x201015A
00
11 uint8
送信元の論理デバイスID 0x00
FE
12 uint8
センサー種別 スイッチ DF
13 uint8
電源電圧(mV) 3330
mV0007
14 uint16
ADC1の電圧 7
mV09A3
16 uint16
ADC2の電圧 2467
mV00
18 uint8
センサーモード番号 Hi→Lo 01
19 uint8
DI1
の状態Lo 00
20 uint8
未使用 64
21 uint8
チェックサム 0x64
char
フッタ \r
char
フッタ \n
電源電圧の計算 電源電圧 \(V_{cc}\) は、受信した値 \(e_{cc}\) を使って次のように表すことができます。
$$\begin{cases}
V_{cc} = 1950+5e_{cc} & (e_{cc} <= 170) \\
V_{cc} = 2800+10(e_{cc}-170) & (e_{cc} > 170)
\end{cases}$$
単位は mV
2.1.1.1.2 - 親機・中継機アプリの送信コマンド 子機へデータを送信する際の入力
既定の書式でシリアルポートから入力されたコマンドを子機へ送信します。
2.1.1.1.2.1 - 超簡単!標準アプリへの入力(親機・中継機アプリ) 超簡単!標準アプリの出力を制御するためのコマンド
超簡単!標準アプリの出力を制御できます。
デジタル・アナログ入出力 0x80
:相手端末の出力変更相手端末の出力信号を制御します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
のみ2 uint8
書式バージョン 0x01
のみ3 uint8
デジタル信号 LSBからDOx
に対応、0
でHigh 4 uint8
デジタル信号マスク LSBからDOx
に対応、1
で有効 5 uint16
PWM1
信号0
-1024
,0xFFFF
で無効7 uint16
PWM2
信号0
-1024
,0xFFFF
で無効9 uint16
PWM3
信号0
-1024
,0xFFFF
で無効11 uint16
PWM4
信号0
-1024
,0xFFFF
で無効uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
2.1.1.1.2.2 - シリアル通信アプリへの入力(親機・中継機アプリ) シリアル通信アプリへデータを送信するコマンド
シリアル通信アプリの子機へデータを送信できます(書式モード、簡易形式)
UART 書式モード:アスキー・簡易形式 App_Wings v1.3 以降では、書式モード(A)の簡易形式に対応しています。
2024年9月現在、公開中の SDK に App_Wings v1.3 は含まれていません。
次のリンクから App_Wings v1.3 をダウンロードし、ファイルを指定して書き込む ことで使用できます。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
未満の任意の値2 [uint8]
任意のデータ 長さ\(N\)のバイト列(\(N\leqq80\)を推奨) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
2.1.1.1.2.3 - パルアプリ(通知パル)への入力(親機・中継機アプリ) 通知パルのLEDを制御するためのコマンド
通知パルのLEDを制御できます。
:0190010004000169[CR][LF]
^1^2^3^^^^^^^4^5
番号 バイト数 意味 データ例 備考 1 1 送信先の論理デバイスID 01 送信先のTWELITE PALの論理デバイスIDを指定します。 0x01から0x64まで指定可能です。
2 1 コマンド種別 90 3 1 コマンドパラメータ数 01 コマンドパラメータの数を指定します。例えば、コマンドパラメータを1つだけ指定するなら1に、2つ指定するには2にします。 4 コマンド数x4 コマンドパラメータ 00040001 イベントやLEDの色などを指定するためのパラメータを指定します。 詳細はコマンドパラメータを参照してください。
5 1 チェックサム 69 1~4の各バイトの和を8ビット幅で計算し2の補数をとります。つまりデータ部の各バイトの総和+チェックサムバイトを8ビット幅で計算すると0になります。 チェックサムバイトをアスキー文字列2文字で表現します。 例えば 00A01301FF123456 では 0x00 + 0xA0 + … + 0x56 = 0x4F となり、この二の補数は0xB1 です。(つまり 0x4F + 0xB1 = 0) チェックサムをXにすることでチェックサムを省略可能です。
6 2 フッター [CR][LF] [CR] (0x0D) [LF] (0x0A) を指定します。ただし、チェックサムをXで省略する場合はフッターも省略可能です。
コマンドパラメータ 4バイトのコマンドパラメータを組み合わせてコマンドを指定します。
0x00:イベントIDを送信する TWELITE PALは受信したイベントIDごとの振る舞いが設定されております。 本パラメータでは送信先のTWELITE PALにイベントIDを送信し、設定した動作を行います。
イベント毎の振る舞いを変更するにはTWELITE PALの設定を変更してください。
番号 バイト数 内容 備考 1 1 コマンドパラメータID 0x00 2 1 送信先PAL ID 送信先のPAL IDを指定します。 0x04:通知パル 0xFF:すべてのTWELITE PAL
3 1 未使用領域 0x00固定 4 1 イベントID 0~16までのイベントIDを指定します。
0x01 : LEDの色、点滅パターン、明るさを送信する 送信先の通知パルにLEDの色、点滅パターン、明るさを送信します。
番号 バイト数 内容 備考 1 1 コマンドパラメータID 0x01 2 1 色
0:赤 1:緑 2:青 3:黄色 4:紫 5:水色 6:白 7:暖かい白
3 1 点滅パターン 0:常時点灯 1~3:点滅パターン(数値が大きくなるほど点滅が早くなる。)
4 1 明るさ 0:消灯 0x01~0x0F:明るさ(数値が大きいほど明るくなる。)
0x02 : 点灯時間を送信する 通知パルのLEDの点灯時間を送信します。
本コマンドパラメータは、LEDの色、点滅パターン、明るさのパラメータが含まれないので、コマンドパラメータ0x01または0x03と組み合わせて使用します。
本コマンドパラメータを使用する場合は、送信間隔を必ず点灯時間より大きく設定してご使用ください。
番号 バイト数 内容 備考 1 1 コマンドパラメータID 0x02 2 1 未使用領域
0xFF固定 3 1 未使用領域 0x00固定 4 1 点灯時間 秒で指定(0は常時点灯)
0x03:LEDの色をRGBWで指定する 通知パルのLEDの点灯色をRGBWで送信します。
コマンドパラメータ0x00および0x01とは同時に使用できません。
番号 バイト数 内容 備考 1 1 コマンドパラメータID 0x03 2 1 未使用領域
0xFF固定 3 2 LEDの点灯色 LSBからRGBWの順番で4ビットずつ指定する。
数値が大きいほど明るい
0x04:点滅パラメータを指定する。 通知パルのLEDの点滅周期と点滅Dutyを送信します。
本コマンドパラメータは、LEDの色のパラメータが含まれないので、コマンドパラメータ0x03と組み合わせて使用します。
コマンドパラメータ0x00および0x01とは同時に使用できません。
番号 バイト数 内容 備考 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
2.1.1.2 - 親機・中継機アプリの中継機モード 子機や親機から受信したデータを再送信する
中継機モードでは、受信したパケットを再送信することで、子機と親機の通信距離を延ばすことができます。
中継したとき、親機が受信するパケットの順番が入れ替わってしまうことがあります。
100ms程度など短い間隔で連続的に送信する子機がいる際には、中継が間に合わない場合があります。本番環境でよく検証のうえご利用ください。
設定例 中継機として使用するには、インタラクティブモードの動作モード を1
以上としてください。
中継方式 TWELITE NETでは無線パケットの中継配送について、大きく分けて下表で示す2つの方式を用意しており、アプリケーションごとに異なります。本アプリでは下表で示すアプリケーションのパケットを識別し、中継することができます。
中継方式 対応アプリ 単純ネット 超簡単!標準アプリ、リモコンアプリ、シリアル通信アプリ、アクト 中継ネット 無線タグアプリ、パルアプリ、キューアプリ
単純ネットを使用した中継 単純ネットを使用するアプリの中継を行う場合、動作モードの値を1以上に設定することで3回まで中継することができます。
例えば、1. のように親機と子機の間に中継機が3台以内であれば親機にデータが届きますが、2. ように中継機が4台以上ある場合は親機にデータが届きません。
1. 子機 ---> 中継機 ---> 中継機 ---> 中継機 ---> 親機
→ 親機が子機のデータを3回中継して受信できる。
2. 子機 ---> 中継機 ---> 中継機 ---> 中継機 ---> 中継機 -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
※上図の壁による影響のみに対処したい場合は設定不要です。
2.1.2 - インタラクティブモード(親機・中継機アプリ) インタラクティブモードによる詳細な設定変更
インタラクティブモードでアプリの詳細設定を行うことができます。
ここでは親機・中継機アプリ(App_Wings)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
表示例 次のような画面を表示します。
[CONFIG MENU/App_Wings:0/v1-02-1/SID=820163B2]
a: (0x67720102) Application ID [HEX:32bit]
c: (18 ) Channels Set
x: ( 0x03) RF Power/Retry [HEX:8bit]
b: (38400,8N1 ) UART Baud [9600-230400]
o: (0x00000000) Option Bits [HEX:32bit]
k: (0xA5A5A5A5) Encryption Key [HEX:32bit]
m: ( 0) Mode (Parent or Router)
A: (0x00000000) Access point address [HEX:32bit]
[ESC]:Back [!]:Reset System [M]:Extr Menu
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、パケットを追加で送信する回数を指定します。
b
:UART代替設定オプションビットのUART代替設定の有効化 を設定した場合のUARTオプションを指定します。
値にはボーレートとパリティの設定をカンマで区切って指定します。
ボーレートは、9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
パリティはN
: 無し、O
: Odd(奇数)、E
: Even(偶数)を設定します。ハードウェアフローは設定できません。8N1, 7E2 などと設定できますが、8N1 以外の設定は未検証です。事前に動作をご確認ください。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
k
:暗号化鍵オプションビットの暗号化通信の有効化 を設定した場合の暗号化鍵を32bitの16進数で指定します。
m
:動作モード0
は親機モード、1
は中継機モードへ設定します。
中継機モードで多段中継を行う ときには、2
-63
とすることで中継機のレイヤを指定できます。
A
:中継先中継機モードで静的ルーティングを行う ときに接続する上位段の端末のシリアルID(0x8???????
)を指定します。このとき、0x00000000
とした場合は自動検索します。
オプションビットの詳細 オプションビットの値の各ビットに紐付いた設定を解説します。
00000200
:UART代替設定の有効化b
:UART代替設定 を有効とします。
00000400
:定期送信パケットの出力を停止超簡単!標準アプリとリモコンアプリの1秒毎の定期送信と連続モード時のUART出力を停止します。
00001000
:暗号化通信の有効化暗号化通信を有効にします。相手側の暗号化通信も有効化する必要があります。
00002000
:暗号化通信時の平文受信を有効化暗号化通信を有効とした際に、暗号化していないパケットも受信するようにします。
3 - リモコンアプリ マニュアル デジタル信号の伝送
デジタル信号の伝送に特化したファームウェアです。超簡単!標準アプリと比較して豊富な機能を備えています。
3.1 - リモコンアプリ マニュアル 最新版
導入方法 リモコンアプリ(App_IO
)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換え てください。[アプリ書換] → [TWELITE APPSビルド&書換] → [App_IO]を選択します。
機能 12個までのスイッチ等の接点入力を無線送信できます。
超簡単!標準アプリ(App_Twelite
)との違いは次の通りです。
ポート数が増加し、最大12ポートを使用できる 入出力の割り当ては4種類(12:0, 8:4, 6:6, 0:12) 外部配線で周波数チャネルを4種類から選択できる。 通信を暗号化できる 特定の相手とのみ通信できる(アプリケーションIDの自動設定) 3.1.1 - リモコンアプリのピン配置 リモコンアプリが使用するピンの機能
TWELITE / TWELITE DIP リモコンアプリが使用するピンの機能を、下図の超簡単!標準アプリのピン 名を使って表します。
超簡単!標準アプリのピン配置表
電源入力 VCC
/GND
には、3.3V(2.0-3.6V)の電源を接続します。
デジタル入出力 子機:12入力0出力/親機:12出力0入力 デフォルトの入出力の割り当て。
名称 子機 親機 標準 DIP # I1
/O5
I1
O5
DI1
15 I2
/O6
I2
O6
DI2
16 I3
/O7
I3
O7
DI3
17 I4
/O8
I4
O8
DI4
18 I5
/O1
I5
O1
DO1
5 I6
/O2
I6
O2
DO2
8 I7
/O3
I7
O3
DO3
9 I8
/O4
I8
O4
DO4
12 I9
/O9
I9
O9
SCL
2 I10
/O10
I10
O10
SDA
19 I11
/O11
I11
O11
PWM1
4 I12
/O12
I12
O12
PWM4
11
子機:8入力4出力/親機:8出力4入力 オプションビット:0x00001000
の設定を有効とした場合の入出力の割り当て。
名称 子機 親機 標準 DIP # I1
/O5
I1
I1
DI1
15 I2
/O6
I2
I2
DI2
16 I3
/O7
I3
I3
DI3
17 I4
/O8
I4
I4
DI4
18 I5
/O1
O1
O1
DO1
5 I6
/O2
O2
O2
DO2
8 I7
/O3
O3
O3
DO3
9 I8
/O4
O4
O4
DO4
12 I9
/O9
I5
O5
SCL
2 I10
/O10
I6
O6
SDA
19 I11
/O11
I7
O7
PWM1
4 I12
/O12
I8
O8
PWM4
11
子機:6入力6出力/親機:6出力6入力 オプションビット:0x00002000
の設定を有効とした場合の入出力の割り当て。
名称 子機 親機 標準 DIP # I1
/O5
I1
I1
DI1
15 I2
/O6
I2
I2
DI2
16 I3
/O7
I3
I3
DI3
17 I4
/O8
I4
I4
DI4
18 I5
/O1
O1
O1
DO1
5 I6
/O2
O2
O2
DO2
8 I7
/O3
O3
O3
DO3
9 I8
/O4
O4
O4
DO4
12 I9
/O9
O5
I5
SCL
2 I10
/O10
O6
I6
SDA
19 I11
/O11
I5
O5
PWM1
4 I12
/O12
I6
O6
PWM4
11
子機:0入力12出力/親機:0出力12入力 オプションビット:0x00003000
の設定を有効とした場合の入出力の割り当て。
名称 子機 親機 標準 DIP # I1
/O5
O5
I1
DI1
15 I2
/O6
O6
I2
DI2
16 I3
/O7
O7
I3
DI3
17 I4
/O8
O8
I4
DI4
18 I5
/O1
O1
I5
DO1
5 I6
/O2
O2
I6
DO2
8 I7
/O3
O3
I7
DO3
9 I8
/O4
O4
I8
DO4
12 I9
/O9
O9
I9
SCL
2 I10
/O10
O10
I10
SDA
19 I11
/O11
O11
I11
PWM1
4 I12
/O12
O12
I12
PWM4
11
シリアル入出力 TX
/RX
は、リモコン(UART)の送信と受信に使用します。
3.3V レベルのため、Arduino など 5V レベルで動作するマイコン等と接続する場合はレベル変換を行ってください。
ステータスLED出力 アプリケーションID自動設定時のステータス出力を行う際に使用します。
出力が Lo のとき光るようにしてください(吸い込み方式)。
設定入力 モード設定入力 Mx
ピンを未接続またはGND
へ接続することで、親機、子機、中継機といった動作モードを切り替える ことができます。
代替ボーレート設定入力 BPS
ピンを未接続またはGND
へ接続することで、UART のボーレート(通信速度)を 115200bps 以外の値へ変更 できます。
チャネル設定入力 一時的に周波数チャネルを上書きします。
間欠モードでは、これらのピンをプルアップするか、
無効化 してください。暗電流が発生するおそれがあります。
リセット入力 RST
とGND
との間にプッシュボタンを接続することで、リセットボタンを実装できます。RST
は内部プルアップされています。
3.1.2 - リモコンアプリの動作モード 各動作モードの説明
リモコンアプリ(App_IO)には、6つの動作モードがあります。
動作モードの一覧 各モードは、Mx
ピンを未接続または GND
へ接続することで設定します。
M3
M2
M1
モード 機能 省電力動作 LID初期値 O O O 子機:連続 入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します 120
O O G 親機:連続 入力状態を子機へ送信するほか、常に受信データを待機して出力へ反映します 0
O G O 中継機:連続 常に受信データを待機して中継します 122
O G G 子機:連続0.03秒 頻繁に入力状態を親機へ送信するほか、常に受信データを待機して出力へ反映します 123
G O O 子機:間欠1秒 1秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります ✅ 124
G G O (ペアリングモード) 詳細 G G G 子機:間欠10秒 10秒おきに入力状態を親機へ送信するほか、受信を無効化して常に節電モードへ入ります ✅ 127
O:未接続(OPEN)、G:GND
へ接続
初期状態は子機:連続モードです。
モードによって端末を識別するための論理デバイスID(LID)の初期値は異なります。
親機または中継機モードに限り、インタラクティブモード で切り替えできます。
親機は121
、中継機は122
としてください。
親機 連続モード 親機:連続モード 信号入力の変化を検知したとき、また1秒おきに、すべての子機へデータを送信します。
また子機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
子機 連続モード 子機:連続モード 信号入力の変化を検知したとき、また1秒おきに、すべての親機へデータを送信します。
また親機から送信されるデータを常時待機しており、反応がよいものの、常に電力を消費します。
親機との通信のイメージ
定期送信の無効化 インタラクティブモードでオプションビット 0x00000020
を設定することで、1秒おきの定期送信を無効化できます。
子機:連続0.03秒モード 子機:連続モードの定期送信の間隔は1秒ですが、これを0.03秒に短縮するモードです。
親機から送信されるデータを常時待機しているものの、子機から親機への通信で帯域を占有してしまうため、親機の入力に対する反応は鈍くなってしまいます。常に電力を消費します。
親機との通信のイメージ
1台の子機だけでほとんどの帯域を占有してしまうため、同時に複数の子機を使用することはなるべく避けてください。
間欠モード 子機:間欠1秒モード 信号入力の変化を検知したとき、また1秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
親機との通信のイメージ
子機:間欠10秒モード 信号入力の変化を検知したとき、また10秒おきに節電モードを解除し、すべての親機へデータを送信します。
受信機能を無効とするため、親機の制御を受けることはできません。省電力性能に優れたモードです。
親機との通信のイメージ
中継機 連続モード 中継機:連続モード 中継機は、受信したパケットを送信します。
親機と子機の間に3つまで設置できますが、中継機を増やすとパケットの数が増大するため、干渉しやすくなることに注意してください。
中継のイメージ
3.1.3 - リモコンアプリの代替ボーレート設定 UART 通信に使用するボーレート設定の変更
リモコンアプリ(App_IO)はデフォルトで 115200 bps のボーレートを UART 通信に使用しますが、これを変更できます。
代替ボーレート設定の有効化 BPS
ピンを GND
へ接続することで、代替ボーレート設定を有効化できます。
BPS
内容 ボーレート 備考 O デフォルト 115200bps G 上書き設定 38400bps 変更 可
O:未接続(OPEN)、G:GND
へ接続
インタラクティブモードのボーレート設定は、代替ボーレートの値を示しています。BPS
ピンが GND
に接続されていないと、インタラクティブモードの設定値は適用されません。
インタラクティブモードは、UART 通信を利用します。TWELTIE のボーレートを切り替えた際は、インタラクティブモードを使用する前に PC 側のボーレートを合わせなくてはなりません(
TWELITE STAGE アプリの設定変更 )。
3.1.4 - リモコンアプリのUART機能 UART機能で利用するデータ形式
リモコンアプリ(App_IO)の UART 機能で使用するデータ形式を解説します。
デジタル入出力 0x81
:相手端末からの状態通知受信した入力信号の状態を出力します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 1 uint8
コマンド番号 0x81
のみ2 uint8
パケット識別子 0x0F
のみ3 uint8
プロトコルバージョン 0x01
のみ4 uint8
LQI 0
-255
5 uint32
送信元のシリアルID 0x8???????
9 uint8
送信先の論理デバイスID 10 uint16
タイムスタンプ 1秒で64カウント、MSBは内部フラグ 12 uint8
中継回数 13 uint16
デジタル信号 LSBから順にIx
へ対応、0
がHigh 15 uint16
デジタル信号マスク LSBから順にIx
へ対応、1
なら有効 17 uint16
デジタル信号フラグ LSBから順にIx
へ対応、1
なら割り込み 19 uint8
未使用 内部管理用 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
出力データの例
:01810F01DB8630000200645F000040004F00400049
上記データの解釈 # データ 内容 値 :
char
ヘッダ :
01
0 uint8
送信元の論理デバイスID 0x78
81
1 uint8
コマンド番号 0x81
0F
2 uint8
パケット識別子 0x15
01
3 uint8
プロトコルバージョン 0x01
DB
4 uint8
LQI 219/255
86300002
5 uint32
送信元のシリアルID 0x6300002
00
9 uint8
送信先の論理デバイスID 0x00
645F
10 uint16
タイムスタンプ 約401
秒 00
12 uint8
中継回数 0
0040
13 uint16
デジタル信号 I7
がLo004F
15 uint16
デジタル信号マスク I7
,I1
-I4
が有効0040
17 uint16
デジタル信号フラグ I7
は割り込みにより変化00
19 uint8
未使用 49
uint8
チェックサム 0x49
char
フッタ \r
char
フッタ \n
0x80
:相手端末の出力変更相手端末の出力信号を制御します。
データ形式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
のみ2 uint8
書式バージョン 0x01
のみ3 uint16
デジタル信号 LSBからOx
に対応、0
でHigh 5 uint16
デジタル信号マスク LSBからOx
に対応、1
で有効 7 uint16
未使用 0
9 uint16
未使用 0
11 uint16
未使用 0
13 uint16
未使用 0
uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
親機・中継機アプリはこの書式に対応していません。リモコンアプリの親機のみ対応しています。
UART 入出力 3.1.5 - リモコンアプリのカスタムデフォルト機能 デフォルトの設定を変更したファームウェアの作成
カスタムデフォルト機能によって、ファームウェアに含まれるデフォルトのパラメータを変更できます。
例えば、ボーレートを 115200bps から 9600bps へ変更したファームウェアを作成しておけば、最初から 9600bps で使用できます。
設定手順 1. 設定を適用 インタラクティブモード の設定を変更し、S
を押下して保存します。
2. 設定内容をダウンロード xmodem プロトコルのデータをダウンロードできるソフトウェアを用意します。
xmodem の仕様はチェックサム/128バイトパケットです。拡張された 1KB や CRC の形式は使用しません。
再度インタラクティブモードへ入った状態(項目を選ぶ前の状態)として、xmodem のダウンロードを要求します。
TeraTerm では、次の操作を行います。
ファイル > 転送 > XMODEM > 受信...
を選択Option > Checksum, Binary
を選択ファイル名を指定(例:conf.bin
) 開く
ボタンを押下
macOS や Linux 等では、lrzsz
を利用できます。
lrx --binary --xmodem /path/to/conf.bin
通常は screen
でインタラクティブモードへ入り、Ctrl+A
の押下後 :exec !! lrx -b -X /path/to/conf.bin
を実行します
ダウンロードに成功すると、128バイトのファイルを生成します(xmodem の実装によっては、小さいサイズになることもあります)。
3. カスタムバイナリの作成 ダウンロードしたファイルをファームウェアのバイナリファイルの末尾へ連結し、カスタムバイナリを作成します。
連結には、コマンドラインツールや汎用のファイル連結ツールを使用してください。
実行例 ダウンロードした xmodem のファイルを conf.bin
、元のバイナリファイルをApp_IO_BLUE_L1305_V1-3-X.bin
、作成するカスタムバイナリをApp_IO_custom_V1-3-X.bin
とした場合の例を示します。
【Windows】
copy App_IO_BLUE_L1305_V1-3 -X.bin App_IO_custom_V1-3 -X.bin
type conf.bin >> App_IO_custom_V1-3 -X.bin
【macOS / Linux】
cat App_IO_BLUE_L1305_V1-3-X.bin conf.bin > App_IO_custom_V1-3-X.bin
4. カスタムバイナリの書き込み 連結したカスタムバイナリを TWELITE へ書き込みます。
カスタムバイナリを書き込んでからインタラクティブモードへ入ると、最初の行の末尾に C-
を表示します。
--- CONFIG/APP_IO V1-04-2/SID=0x81001f1c/LID=0x78 C- ---
カスタムバイナリに対してインタラクティブモードから設定を上書きして保存すると、C-
の代わりにCE
と表示します。
--- CONFIG/APP_IO V1-04-2/SID=0x81001f1c/LID=0x78 CE ---
3.1.6 - リモコンアプリのペアリング機能 アプリケーションIDの自動設定による親機と子機のグループ化
リモコンアプリ(App_IO)には、インタラクティブモードを使わずに親機と子機のグループを作成する機能があります。
「ペアリング」といっても、Bluetooth のペアリングとは異なります。
あくまでもアプリケーションIDを共有するだけであり、同報通信の仕組み は変わりません。
設定方法 親機のシリアルIDに基づいたアプリケーションIDを生成し、それを子機へ流し込むことでグループを作成します。LED
ピンへ LED を接続すると、設定の成否を確認できます。
接続の様子
親機と子機の LED
へ LED と 電流制限抵抗(680Ω)を接続する(吸い込み) M1
を開放したまま、M2
とM3
をGND
へ接続する親機の電源を入れて、LED の点滅を確認する 5秒以内に親機の近くで子機の電源を入れ、LED が消灯することを確認する(失敗すると点灯) 3.1.7 - インタラクティブモード(リモコンアプリ) インタラクティブモードによる設定変更
インタラクティブモードでアプリの詳細設定を行うことができます。
ここではリモコンアプリ(App_IO)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
M3
ピン をGND
へ接続していないことを確認してください。
表示例 次のような画面を表示します。
--- CONFIG/APP_IO V1-03-2/SID=0x86300001/LID=0x00 ---
a: set Application ID (0x67720107)
i: set Device ID (--)
c: set Channels (16)
x: set Tx Power (3)
t: set mode4 sleep dur (1000ms)
y: set mode7 sleep dur (0s)
f: set mode3 fps (16)
d: set hold mask (000000000000)
D: set hold dur (1000ms)
o: set Option Bits (0x00000000)
b: set UART baud (38400)
p: set UART parity (N)
C: set crypt mode (0)
K: set crypt key []
---
S: save Configuration
R: reset to Defaults
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
識別の必要がない、できない場合は120
としてください。識別の必要がある場合は、子機は1
-100
の任意の値に、親機は0
あるいは121
としてください。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
t
:子機間欠1秒モードの間隔子機間欠1秒モードの間欠時間を1秒から他の値へ上書きします。単位はミリ秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
y
:子機間欠10秒モードの間隔子機間欠10秒モードの間欠時間を10秒から他の値へ上書きします。単位は秒です。
0
を設定した場合は、タイマによる定期的な起床を無効化します。このときIx
の立ち下がりエッジにより起床しますが、立ち上がりエッジでは起床しません。
f
:子機連続0.03秒モードのサイクル毎秒の送信リクエストの数を32回から4
/8
/16
回へ上書きします。再送回数は含みません。
d
:ホールド/長押しモードの対象初期状態ではホールドモードの、オプションビット0x00000100
を有効としたときはリモコン長押しモードの対象とするポートを選択します。
設定値には、対象とするIx
またはOx
のビットマスクを指定します。値は12文字までの0
または1
で構成します。LSBから順に I1
I2
… I12
と並びます。
例えば 000000001010
を指定すると、I2
とI4
にホールドモードを適用できます。任意のピンを対象とした場合、対象としていないポートからは50msのパルスを出力します。
ホールドモード ホールドモードの場合、対象としたポートは次のように振るまいます。
入力(送信)側:Ix
すべての入力がLoからHiへ戻ったあと、設定した時間 にわたり連続して送信します(ホールド解除のため) 出力(受信)側:Ox
受信した入力のうち、Loであるものに対しては、設定した時間 にわたり出力をLoのままホールドします いずれかの出力のホールド中に再び入力がLoの信号を受信した際は、ホールドする期間を延長します リモコン長押しモード リモコン長押しモードの場合、対象としたポートは次のように振るまいます。
入力(送信)側:Ix
いずれかの入力がLoである間、連続して送信します すべての入力がLoからHiへ戻ったあと、設定した時間 にわたり連続して送信します 出力(受信)側:Ox
いずれかの入力がLoであるパケットが断絶してから設定した時間 が経過すると、出力をHiへ戻します D
:ホールド/長押しモードの時間初期状態ではホールドモードを、オプションビット0x00000100
を有効としたときはリモコン長押しモードのホールド時間や送信間隔といった値を指定することができます。
20
-64000
ms の値を指定できます。
ホールドモード ホールドモードの場合、設定した時間は次のように適用されます。
入力(送信)側:Ix
連続モードでは、すべての入力がLoからHiへ戻ったあとに連続して送信する時間を指定します。
間欠モードでは、いずれかの入力がLoである間の送信間隔を指定します。
出力(受信)側:Ox
出力を維持する時間を指定します。
リモコン長押しモード リモコン長押しモードの場合、設定した時間は次のように適用されます。
入力(送信)側:Ix
すべての入力がLoからHiへ戻ったあとに連続して送信する時間を指定します。
出力(受信)側:Ox
いずれかの入力がLoのパケットが断絶してからすべての出力をHiへ戻すまでの時間を指定します。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
b
:UART代替ボーレートBPS
ピンをGND
へ接続して起動した場合に選択される代替ボーレートを38400
bpsから上書きします。
値は9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
B
:UARTパリティN
: 無し、O
: Odd(奇数)、E
: Even(偶数)のいずれかを設定します。ストップビットは1
のみ、ハードウェアフローは設定不可です。
C
:暗号化暗号化機能の有無を指定します。
AES128bitの暗号化を有効とするには、1
を指定してください。
K
:暗号鍵暗号化に用いる鍵を入力します。16文字のテキストを指定します(バイナリ列は指定できません)。
オプションビットの詳細 オプションビットの値の各ビットに紐付いた設定を解説します。
0x00000001
:低レイテンシモード低レイテンシモードで入力状態の監視と無線送信を行います。
ボタン監視の時間を短縮し、送信遅延を最小にします。また、連続モードでは入力の判定に割り込みを使用しますが、チャタリングの影響を受けやすくなります。間欠モードでは、入力状態の確定までの時間を短縮します。
子機のみ有効です。
0x00000002
:低レイテンシモード(スリープ割り込み)間欠モード時にスリープ復帰要因がIx
のHiからLoへの割り込みであったとき、割り込み要因のポート情報を速やかに送信します。
特に子機間欠10秒モードにおいて、定期起床を無効としたとき、ボタンの押し下げを検出するためにホールドモードと合わせて利用します。
子機のみ有効です。
0x00000010
:ACKつき送信の有効化子機から ACK を有効とした通信を行います。親機が ACK を返した時点で送信は終了します。
複数台の親機やすべての中継機は利用できませんが、親機と安定して通信できる環境では効率のよい通信を実現できます。
子機間欠10秒モードの場合、BPS
ピンが出力ピンとして設定されるため、子機側のボーレートの上書きはできません。
0x00000020
:定期送信の無効化子機連続モードにおける1秒おきの定期送信を無効化します。
0x00000100
:リモコン長押しモードの有効化ホールドモードの代わりに、リモコン長押しモードを適用します。
0x00000200
:C1
/C2
チャネル切り替えの無効化C1
/C2
ピンによるチャネル切り替え機能を停止します。
0x00000400
:Ix
の入力を反転入力が Hi のとき1
を、Lo のとき0
を送信します。
デフォルトでは、プルアップを想定しているため、入力が Hi のとき0
を、 Lo のとき1
を送信します。
0x00000800
:Ix
の内部プルアップを停止Ix
の内部プルアップ(約50kΩ)をすべて停止します。
起動してからハードウェアの初期化を完了するまでの約1msの期間はプルアップされます。
0x00001000
:子機:8入力4出力/親機:8出力4入力入出力ポートの割り当てを「子機:12入力0出力/親機:12出力0入力」から変更します。間欠モードでは間欠受信を行います。
0x00002000
:子機:6入力6出力/親機:6出力6入力入出力ポートの割り当てを「子機:12入力0出力/親機:12出力0入力」から変更します。間欠モードでは間欠受信を行います。
0x00003000
:子機:0入力12出力/親機:0出力12入力入出力ポートの割り当てを「子機:12入力0出力/親機:12出力0入力」から変更します。間欠モードでは間欠受信を行います。
0x00010000
:子機の受信を強制的に有効化連続モードのとき、出力ポートの有無に関わらず強制的に受信を有効化します。
他の端末から受信したデータのUART出力を実現できます。
0x00020000
:入出力変化時のUART出力の停止入出力変化時のメッセージ出力を停止します
0x00040000
:C2
のウォッチドッグ出力を有効化C2
ポートからウォッチドッグ出力を行います。
アプリケーションループでIOを制御し、約32Hzの矩形波を出力します。
モジュールのハングアップに備えて、自動復帰のために外部のリセット回路を接続し、モジュールを強制的にリセットする際に使用します。
0x00400000
:Ox
の出力を反転受信した入力ポートの状態が 0
のとき Lo を、1
のとき Hi を出力します。
デフォルトでは、プルアップを想定しているため、受信した入力ポートの状態が 0
のとき Hi を、1
のとき Lo を出力します。
4 - シリアル通信アプリ マニュアル シリアル通信の無線化
シリアル通信(UART)の無線伝送に特化したファームウェアです。超簡単!標準アプリと比較して豊富な機能を備えています。
4.1 - シリアル通信アプリ マニュアル 最新版
工場出荷時の TWELITE UART へインストールされています。
ダウンロード シリアル通信アプリ(App_Uart
)を導入するには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換え てください。
4.1.1 - シリアル通信アプリのピン配置 シリアル通信アプリが使用するピンの機能
以下の情報は、App_Uart v1.2 以降を対象としています。
TWELITE / TWELITE DIP シリアル通信アプリが使用するピンの機能を、下図の超簡単!標準アプリのピン 名を使って表します。
超簡単!標準アプリのピン配置表
電源入力 VCC
/GND
には、3.3V(2.0-3.6V)の電源を接続します。
シリアル入出力 TX
/RX
は、シリアル通信(UART)の送信と受信に使用します。
3.3V レベルのため、Arduino など 5V レベルで動作するマイコン等と接続する場合はレベル変換を行ってください。
シリアル副入出力 TX_SUB
(SCL
)/RX_SUB
(SDA
)は、シリアル入出力の副ポートとして利用できます。
シリアル入力許可 RTS
(PWM1
)が Low レベルのときは、RX
へのシリアル入力を受け付けていることを示します。
Hi レベルのときにRX
への入力を抑制することで、取りこぼしを防ぐことが期待されます。
親機/子機の選択 M1
をGND
へ接続すると親機、開放またはVCC
へ接続すると子機として使用できます。
インタラクティブモードによる設定 この接続を省略し、インタラクティブモードから設定することもできます。
子機へ中継機能を付与 M2
を子機設定のときにGND
へ接続することで、中継機能を付与できます。
インタラクティブモードによる設定 この接続を省略し、インタラクティブモードから設定することもできます。
スリープ M3
をGND
へ接続すると、本体をスリープさせることができます。
動作モードの上書き EX1
を起動時に GND
へ接続しておくことで、動作モードを書式モード(バイナリ)へ上書きできます。
代替ボーレート設定の有効化 BPS
をGND
へ接続することで、インタラクティブモードで指定した代替ボーレート設定を有効化できます。
リセット入力 RST
とGND
との間にプッシュボタンを接続することで、リセットボタンを実装できます。RST
は内部プルアップされています。
TWELITE UART シリアル通信アプリが使用するピンの機能を、基板に記載された7Pインタフェース(下図の②)のピン名を使って表します。
基板アンテナタイプ
同軸コネクタタイプ
電源入力 VCC
/GND
には、3.3V(2.0-3.6V)の電源を接続します。
シリアル入出力 TX
/RX
は、シリアル通信(UART)の送信と受信に使用します。
Arduino など 5V レベルで動作するマイコンと接続する場合は、レベル変換してください。
動作モードの上書き SET
を起動時に GND
へ接続することで、動作モードを書式モード(アスキー)へ上書きできます。
リセット入力 RST
とGND
との間にプッシュボタンを接続することで、リセットボタンを実装できます。RST
は内部プルアップされています。
4.1.2 - シリアル通信アプリの通信モード 各通信モードの説明
シリアル通信アプリ(App_Uart)には、5つの通信モードがあります。
通信モードの一覧 各モードは、インタラクティブモードによって切り替えます(一部のモードはピン入力にて設定可能)。
初期状態はヘッダ付き透過モード です。
モードに関わらず、送信データは80バイト以内としてください パケットサイズの制約から、一度に送るデータはバイナリ換算で80バイト以内に収めてください。
TWELITE が採用する IEEE 802.15.4 のパケットの最大長は128バイトであり、オーバーヘッドを考慮するとシリアル通信アプリのペイロードに使用できる領域は80バイトに限られます。
大量のデータを送信する場合は、Wi-Fi などを利用した他社製品をご検討ください。TWELITE は少ないデータを効率よく送る用途に適しています。
A
:書式モード(アスキー)送信側の端末へ特定の書式に従ったデータを入力すると、受信側の端末も特定の書式に従ったデータを出力します。
16進数で表すデータはアスキー文字列で表現します。
送信側の入力 受信側の出力 簡易形式/拡張形式のデータ → 簡易形式/拡張形式のデータ
TWELITE UART では、SET
ピンを GND
へ接続して起動すると本モードが有効となります。
データを表現する形式は2種類あります。
簡易形式:論理デバイスIDだけを使用。超簡単!標準アプリのUART伝送機能と互換性あり 拡張形式:論理デバイスIDに加えて、シリアルIDや再送回数などの送信オプションを使用できる 例えば、5バイトのバイナリデータ 0x48 0x45 0x4C 0x4C 0x4F
は、簡易形式を使って次のように送信できます。
【送信側】
:000148454C4C4F8B <- 入力
:DBA1800103 <- 出力
【受信側】
書式モードでは、アプリケーションIDなどの設定をインタラクティブモードだけでなく UART によるコマンド(アスキー形式 )によって動的に適用できます。
B
:書式モード(バイナリ)送信側の端末へ特定の書式に従ったデータを入力すると、受信側の端末も特定の書式に従ったデータを出力します。
16進数で表すデータはそのままバイナリ形式で表現します。
送信側の入力 受信側の出力 簡易形式/拡張形式のデータ → 簡易形式/拡張形式のデータ
TWELITE / TWELITE DIP では、EX1
ピンを GND
へ接続して起動すると本モードが有効となります。
書式モード(アスキー)と同様に、データを表現する形式は2種類あります。
例えば、5バイトのバイナリデータ 0x48 0x45 0x4C 0x4C 0x4F
は、簡易形式を使って次のように送信できます。
【送信側】
0xA5 0x5A 0x00 0x07 0x00 0x01 0x48 0x45 0x4C 0x4C 0x4F 0x43 0x04 <- 入力
0xA5 0x5A 0x00 0x04 0xDB 0xA1 0x80 0x01 0xFB 0x04 <- 出力
【受信側】
0xA5 0x5A 0x00 0x07 0x78 0x01 0x48 0x45 0x4C 0x4C 0x4F 0x3B 0x04 <- 出力
書式モードでは、アプリケーションIDなどの設定をインタラクティブモードだけでなく UART によるコマンド(バイナリ形式 )によって動的に適用できます。
C
:チャットモードテキストチャットを実現します。
送信側の入力 受信側の出力 任意の文字列 → 補助情報+任意の文字列
プロンプトの表示とエコーバック(入力した文字の出力)を行います。すべての端末は子機として、同報通信を行います。
例えば、ある端末から他の端末へ Hello
という文字列を送信する場合は、次のように振る舞います。
【送信側】
810A4778:0> Hello <- 入力
810A4778:1> <- 出力
【受信側】
[810A4778:0] Hello <- 出力
82018CA0:0> <- 出力
上記の例ではプロンプトにシリアルIDを表示していますが、任意のハンドル名を使用することもできます。
D
:透過モード送信側の端末へ任意のデータを入力すると、受信側の端末は受信したデータをそのまま出力します。
送信側の入力 受信側の出力 任意のデータ → 任意のデータ
書式を必要としないため、既存の UART 通信を簡単に無線化できます。
一方で、データの区切りがあいまいになってしまうほか、受信側の出力から送信元を判別できないといった欠点があります。
初期状態では、送信側へ入力されたデータをCRLFで区切り、CRLF よりも前のデータを送信します。
例えば、送信側の端末へ Hello<Enter>
と入力すると、受信側の端末はそのまま Hello
を出力します。
【送信側】
【受信側】
E
:ヘッダ付き透過モード送信側の端末へ任意のデータを入力すると、受信側の端末は受信した内容に特定の書式で補助情報を付加したデータを出力します。
送信側の入力 受信側の出力 任意のデータ → 任意のデータ+補助情報
初期状態では、送信側へ入力されたデータをCRLFで区切り、CRLF よりも前のデータを送信します。
例えば、送信側の端末へ Hello<Enter>
と入力すると、受信側の端末は補助情報を含んだ書式で Hello
を出力します。送信側の端末も送信完了といったメッセージを伝える書式を出力します。
【送信側】
Hello <- 入力
;U;00004;219;0x820163B2;000;000;0,1,Hel...;6E; <- 出力
【受信側】
;U;00003;000;0x820163B2;255;000;Hello;42; <- 出力
受信側が出力する補助情報は、送信元のアドレスや受信時の電波強度、チェックサム等を含みます。補助情報の書式はカスタマイズできます。
4.1.2.1 - シリアル通信アプリの書式モード(アスキー形式) 送受信双方の出力にヘッダを付加するモード(アスキー形式)
書式モードは、送受信双方の出力にヘッダを付加します。アスキー形式では、データを16進数の文字列で表します。
概要 送信側の端末へ特定の書式に従ったデータを入力すると、受信側の端末も特定の書式に従ったデータを出力します。
データは16進数のアスキー文字列で表現します。
送信側の入力 受信側の出力 簡易形式/拡張形式のデータ → 簡易形式/拡張形式のデータ
TWELITE UART では、SET
ピンを GND
へ接続して起動すると書式モード(アスキー)が有効となります。 TWELITE / TWELITE DIP では、EX1
ピンを GND
へ接続して起動すると書式モード(バイナリ)が有効となります。 扱うことのできる書式の形式は2種類あります。
簡易形式:論理デバイスIDだけを使用する。超簡単!標準アプリのUART伝送機能と互換性あり 拡張形式:論理デバイスIDに加えて、シリアルIDや再送回数などの送信オプションを使用できる 例えば、5バイトのバイナリデータ 0x48 0x45 0x4C 0x4C 0x4F
は、簡易形式を使って次のように送信できます。
【送信側】
:000148454C4C4F8B <- 入力
:DBA1800103 <- 出力
【受信側】
基本の書式 基本形式や拡張形式で表現したデータ列を送信するときは、アスキー文字列(0-9,A-F)へ変換します。
書式は超簡単!標準アプリ(App_Twelite)や親機・中継機アプリ(App_Wings)の親機の出力と同様に、:
で始まりCRLFで終わります。
ヘッダ ペイロード チェックサム フッタ :
00
-FF
の繰り返しペイロードのLRC8 CRLF
すべて ASCII 文字 先頭は :
(0x3A
) チェックサムはペイロードの合計の2の補数 末端は CRLF (\r\n
/0x0D 0x0A
) ビッグエンディアン 例えば、バイナリデータ 0x00 0x11 0x22 0x33 0xAA 0xBB 0xCC
は次のように表現します。
:00112233AABBCC69<CR><LF>
親機と子機の区別 書式モードは、親機と子機を区別します。
親子間では、アプリケーションIDと周波数チャネル を合わせる必要があります。
送信元の判別 書式モードでは、受信したデータから送信元を判別できます。
簡易形式の書式では論理デバイスIDを、拡張形式の書式では論理デバイスIDに加えて拡張アドレスを利用します。
拡張アドレスは、TWELITE 本体に記載された7ビットのシリアルIDの先頭へ0x8
を付加したものです。
簡易形式の書式 書式モードの簡易形式を利用する場合は、次の書式に従います。
送信側の入力 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
未満の任意の値2 [uint8]
任意のデータ 長さ\(N\)のバイト列(\(N\leqq80\)を推奨) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
受信側の出力 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 送信側で指定した0x80
未満の値 2 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
送信側の出力(応答メッセージ) # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 0xDB
のみ:自身を示す1 uint8
コマンド番号 0xA1
のみ2 uint8
応答ID 128
-255
(0x80
-0xFF
)の範囲で続き番号を示す3 uint8
処理結果 成功1
,失敗0
uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
使用例 親機から全子機に対してバイト列 0x11 0x22 0x33 0xAA 0xBB 0xCC
を送信する例を示します。
【送信側:親機】
:7801112233AABBCCF0<CR><LF> <- 入力
:DBA1800103<CR><LF> <- 出力
末尾の0xF0
はチェックサム:0x78
から0xCC
までの合計の2の補数のLSBから8ビット。
【受信側:全子機】
:0001112233AABBCC68<CR><LF> <- 出力
末尾の0x68
はチェックサム:0x00
から0xCC
までの合計の2の補数のLSBから8ビット。
拡張形式の書式 書式モードの拡張形式を利用する場合は、次の書式に従います。
送信側の入力 送信先の指定に論理デバイスIDを使用する場合 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 任意の値 3 [uint8]
オプション 長さ\(N\)のオプション列 3+\(N\) [uint8]
任意のデータ 長さ\(M\)のバイト列(\(M\leqq80\)を推奨) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
送信先の指定に拡張アドレスを使用する場合 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
拡張アドレスの指定 0x80
のみ1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 任意の値 3 uint32
送信先の拡張アドレス シリアルIDの先頭へ0x8
を加えた値 7 [uint8]
オプション 長さ\(N\)のオプション列 7+\(N\) [uint8]
任意のデータ 長さ\(M\)のバイト列(\(M\leqq80\)を推奨) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
オプション列の詳細 拡張形式では、オプション列を指定することで細かな設定を行うことができます。
オプション列は、オプションのIDと引数の繰り返しで表現します。終端は 0xFF
とします。
オプションを指定しない場合は0xFF
の1バイトだけを指定します。
入力後1秒が経過すると、送信処理はタイムアウトします。また、内部のバッファが処理待ちで埋まってしまい、新しい要求を受け付けることができない場合があります。アプリケーション再送や遅延を設定する場合は、極端な値に設定しないように注意してください。
0x01
:MAC ACKの有効化MAC層のACK(確認応答)を有効化します。
頻繁にデータを送信する場合には適しませんが、信頼性を向上できる場合があります。
中継機は利用できません。また、送信先を全子機(0x78
)とするときは利用できません。
0x02
:アプリケーション再送の有効化MAC ACK を使用するときは、0x00
-0x0F
を指定します。送信に成功するまで、それぞれ0-16回の再送を行います。
MAC ACK を使用しないときは、0x81
-0x8F
を指定します。必ず1-16回の再送を行います。
応答メッセージは、すべての再送が終了してから出力します。
0x03
:初回送信の遅延の最小値初回送信までの遅延の最小値をミリ秒で指定できます。
0x04
:初回送信の遅延の最大値初回送信までの遅延の最大値をミリ秒で指定できます。
0x05
:アプリケーション再送の間隔アプリケーション再送を有効化した際の再送間隔をミリ秒で指定します。
0x06
:平行要求の許可平行要求を許可します。
平行要求を許可すると、要求を完了するまでブロックせず、次の要求処理を受け付けることができるようになります。
例えば 0.5 秒の遅延を設定した要求を3回連続して入力した場合、初期状態では 0.5 秒後、1.0秒後、1.5秒後と順番に処理します。ところが、平行要求を許可した場合は、0.5秒後に順不同で送信要求を処理します。なおパケット分割を必要とする場合は使用できません。
受信側の端末は、常に新しいデータを採用します。平行要求を許可していると、新しいデータのあとに古いデータが届き、古いデータが無視されてしまうことがあります。
0x07
:応答メッセージの無効化送信側へデータを入力した際に出力される応答メッセージを無効とします。
0x08
:送信後スリープ送信後、速やかに本体をスリープさせます。
RX
が立ち上がりエッジを検知すると、スリープから復帰します。何か1バイトのデータを入力してください。
スリープ復帰後、UART の初期化が終わると入力を受け付けます。
受信側の出力 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 送信側で指定した値 3 uint32
送信元の拡張アドレス シリアルIDの先頭へ0x8
を加えた値 7 uint32
送信先の拡張アドレス 論理デバイスID使用時は0xFFFFFFFF
11 uint8
LQI 受信時の電波通信品質 12 uint16
続くバイト列の長さ バイト数\(M\)を表す 14 [uint8]
任意のデータ 長さ\(M\)のバイト列 uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
送信側の出力(応答メッセージ) # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信元の論理デバイスID 0xDB
のみ:自身を示す1 uint8
コマンド番号 0xA1
のみ2 uint8
応答ID 入力時に指定した値 3 uint8
処理結果 成功1
,失敗0
uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
使用例 親機から子機に対してバイト列 0x11 0x22 0x33 0xAA 0xBB 0xCC
を送信する例を示します。
論理デバイスIDを指定する例 親機から論理デバイスID0x42
の子機へ送信する例を示します。
応答IDは0x01
オプションなし 親機の拡張アドレスは0x81000000
(シリアルID0x1000000
) 【送信側:親機】
:42A001FF112233AABBCC87<CR><LF> <- 入力
:DBA1010182<CR><LF> <- 出力
末尾の0x87
はチェックサム:0x42
から0xCC
までの合計の2の補数のLSBから8ビット。
【受信側:子機】
:00A00181000000FFFFFFFFC80006112233AABBCC7D<CR><LF> <- 出力
末尾の0x7D
はチェックサム:最初の0x00
から0xCC
までの合計の2の補数のLSBから8ビット。
拡張アドレスを指定する例 親機から拡張アドレス0x81000001
(シリアルID0x1000001
)の子機へ送信する例を示します。
応答IDは0x01
オプションなし 親機の拡張アドレスは0x81000000
(シリアルID0x1000000
) 【送信側:親機】
:80A00181000001FF112233AABBCCC7<CR><LF> <- 入力
:DBA1010182<CR><LF> <- 出力
末尾の0xC7
はチェックサム:0x80
から0xCC
までの合計の2の補数のLSBから8ビット。
【受信側:子機】
:00A0018100000081000001C80006112233AABBCCF7<CR><LF> <- 出力
末尾の0xF7
はチェックサム:最初の0x00
から0xCC
までの合計の2の補数のLSBから8ビット。
MAC ACKを使用する例 親機から論理デバイスID0x42
の子機へ MAC ACK を使用して送信する例を示します。
【送信側:親機】
:42A00101FF112233AABBCC86<CR><LF> <- 入力
:DBA1010182<CR><LF> <- 出力
末尾の0x86
はチェックサム:0x42
から0xCC
までの合計の2の補数のLSBから8ビット。
【受信側:子機】
:00A00181000000FFFFFFFFC80006112233AABBCC7D<CR><LF> <- 出力
末尾の0x7D
はチェックサム:0x00
から0xCC
までの合計の2の補数のLSBから8ビット。
遅延を設ける例 親機から論理デバイスID0x42
の子機へ 768ms の遅延を設けて送信する例を示します。
【送信側:親機】
:42A001030300FF112233AABBCC81<CR><LF> <- 入力
:DBA1010182<CR><LF> <- 出力
末尾の0x81
はチェックサム:0x42
から0xCC
までの合計の2の補数のLSBから8ビット。
【受信側:子機】
:00A00181000000FFFFFFFFC80006112233AABBCC7D<CR><LF> <- 出力
末尾の0x7D
はチェックサム:0x00
から0xCC
までの合計の2の補数のLSBから8ビット。
0xDB
コマンドインタラクティブモードの設定を行う代わりに、UART から 0xDB
コマンドを入力することでモジュールの操作や設定を行うことができます。
4.1.2.1.1 - シリアル通信アプリ 書式モード(アスキー)の 0xDB コマンド 書式モード(アスキー)におけるインタラクティブモードを使用しない設定機能
書式モードでは、インタラクティブモードの代わりに0xDB
コマンドを使うことで、UART接続されたデバイスから動的に設定を行えます。
入力の書式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 自身を示す0xDB
のみ 1 uint8
コマンド番号 後述の値 から選択2 [uint8]
パラメータ 設定値を示す長さ\(N\)のバイト列(オプション) uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
コマンド番号の一覧 0xF0
:ACKの有効化ACK 応答の要求を行います。
パラメータはありません。
応答の書式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF0
のみ2 uint8
データ 0x01
のみuint8
チェックサム 0x34
:LRC8char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0xF1
:端末情報の取得アドレス等の情報を表示します。起動時にも出力されます。
パラメータはありません。
応答の書式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF1
のみ2 uint32
アプリケーションID 6 uint32
バージョン番号 1.4.7
なら00010407
10 uint8
論理デバイスID 11 uint32
シリアルID 15 uint8
サイレントモードの状態 有効1
, 無効0
16 uint8
ネットワークの状態 UP1
, DOWN0
uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0xF2
:端末設定の適用設定を適用します。
適用するパラメータは、
下記に記載 の識別子とデータの組み合わせで構成します。
応答の書式 成功した場合 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 [uint8]
設定内容 長さ\(N\)の識別子とデータ の繰り返し uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
失敗した場合 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 uint8
エラー 0xFF
のみuint8
チェックサム 0x33
:LRC8char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0xF3
:端末設定の取得設定を取得します。
取得するパラメータは、
下記に記載 の識別子で構成します。
応答の書式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 [uint8]
設定内容 識別子とデータ の繰り返しuint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0xF8
:端末の制御起動時にサイレントモードを有効としていた場合に、これを解除します。
応答の書式 # データ 内容 備考 char
ヘッダ :
のみ0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF8
のみ2 uint8
データ 0x11
のみ3 uint8
状態 解除済み1
, 未解除0
uint8
チェックサム LRC8 char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
0xFD
:端末設定の消去設定を初期化し、本体をリセットします。
パラメータおよび応答はありません。
0xFE
:端末設定の保存適用した設定を保存し、本体をリセットします。
パラメータおよび応答はありません。
0xFF
:端末のリセット適用した設定を破棄し、本体をリセットします。
パラメータおよび応答はありません。
パラメータの一覧(0xF2
/0xF3
) 0xF2
:端末設定の適用 および 0xF3
:端末設定の取得 のパラメータは、識別子とデータ(ビッグエンディアン)の繰り返しで表現します。
0x00
:アプリケーションIDアプリケーションIDを指定します。
0x01
:周波数チャネルマスク周波数チャネルのビットマスクを指定します。
使用するチャネルのビットを立てます。例えば、11チャネルを使う場合は1<<11
です。
0x02
:再送回数と出力電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
下位の1バイトのみを使用します。そのうち上位の4ビットが再送回数(0
-9
)、下位の4ビットが送信出力(0
-3
)です。例えば、8回再送/出力3 であれば 0x0083
です。
0x03
:論理デバイスID論理デバイスIDを指定します。
0x04
:役割子機のみ有効です。以下の値を指定します。通常はネットワーク層を利用しない配送方式を選択してください。
ネットワーク層を利用しない配送方式 0
:通常の指定(親機または子機)1
-3
:中継子機(論理デバイスIDを1
-100
または 120
とします)1
-3
の数値は最大中継段数を指します。最大中継段数まで再送を繰り返す方式のため、中継機の配置や数によっては重複したパケットを中継します。ネットワーク層を利用する配送方式
サイレントモードを有効化するには、上記の数値に80
を足してください。例えば 93
は「ネットワーク層利用かつサイレントモード」です。
0x05
:中継レイヤ中継レイヤの番号です。中継機は中継レイヤ数の上位(より小さい値)の中継機・親機への接続を試みます。役割 を12
としているときにだけ有効です。
0x06
:通信モード0
:透過モード1
:書式モード(アスキー)2
:書式モード(バイナリ)3
:チャットモード4
:ヘッダ付き透過モード0x07
:ボーレートUART ボーレートを指定します。
0x08
:パリティ以下の設定の組み合わせにおいて、設定値の総和を指定します。
例えば、7-E-1 なら 8+2+0=10(0xA)
を指定します。
0x09
:暗号化機能暗号化機能の有無を指定します。
0x0A
:暗号化キー16バイトの暗号化キーを指定します。
インタラクティブモードでは設定できないバイナリ列を格納できます。この場合、インタラクティブモードの表示が崩れる場合があります。
0x0C
:区切り文字区切り文字列の指定を行います(0x00
-0xFF
)。
サイレントモード
サイレントモードでは、起動後に受信回路を動作させず、解除するまでパケットを受信しません。起動後に外部へ接続したマイコンから0xDB
コマンドによる設定を完了してから受信を始める際に利用します。
設定方法 インタラクティブモードで以下の設定を行います。
r: Role
に 80
を足しておく。例えば、通常の親機や子機なら80
とする。m: UART mode
を書式モード(A
/B
)としておく。動作確認 起動直後に出力される DB F1 応答 の内容を確認します。
解除方法 DB F8 要求 を行います(アスキー形式::DBF8101D<CR><LF>
)。
注意点 サイレントモードの再設定はできません。 サイレントモードが有効のときに送信コマンドを入力した場合の動作は未定義です。 4.1.2.2 - シリアル通信アプリの書式モード(バイナリ形式) 送受信双方の出力にヘッダを付加するモード(バイナリ形式)
書式モードは、送受信双方の出力にヘッダを付加します。バイナリ形式では、データをそのまま表現します。
概要 送信側の端末へ特定の書式に従ったデータを入力すると、受信側の端末も特定の書式に従ったデータを出力します。
16進数で表すデータは、バイナリデータのまま表現します。
送信側の入力 受信側の出力 簡易形式/拡張形式のデータ → 簡易形式/拡張形式のデータ
TWELITE UART では、SET
ピンを GND
へ接続して起動すると書式モード(アスキー)が有効となります。 TWELITE / TWELITE DIP では、EX1
ピンを GND
へ接続して起動すると書式モード(バイナリ)が有効となります。 扱うことのできる書式の形式は2種類あります。
簡易形式:論理デバイスIDだけを使用。超簡単!標準アプリのUART伝送機能と互換性あり 拡張形式:論理デバイスIDに加えて、シリアルIDや再送回数などの送信オプションを使用できる 例えば、5バイトのバイナリデータ 0x48 0x45 0x4C 0x4C 0x4F
は、簡易形式を使って次のように送信できます。
以降、バイナリデータ表現の 0x
を省略します。
例えば、0x48 0x45 0x4C 0x4C 0x4F
は 48 45 4C 4C 4F
と表します。
【送信側】
A5 5A 80 07 00 01 48 45 4C 4C 4F 43 04 <- 入力
A5 5A 80 04 DB A1 80 01 FB 04 <- 出力
【受信側】
A5 5A 80 07 78 01 48 45 4C 4C 4F 3B 04 <- 出力
基本の書式 基本形式や拡張形式で表現したデータ列を送信するときは、バイナリデータのまま扱います。
ヘッダ 長さ ペイロード チェックサム フッタ A5 5A
ペイロード長 00
-FF
の繰り返しペイロードのXOR EOT
すべてバイナリ 先頭は A5 5A
の2バイト ペイロード長はバイト数を2バイトで表現、0x8000
とORをとる チェックサムはペイロードのXOR 末端は EOT を表す 0x04
(入力時は省略可) ビッグエンディアン 例えば、バイナリデータ 00 11 22 33 AA BB CC
は次のように表現します。
A5 5A 80 07 00 11 22 33 AA BB CC DD 04
デバッグが面倒ですが、マイコン間の通信では高い効率を誇ります。
親機と子機の区別 書式モードは、親機と子機を区別します。
親子間では、アプリケーションIDと周波数チャネル を合わせる必要があります。
送信元の判別 書式モードでは、受信したデータから送信元を判別できます。
簡易形式の書式では論理デバイスIDを、拡張形式の書式では論理デバイスIDに加えて拡張アドレスを利用します。
拡張アドレスは、TWELITE 本体に記載された7ビットのシリアルIDの先頭へ0x8
を付加したものです。
簡易形式の書式 書式モードの簡易形式を利用する場合は、次の書式に従います。
送信側の入力 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+2 0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0x80
未満の任意の値2 [uint8]
任意のデータ 長さ\(N\)のバイト列(\(N\leqq80\)を推奨) uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
受信側の出力 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+2 0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 送信側で指定した0x80
未満の値 2 [uint8]
任意のデータ 長さ\(N\)のバイト列 uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
送信側の出力(応答メッセージ) # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 4 0 uint8
送信元の論理デバイスID 0xDB
のみ:自身を示す1 uint8
コマンド番号 0xA1
のみ2 uint8
応答ID 128
-255
(0x80
-0xFF
)の範囲で続き番号を示す3 uint8
処理結果 成功1
,失敗0
uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
使用例 親機から全子機に対してバイト列 11 22 33 AA BB CC
を送信する例を示します。
【送信側:親機】
A5 5A 80 08 78 01 11 22 33 AA BB CC A4 04 <- 入力
A5 5A 80 04 DB A1 80 01 FB 04 <- 出力
末尾の0xA4
はチェックサム:0x78
から0xCC
までのXOR。
【受信側:全子機】
A5 5A 80 08 00 01 11 22 33 AA BB CC DC 04 <- 出力
末尾の0xDC
はチェックサム:0x00
から0xCC
までのXOR。
拡張形式の書式 書式モードの拡張形式を利用する場合は、次の書式に従います。
送信側の入力 送信先の指定に論理デバイスIDを使用する場合 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+\(M\)+3 0 uint8
送信先の論理デバイスID 親機0x00
,子機0x01
-0x64
,全子機0x78
1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 任意の値 3 [uint8]
オプション 長さ\(N\)のオプション列 3+\(N\) [uint8]
任意のデータ 長さ\(M\)のバイト列(\(M\leqq80\)を推奨) uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
送信先の指定に拡張アドレスを使用する場合 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+\(M\)+7 0 uint8
拡張アドレスの指定 0x80
のみ1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 任意の値 3 uint32
送信先の拡張アドレス シリアルIDの先頭へ0x8
を加えた値 7 [uint8]
オプション 長さ\(N\)のオプション列 7+\(N\) [uint8]
任意のデータ 長さ\(M\)のバイト列(\(M\leqq80\)を推奨) uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
オプション列の詳細 拡張形式では、オプション列を指定することで細かな設定を行うことができます。
オプション列は、オプションのIDと引数の繰り返しで表現します。終端は 0xFF
とします。
オプションを指定しない場合は0xFF
の1バイトだけを指定します。
入力後1秒が経過すると、送信処理はタイムアウトします。また、内部のバッファが処理待ちで埋まってしまい、新しい要求を受け付けることができない場合があります。アプリケーション再送や遅延を設定する場合は、極端な値に設定しないように注意してください。
0x01
:MAC ACKの有効化MAC層のACK(確認応答)を有効化します。
頻繁にデータを送信する場合には適しませんが、信頼性を向上できる場合があります。
中継機は利用できません。また、送信先を全子機(0x78
)とするときは利用できません。
0x02
:アプリケーション再送の有効化MAC ACK を使用するときは、0x00
-0x0F
を指定します。送信に成功するまで、それぞれ0-16回の再送を行います。
MAC ACK を使用しないときは、0x81
-0x8F
を指定します。必ず1-16回の再送を行います。
応答メッセージは、すべての再送が終了してから出力します。
0x03
:初回送信の遅延の最小値初回送信までの遅延の最小値をミリ秒で指定できます。
0x04
:初回送信の遅延の最大値初回送信までの遅延の最大値をミリ秒で指定できます。
0x05
:アプリケーション再送の間隔アプリケーション再送を有効化した際の再送間隔をミリ秒で指定します。
0x06
:平行要求の許可平行要求を許可します。
平行要求を許可すると、要求を完了するまでブロックせず、次の要求処理を受け付けることができるようになります。
例えば 0.5 秒の遅延を設定した要求を3回連続して入力した場合、初期状態では 0.5 秒後、1.0秒後、1.5秒後と順番に処理します。ところが、平行要求を許可した場合は、0.5秒後に順不同で送信要求を処理します。なおパケット分割を必要とする場合は使用できません。
受信側の端末は、常に新しいデータを採用します。平行要求を許可していると、新しいデータのあとに古いデータが届き、古いデータが無視されてしまうことがあります。
0x07
:応答メッセージの無効化送信側へデータを入力した際に出力される応答メッセージを無効とします。
0x08
:送信後スリープ送信後、速やかに本体をスリープさせます。
RX
が立ち上がりエッジを検知すると、スリープから復帰します。何か1バイトのデータを入力してください。
スリープ復帰後、UART の初期化が終わると入力を受け付けます。
受信側の出力 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(M\)+14 0 uint8
送信元の論理デバイスID 親機0x00
,子機0x01
-0x64
,未設定子機0x78
1 uint8
コマンド番号 0xA0
のみ2 uint8
応答ID 送信側で指定した値 3 uint32
送信元の拡張アドレス シリアルIDの先頭へ0x8
を加えた値 7 uint32
送信先の拡張アドレス 論理デバイスID使用時は0xFFFFFFFF
11 uint8
LQI 受信時の電波通信品質 12 uint16
続くバイト列の長さ バイト数\(M\)を表す 14 [uint8]
任意のデータ 長さ\(M\)のバイト列 uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
送信側の出力(応答メッセージ) # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 4 0 uint8
送信元の論理デバイスID 0xDB
のみ:自身を示す1 uint8
コマンド番号 0xA1
のみ2 uint8
応答ID 入力時に指定した値 3 uint8
処理結果 成功1
,失敗0
uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
使用例 親機から子機に対してバイト列 11 22 33 AA BB CC
を送信する例を示します。
論理デバイスIDを指定する例 親機から論理デバイスID0x01
の子機へ送信する例を示します。
【送信側:親機】
A5 5A 80 0A 01 A0 01 FF 11 22 33 AA BB CC 82 04 <- 入力
A5 5A 80 04 DB A1 01 01 7A 04 <- 出力
末尾の0xC1
はチェックサム:0x42
から0xCC
までのXOR。
【受信側:子機】
A5 5A 80 14 00 A0 01 82 03 68 41 FF FF FF FF FF 00 06 11 22 33 AA BB CC 2D 04 <- 出力
末尾の0x2D
はチェックサム:0x00
から0xCC
までのXOR。
拡張アドレスを指定する例 親機から拡張アドレス0x820163B2
(シリアルID0x20163B2
)の子機へ送信する例を示します。
【送信側:親機】
A5 5A 80 0E 80 A0 01 82 01 63 B2 FF 11 22 33 AA BB CC 51 04 <- 入力
A5 5A 80 04 DB A1 01 01 7A 04 <- 出力
末尾の0x51
はチェックサム:0x80
から0xCC
までのXOR。
【受信側:子機】
A5 5A 80 14 00 A0 01 82 03 68 41 82 01 63 B2 FF 00 06 11 22 33 AA BB CC 7F 04 <- 出力
末尾の0x7F
はチェックサム:0x00
から0xCC
までのXOR。
MAC ACKを使用する例 親機から論理デバイスID0x01
の子機へ MAC ACK を使用して送信する例を示します。
【送信側:親機】
A5 5A 80 0B 01 A0 01 01 FF 11 22 33 AA BB CC 83 04 <- 入力
A5 5A 80 04 DB A1 01 01 7A 04 <- 出力
末尾の0x83
はチェックサム:0x01
から0xCC
までのXOR。
【受信側:子機】
A5 5A 80 14 00 A0 01 82 03 68 41 00 00 01 01 FF 00 06 11 22 33 AA BB CC 2D 04 <- 出力
末尾の0x2D
はチェックサム:0x00
から0xCC
までのXOR。
遅延を設ける例 親機から論理デバイスID0x01
の子機へ 768ms の遅延を設けて送信する例を示します。
【送信側:親機】
A5 5A 80 0D 01 A0 01 03 03 00 FF 11 22 33 AA BB CC 82 04 <- 入力
A5 5A 80 04 DB A1 01 01 7A 04 <- 出力
末尾の0x82
はチェックサム:0x01
から0xCC
までのXOR。
【受信側:子機】
A5 5A 80 14 00 A0 01 82 03 68 41 FF FF FF FF FF 00 06 11 22 33 AA BB CC 2D 04 <- 出力
末尾の0x2D
はチェックサム:0x00
から0xCC
までのXOR。
0xDB
コマンドインタラクティブモードの設定を行う代わりに、UART から 0xDB
コマンドを入力することでモジュールの操作や設定を行うことができます。
4.1.2.2.1 - シリアル通信アプリ 書式モード(バイナリ)の 0xDB コマンド 書式モード(バイナリ)におけるインタラクティブモードを使用しない設定機能
書式モードでは、インタラクティブモードの代わりに0xDB
コマンドを使うことで、UART接続されたデバイスから動的に設定を行えます。
入力の書式 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+2 0 uint8
送信先の論理デバイスID 自身を示す0xDB
のみ 1 uint8
コマンド番号 後述の値 から選択2 [uint8]
パラメータ 設定値を示す長さ\(N\)のバイト列(オプション) uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
コマンド番号の一覧 0xF0
:ACKの有効化ACK 応答の要求を行います。
パラメータはありません。
応答の書式 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 3 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF0
のみ2 uint8
データ 0x01
のみuint8
チェックサム XOR uint8
フッタ EOT (0x04
)
0xF1
:端末情報の取得アドレス等の情報を表示します。起動時にも出力されます。
パラメータはありません。
応答の書式 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 17 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF1
のみ2 uint32
アプリケーションID 6 uint32
バージョン番号 1.4.7
なら00010407
10 uint8
論理デバイスID 11 uint32
シリアルID 15 uint8
サイレントモードの状態 有効1
, 無効0
16 uint8
ネットワークの状態 UP1
, DOWN0
uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
0xF2
:端末設定の適用設定を適用します。
適用するパラメータは、
下記に記載 の識別子とデータの組み合わせで構成します。
応答の書式 成功した場合 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+2 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 [uint8]
設定内容 長さ\(N\)の識別子とデータ の繰り返し uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
失敗した場合 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 3 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 uint8
エラー 0xFF
のみuint8
チェックサム XOR uint8
フッタ EOT (0x04
)
0xF3
:端末設定の取得設定を取得します。
取得するパラメータは、
下記に記載 の識別子で構成します。
応答の書式 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 \(N\)+2 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF3
のみ2 [uint8]
設定内容 長さ\(N\)の識別子とデータ の繰り返し uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
0xF8
:端末の制御起動時にサイレントモードを有効としていた場合に、これを解除します。
応答の書式 # データ 内容 備考 uint8
ヘッダ 0xA5
のみuint8
ヘッダ 0x5A
のみuint16
データ長 4 0 uint8
送信先の論理デバイスID 0xDB
のみ1 uint8
コマンド番号 0xF8
のみ2 uint8
データ 0x11
のみ3 uint8
状態 解除済み1
, 未解除0
uint8
チェックサム XOR uint8
フッタ EOT (0x04
)
0xFD
:端末設定の消去設定を初期化し、本体をリセットします。
パラメータおよび応答はありません。
0xFE
:端末設定の保存適用した設定を保存し、本体をリセットします。
パラメータおよび応答はありません。
0xFF
:端末のリセット適用した設定を破棄し、本体をリセットします。
パラメータおよび応答はありません。
パラメータの一覧(0xF2
/0xF3
) 0xF2
:端末設定の適用 および 0xF3
:端末設定の取得 のパラメータは、識別子とデータ(ビッグエンディアン)の繰り返しで表現します。
0x00
:アプリケーションIDアプリケーションIDを指定します。
0x01
:周波数チャネルマスク周波数チャネルのビットマスクを指定します。
使用するチャネルのビットを立てます。例えば、11チャネルを使う場合は1<<11
です。
0x02
:再送回数と出力電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
下位の1バイトのみを使用します。そのうち上位の4ビットが再送回数(0
-9
)、下位の4ビットが送信出力(0
-3
)です。例えば、8回再送/出力3 であれば 0x0083
です。
0x03
:論理デバイスID論理デバイスIDを指定します。
0x04
:役割子機のみ有効です。以下の値を指定します。通常はネットワーク層を利用しない配送方式を選択してください。
ネットワーク層を利用しない配送方式 0
:通常の指定(親機または子機)1
-3
:中継子機(論理デバイスIDを1
-100
または 120
とします)1
-3
の数値は最大中継段数を指します。最大中継段数まで再送を繰り返す方式のため、中継機の配置や数によっては重複したパケットを中継します。ネットワーク層を利用する配送方式
サイレントモードを有効化するには、上記の数値に80
を足してください。例えば 93
は「ネットワーク層利用かつサイレントモード」です。
0x05
:中継レイヤ中継レイヤの番号です。中継機は中継レイヤ数の上位(より小さい値)の中継機・親機への接続を試みます。役割 を12
としているときにだけ有効です。
0x06
:通信モード0
:透過モード1
:書式モード(バイナリ)2
:書式モード(バイナリ)3
:チャットモード4
:ヘッダ付き透過モード0x07
:ボーレートUART ボーレートを指定します。
0x08
:パリティ以下の設定の組み合わせにおいて、設定値の総和を指定します。
例えば、7-E-1 なら 8+2+0=10(0xA)
を指定します。
0x09
:暗号化機能暗号化機能の有無を指定します。
0x0A
:暗号化キー16バイトの暗号化キーを指定します。
インタラクティブモードでは設定できないバイナリ列を格納できます。この場合、インタラクティブモードの表示が崩れる場合があります。
0x0C
:区切り文字区切り文字列の指定を行います(0x00
-0xFF
)。
サイレントモード
サイレントモードでは、起動後に受信回路を動作させず、解除するまでパケットを受信しません。起動後に外部へ接続したマイコンから0xDB
コマンドによる設定を完了してから受信を始める際に利用します。
設定方法 インタラクティブモードで以下の設定を行います。
r: Role
に 80
を足しておく。例えば、通常の親機や子機なら80
とする。m: UART mode
を書式モード(A
/B
)としておく。動作確認 起動直後に出力される DB F1 応答 の内容を確認します。
解除方法 DB F8 要求 を行います(バイナリ形式:A5 5A 80 03 DB F8 10 33 04
)。
注意点 サイレントモードの再設定はできません。 サイレントモードが有効のときに送信コマンドを入力した場合の動作は未定義です。 4.1.2.3 - シリアル通信アプリのチャットモード プロンプト表示とエコーバックを行うモード
チャットモードは、プロンプト表示とエコーバックによりテキストチャットを実現します。
MONOSTICK を PC 等へ接続することで、複数の端末同士のチャットを行うことができます。
概要 テキストチャットを実現します。
送信側の入力 受信側の出力 任意の文字列 → 任意の文字列+補助情報
プロンプトの表示とエコーバック(入力した文字の出力)を行います。すべての端末は子機として、同報通信を行います。
例えば、ある端末から他の端末へ Hello
という文字列を送信する場合は、次のように振る舞います。
【送信側】
810A4778:0> Hello <- 入力
810A4778:1> <- 出力
【受信側】
[810A4778:0] Hello <- 出力
82018CA0:0> <- 出力
チャットモードは、プロンプトの表示とエコーバック(自身へ入力された文字の出力)を行います。
全ての端末は子機としたうえで、送信内容はブロードキャストします。すべての端末と通信できますが宛て先は指定できません。またバイナリデータは送れません。文字列のみ対応しています(0x00
-0x1F
, 0x7F
は送信不可)。
中継は3段(3ホップ)まで対応しています。初期設定では中継しません。
親機と子機の区別 チャットモードは、親機と子機を区別しません。
アプリケーションIDと周波数チャネル が同一であれば、どの端末へ入力したデータもほかの端末へと送信されます。
ネットワークの構成イメージ
送信元の判別 受信側に出力される補助情報の識別情報から送信元を判別できます。
インタラクティブモードのh: Header format
を空欄としたときは、7桁のシリアルIDの先頭へ0x8
を付与した拡張アドレスを使用します。例えば、以下の出力では送信元のシリアルIDが0x10A4778
であったと分かります。
インタラクティブモードのh: Header format
へ任意の文字列を設定したときは、それをハンドル名として利用します。ただし、ハンドル名は無線パケットに格納するデータを消費します。
送信側の入力書式 プロンプトに続けて、メッセージと改行文字を入力します。
データ 内容 備考 [char]
メッセージ 0x00
-0x1F
, 0x7F
は不可char
CR (0x0D
/'\r'
) 単体でも可 char
LF (0x0A
/'\n'
) 単体でも可
受信側の出力書式 補助情報に続けて、受信したメッセージを出力します。
補助情報は、モジュールの拡張アドレスまたはハンドル名と、続き番号を含みます。
データ 内容 備考 char
補助情報のヘッダ [
のみ[char]
識別情報 8桁の拡張アドレスまたはハンドル名 char
補助情報の区切り文字 :
のみ[char]
続き番号 0
から開始char
補助情報のフッタ ]
のみchar
区切り文字 半角スペースのみ [char]
メッセージ char
フッタ CR (0x0D
/'\r'
) char
フッタ LF (0x0A
/'\n'
)
エラー等の場合は、(err)
(canceled)
といった ()
書きのメッセージを出力します。
その他の入力 エスケープシーケンスに対応したターミナルでは、以下の制御コマンドを使用できます。
Ctrl-L
:画面のクリアCtrl-C
:入力のキャンセルBS
/DEL
:カーソルを戻す4.1.2.4 - シリアル通信アプリの透過モード 純粋にUARTを無線化するモード
透過モードは、ヘッダの付加やエコーバック、プロンプト表示を行わず、有線接続された UART と同じような振る舞いを実現します。
外部マイコン同士を簡単に接続できますが、書式を用いて通信を最適化するには書式モード(アスキー /バイナリ )が適しています。
概要 純粋にUARTを無線化します。
送信側の入力 受信側の出力 任意のデータ → 任意のデータ
書式を必要としないため、既存の UART 通信を簡単に無線化できます。
一方で、データの区切りがあいまいになってしまうほか、受信側の出力から送信元を判別できないといった欠点があります。
初期状態では、送信トリガ文字にCRLFを指定しています。したがって、送信側へ入力されたデータをCRLFで区切り、CRLF よりも前のデータを送信します。
例えば、送信側の端末へ Hello<Enter>
と入力すると、受信側の端末はそのまま Hello
を出力します。
【送信側】
【受信側】
連続して入力された文字列を80バイトごとに分割して送信します。トリガ文字までのデータは通常80バイト以下としてください。
全ての端末は子機としたうえで、送信内容はブロードキャストします。すべての端末と通信できますが宛て先は指定できません。アスキー文字だけでなく、バイナリデータも送信できます。
中継は3段(3ホップ)まで対応しています。初期設定では中継しません。
親機と子機の区別 透過モードは、親機と子機を区別しません。
アプリケーションIDと周波数チャネル が同一であれば、どの端末へ入力したデータもほかの端末へと送信されます。
ネットワークの構成イメージ
送信元の判別 透過モードでは、送信元を判別できません。
送信元を判別するには、送信側へ入力するデータそのものに送信元の情報を含める必要があります。
送信トリガ 送信側の入力に書式はありませんが、データはある時点で分割されたのち、パケットごとに無線で送信されます。
したがって、次に挙げる送信トリガを意識しなくてはなりません。
データ入力後のタイムアウトを迎えたとき 入力データが最小データサイズを満たしたとき 送信トリガ文字を受け取ったとき
送信トリガの優先順位 タイムアウトを迎えたときは、強制的に送信します。また、最小データサイズを設定している場合は、そのサイズを満たしていないと送信トリガ文字は無効となります。
送信トリガの設定は、インタラクティブモードのk
:送信トリガ 項目から指定します。
設定例 送信トリガ文字をLF、最小データサイズを8バイト、タイムアウトを30msとする場合は次のように設定します。
m: set UART mode (D)
k: set Tx Trigger (sep=0x0a, min_bytes=8 dly=30[ms])
o: set option bits (0x00000100)
4.1.2.5 - シリアル通信アプリのヘッダ付き透過モード 受信側の出力にだけヘッダを付加するモード
ヘッダ付き透過モードは、受信側の出力にだけ補助情報を付加します。
概要 初期状態で有効となっています。
送信側の端末へ任意のデータを入力すると、受信側の端末は受信した内容に特定の書式で補助情報を付加したデータを出力します。
送信側の入力 受信側の出力 任意のデータ → 任意のデータ+補助情報
初期状態では、送信側へ入力されたデータをCRLFで区切り、CRLF よりも前のデータを送信します。
例えば、送信側の端末へ Hello<Enter>
と入力すると、受信側の端末は補助情報を含んだ書式で Hello
を出力します。送信側の端末も送信完了といったメッセージを伝える書式を出力します。
【送信側】
Hello <- 入力
;U;00004;219;0x820163B2;000;000;0,1,Hel...;6E; <- 出力
【受信側】
;U;00003;000;0x820163B2;255;000;Hello;42; <- 出力
受信側が出力する補助情報は、送信元のアドレスや受信時の電波強度、チェックサム等を含みます。補助情報の書式はカスタマイズできます。
親機と子機の区別 ヘッダ付き透過モードは、親機と子機を区別しません。
アプリケーションIDと周波数チャネル が同一であれば、どの端末へ入力したデータもほかの端末へと送信されます。
ネットワークの構成イメージ
送信元の判別 ヘッダ付き透過モードで受信したデータからは、送信元を判別できます。
受信側が出力する補助情報を表すヘッダに含むことのできる論理デバイスID やシリアルIDのデータを利用します。
宛先を指定することはできません。受信側へ接続されたデバイスが判別しなくてはなりません。
受信側の出力書式 出力書式はセミコロン(;
)区切りとして表現されます。
【初期状態における出力例】
;U;00777;120;0x81025A17;120;013;HELLO;79;
この出力例は、次のように解釈できます。
データ 内容 値 U
char
固定値 U
00777
uint16
出力時のタイムスタンプ 777
秒120
uint8
送信元の論理デバイスID 120
IDなし子機0x81025A17
uint32
送信元の拡張アドレス 81025A17
120
uint8
LQI(電波通信品質) 120/255
013
uint8
送信元の続き番号 13
HELLO
[uint8]
入力データ HELLO
79
uint8
XORチェックサム 0x79
送信元の論理デバイスIDは、自身の応答メッセージのとき219
となります。
拡張アドレスは、TWELITE 本体に記載された7ビットのシリアルIDの先頭へ0x8
を付加したものです。
ヘッダフォーマットによるカスタマイズ 受信側の出力書式は、ヘッダフォーマットに従います。
ヘッダフォーマットを変更することで、受信側が出力する補助情報の内容やチェックサムの計算範囲をカスタマイズできます。
初期状態では、ヘッダフォーマットを ;U;%t;%i;0x%A;%q;%s;<*;%X;\n
としています。
ヘッダフォーマットの変更は、インタラクティブモードの h: set header format
から行います。
最も簡単な書式 最も簡単な書式を表すヘッダフォーマットは *\n
です。受信したデータへ CRLF の改行文字を付与して出力します。
h: set header format [*\n]
この場合にHELLO
を送信すると、次のように振る舞います。
【受信側】
HELLO<CR><LF> または HELLO<LF>
【送信側】
フォーマットを構成する特殊文字 ヘッダフォーマットに次の特殊文字を含めることで、出力内容をカスタマイズできます。
全般 内容 *
受信したデータ &hl
任意の文字(アスキー)(例:&20
は空白) <
チェックサム計算の開始位置(未設定で先頭から) >
チェックサム計算の終了位置(v1.4.6以降のみ)
\
(バックスラッシュ・¥)に続くもの内容 \n
CRLF (0x0D
0x0A
) \t
TAB \*
*
\%
%
\<
<
\>
>
\&
&
%
に続くもの内容 長さ データ %A
送信元アドレス(32bit) 8桁 16進数 %a
送信元アドレス(32bit) 10桁 16進数 %I
送信元論理アドレス(8bit) 2桁 16進数 %i
送信元論理アドレス(8bit) 3桁 10進数 %T
現在のシステム時間(秒) 4桁 16進数 %t
現在のシステム時間(秒) 5桁 10進数 %S
送信元が設定した続き番号 2桁 16進数 %s
送信元が設定した続き番号 3桁 16進数 %Q
受信時の電波強度 2桁 16進数 %q
受信時の電波強度 3桁 10進数 %X
チェックサム 2桁 16進数 %x
チェックサム 3桁 10進数
チェックサムの計算 チェックサムはデータの先頭あるいはヘッダフォーマットの<
を指定した箇所から%X
,%x
の直前までを XOR(排他的論理和)にて計算します。
初期状態の例 初期状態ではヘッダフォーマットを ;U;%t;%i;0x%A;%q;%s;<*;%X;\n
としており、チェックサムの計算範囲は*;
です。
すなわち、HELLO
を送信した場合は HELLO;
のバイナリデータを対象とするため、チェックサムは0x79
です。
【Python による検証コード】
from functools import reduce
def main ():
data = "HELLO;"
checksum = reduce(lambda x, y: x ^ y, data. encode("ascii" ))
print(f " { data} -> { hex(checksum)} " )
if __name__ == "__main__" :
main() # HELLO; -> 0x79
その他の例 例えば、ヘッダフォーマットを ;%I;*;%X
とした場合を考えます。
<
を指定していないため、チェックサムの計算範囲は;%I;*;
です。
すなわち、HELLO
を送信した場合は ;000;HELLO;
のバイナリデータを対象とするため、チェックサムは 0x49
です。
【Python による検証コード】
from functools import reduce
def main ():
data = ";000;HELLO;"
checksum = reduce(lambda x, y: x ^ y, data. encode("ascii" ))
print(f " { data} -> { hex(checksum)} " )
if __name__ == "__main__" :
main() # ;000;HELLO; -> 0x49
送信トリガ 送信側の入力に書式はありませんが、データはある時点で分割されたのち、パケットごとに無線で送信されます。
したがって、次に挙げる送信トリガを意識しなくてはなりません。
データ入力後のタイムアウトを迎えたとき 入力データが最小データサイズを満たしたとき 送信トリガ文字を受け取ったとき
送信トリガの優先順位 タイムアウトを迎えたときは、強制的に送信します。また、最小データサイズを設定している場合は、そのサイズを満たしていないと送信トリガ文字は無効となります。
送信トリガの設定は、インタラクティブモードのk
:送信トリガ 項目から指定します。
設定例 送信トリガ文字をLF、最小データサイズを8バイト、タイムアウトを30msとする場合は次のように設定します。
m: set UART mode (E)
k: set Tx Trigger (sep=0x0a, min_bytes=8 dly=30[ms])
o: set option bits (0x00000100)
4.1.3 - シリアル通信アプリのカスタムデフォルト機能 デフォルトの設定を変更したファームウェアの作成
カスタムデフォルト機能によって、ファームウェアに含まれるデフォルトのパラメータを変更できます。
例えば、ボーレートを 115200bps から 9600bps へ変更したファームウェアを作成しておけば、最初から 9600bps で使用できます。
設定手順 1. 設定を適用 インタラクティブモード の設定を変更し、S
を押下して保存します。
2. 設定内容をダウンロード xmodem プロトコルのデータをダウンロードできるソフトウェアを用意します。
xmodem の仕様はチェックサム/128バイトパケットです。拡張された 1KB や CRC の形式は使用しません。
再度インタラクティブモードへ入った状態(項目を選ぶ前の状態)として、xmodem のダウンロードを要求します。
TeraTerm では、次の操作を行います。
ファイル > 転送 > XMODEM > 受信...
を選択Option > Checksum, Binary
を選択ファイル名を指定(例:conf.bin
) 開く
ボタンを押下
macOS や Linux 等では、lrzsz
を利用できます。
lrx --binary --xmodem /path/to/conf.bin
通常は screen
でインタラクティブモードへ入り、Ctrl+A
の押下後 :exec !! lrx -b -X /path/to/conf.bin
を実行します
ダウンロードに成功すると、128バイトのファイルを生成します(xmodem の実装によっては、小さいサイズになることもあります)。
3. カスタムバイナリの作成 ダウンロードしたファイルをファームウェアのバイナリファイルの末尾へ連結し、カスタムバイナリを作成します。
連結には、コマンドラインツールや汎用のファイル連結ツールを使用してください。
実行例 ダウンロードした xmodem のファイルを conf.bin
、元のバイナリファイルをApp_Uart_BLUE_L1305_V1-4-X.bin
、作成するカスタムバイナリをApp_Uart_custom_V1-4-X.bin
とした場合の例を示します。
【Windows】
copy App_Uart_BLUE_L1305_V1-4 -X.bin App_Uart_custom_V1-4 -X.bin
type conf.bin >> App_Uart_custom_V1-4 -X.bin
【macOS / Linux】
cat App_Uart_BLUE_L1305_V1-4-X.bin conf.bin > App_Uart_custom_V1-4-X.bin
4. カスタムバイナリの書き込み 連結したカスタムバイナリを TWELITE へ書き込みます。
カスタムバイナリを書き込んでからインタラクティブモードへ入ると、最初の行の末尾に C-
を表示します。
--- CONFIG/TWE UART APP V1-04-2/SID=0x81001f1c/LID=0x78 C- ---
カスタムバイナリに対してインタラクティブモードから設定を上書きして保存すると、C-
の代わりにCE
と表示します。
--- CONFIG/TWE UART APP V1-04-2/SID=0x81001f1c/LID=0x78 CE ---
4.1.4 - シリアル通信アプリの通信における注意点 安定した通信を実現するための注意点
安定した通信を実現するための注意点を記載しています。
UART のデータ入出力 UART の入力には、入力側に 4KB、出力側に 4KB のバッファを確保しています。2系統のUARTを出力する場合は、各系統の入力に 2KB、出力に 2KB を利用します。
書式モードやチャットモードでバッファのサイズを意識する場面は多くありませんが、ヘッダ付き透過モードや透過モードで連続的に系列を入力する場合や、書式モードであっても多数の系列を一度に入力する場合は、バッファサイズの上限を意識する必要があります。出力においても、遅いボーレートを設定した場合には、無線で受信したデータの出力が間に合わない可能性があります。
バッファの上限を超えた場合は、その境界でのデータは保護されません。データ抜けが発生します。特に入力側では後述のフロー制御ピンを参照することを検討してください。
UART のフロー制御 入力側のフロー制御については、 RTS ピン同様の振る舞いをするように実装しています。使用するピンは PWM1
(DIO5
) であり、その対象は主UARTポートです。入力を受け付けないときに High、入力を受け付けるときに Low 状態となります。なお出力側のフロー制御には対応していません。受信側のデバイスでは、十分なボーレートと処理速度を確保してください。
電源投入・リセット直後は High です。UART が初期化されると Low。 UART の入力バッファが 7/8 を超えたときに High となります。下回ると Low。 透過モードでは、パケット送信中は High となります。 無線通信エラーの対策 受信側にデータ抜けが発生する場合は、無線の再送回数を増やしてください。
追加送信するパケットの数を増やすことで、受信の成功率を向上できる場合があります。
再送回数はインタラクティブモード で設定できます(x: set RF Conf
)。
4.1.5 - インタラクティブモード(シリアル通信アプリ) インタラクティブモードによる設定変更
インタラクティブモードでアプリの詳細設定を行うことができます。
ここではシリアル通信アプリ(App_Uart)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
M3
ピン をGND
へ接続していないことを確認してください。
表示例 次のような画面を表示します。
--- CONFIG/TWE UART APP V1-04-5/SID=0x82018ca0/LID=0x78 -- ---
a: set Application ID (0x67720103)
i: set Device ID (120=0x78)
c: set Channels (18)
x: set RF Conf (3)
r: set Role (0x0)
l: set Layer (0x1)
b: set UART baud (38400)
B: set UART option (8N1)
m: set UART mode (E)
k: set Tx Trigger (sep=0x0d0a, min_bytes=0 dly=0[ms])
h: set header format [;U;%t;%i;0x%A;%q;%s;<*>;%X;\n]
C: set crypt mode (0)
o: set option bits (0x00000100)
---
S: save Configuration
R: reset to Defaults
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
識別の必要がない、できない場合は120
としてください。識別の必要がある場合は、子機は1
-100
の任意の値に、親機は0
あるいは121
としてください。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
r
:役割子機のみ有効です。以下の値を指定します。通常はネットワーク層を利用しない配送方式を選択してください。
ネットワーク層を利用しない配送方式 0
:通常の指定(親機または子機)1
-3
:中継子機(論理デバイスIDを1
-100
または 120
とします)1
-3
の数値は最大中継段数を指します。最大中継段数まで再送を繰り返す方式のため、中継機の配置や数によっては重複したパケットを中継します。ネットワーク層を利用する配送方式 書式モードのみ対応しています。
サイレントモードを有効化するには、上記の数値に80
を足してください。例えば 93
は「ネットワーク層利用かつサイレントモード」です。
l
:中継レイヤ中継レイヤの番号です。中継機は中継レイヤ数の上位(より小さい値)の中継機・親機への接続を試みます。役割 を12
としているときにだけ有効です。
m
:通信モードA
:書式モード(アスキー)B
:書式モード(バイナリ)C
:チャットモードD
:透過モードE
:ヘッダ付き透過モードb
:UART代替ボーレートBPS
ピンをGND
へ接続して起動した場合に選択される代替ボーレートを38400
bpsから上書きします。
値は9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
BPS
ピンの状態を無視して強制的に代替ボーレート設定を適用するには、オプションビットの強制的に代替ボーレートを適用 を有効とします。
B
:UARTオプションBit-Parity-Stop
の順で3文字を指定します。
k
:送信トリガ透過モードとヘッダ付き透過モードの入力へ適用する送信トリガを設定します。
カンマ,
で区切り、以下の順で入力してください。
送信トリガ文字 最小データサイズ タイムアウト 送信トリガ文字 この文字が入力されたときにパケットを送信します(最小データサイズを満たしていない場合を除く)。
インタラクティブモードでは、16進数のASCIIコードを指定します。先頭の0x
は無視されます。初期状態ではCRLFとしています。
送信されるデータには送信トリガ文字も含まれます。送信トリガ文字を有効とするには、オプションビット 0x00000100
を指定する必要があります(デフォルト指定済み)。
最小データサイズ 連続して扱うデータの最小サイズを指定します。最小データサイズを満たすまでのデータに送信トリガ文字が含まれていても、これは無効となります。
インタラクティブモードでは、バイト数として1
-80
の数値を指定します。0
で無効となります。初期状態では無効です。
タイムアウト 最後の入力からパケットを送信するまでの待ち時間を示します。
インタラクティブモードでは、ミリ秒単位で10
-200
の数値を指定します。0
で無効となります。初期状態では無効
すべての設定を有効とした場合の優先順位は次の通りです。
タイムアウト 最小データサイズ 送信トリガ文字 タイムアウトが設定されていれば、常に優先します。送信トリガ文字が設定されていても、最小データサイズに達するまでは送信されません。
h
:ヘッダ/ハンドル名ヘッダ付き透過モードに対してはヘッダのフォーマットを、チャットモードに対してはハンドル名を示します。
ヘッダ(ヘッダ付き透過モード) ヘッダ付き透過モードに対しては、ヘッダのフォーマット書式 を指定します。
ハンドル名(チャットモード) 相手端末に表示するハンドル名を指定します。
最大23文字です。送信するデータ(80バイト)の領域を消費します。
C
:暗号化暗号化機能の有無を指定します。
AES128bitの暗号化を有効とするには、1
を指定してください。
暗号化機能を有効とした端末は平文のメッセージも受信できますが、Ack 応答は利用できません。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
オプションビットの詳細 オプションビットの値の各ビットに紐付いた設定を解説します。
00000001
:M3
の内部プルアップを停止TWELITE DIP におけるスリープ設定用のピン M3
の内部プルアップを停止します。
プルアップ停止時には、オープン状態で起動しないでください。意図せずスリープしてしまう場合があります。
00000100
:送信トリガの有効化透過モードまたはヘッダ付き透過モードにおいて、送信トリガの設定 を有効とします。
00000200
:新たな入力系列を優先書式モード(アスキー・バイナリ)、透過モード、ヘッダ付き透過モードにおいて、送信完了前に複数の系列が入力された際、新しいものを優先します。
制御値や計測値を連続的に送信し、常に最新のデータを反映させたい場合に有効です。
00001000
:応答メッセージを停止書式モード(アスキー・バイナリ)、ヘッダ付き透過モードにおいて、送信完了時の応答メッセージを停止します。
00004000
:重複チェッカの緩和受信側において、重複チェッカの条件を緩和します。
重複チェッカは、中継などにより重複して届いてしまったパケットを排除するための仕組みです。
100ms以下など短い間隔で送信を行うと、異なるパケットであっても同一のものであると見なされてしまう場合があります(続き番号が異なる場合も含む)。
送信間隔を短く設定する場合や、たくさんの送信機を同時に使用する際は、この設定を有効としてください。
00010000
:強制的に代替ボーレートを適用起動時にBPS
ピンの入力が Low でなくとも、代替ボーレートの設定 を適用します。
インタラクティブモードも UART を使用するため、インタラクティブモードを使用するにはPC側のボーレートを合わせる必要があります。
00020000
:副ポートへ同時出力シリアル出力TX
の内容をシリアル副出力TX_SUB
にも適用します。
入出力用のバッファ(入力4KB,出力4KB)は、主ポート・副ポートで半々(入力2KB,出力2KB)の割り当てとなります。
00040000
:主ポートの切り替えシリアル入出力TX
/RX
とシリアル副入出力TX_SUB
/RX_SUB
を入れ替えます。
00100000
:中継レイヤを制限書式モード(アスキー・バイナリ)において、ネットワーク層を利用する配送方式 を指定した場合に、必ず1階層上位に位置する中継機や親機へ送信させます。通常、ネットワーク層を利用する配送方式では、上位層で最も電波通信品質の高い中継機や親機へ送信します。
中継機能について 通信距離が足りない場合や、障害物があって通信できない場合には、中継機を使用することが有用です。
中継機能を持った端末は、自身が受信したパケットを他の端末へ送信します。
中継機能の設定 通常は、インタラクティブモードへ入った状態で役割 の値を1
-3
へ変更します。初期値は0
で、中継機能を持ちません。
1
-3
の数値は最大中継段数を指します。例えば3
を指定すると最大3段まで中継されます。
親機子機の区別をする場合、子機のみ有効です。
中継段数や中継機を増やすと、送信されるパケットも増加します。同一の周波数チャネル内の通信が不安定となってしまう場合があります。
設定例 次のネットワーク構成は、赤色の端末の役割 を0
、青色の端末の役割 を3
とした場合を示します。
役割の設定による中継の例
赤色の端末を追加すると、赤色の端末同士で最大3段の中継を伴う通信を実現できます。
送信機や受信機を追加する例
5 - キューアプリ マニュアル モノの動きを無線でお知らせ。
キューアプリ(App_CUE)は磁気・加速度センサータグ TWELITE CUE専用のアプリです。
5.1 - キューアプリ マニュアル 最新版
機能 モノに装着することで動きや状態を無線で送信できます。
複数の無線タグからのデータを親機で収集可能 複数の無線タグを親機で制御可能 16チャネルで複数システムを個別に運用可能 グループ毎に異なるアプリケーションIDを設定することで、同一チャネルに複数システムを混在可能 暗号化と暗号化鍵の設定 5.1.1 - キューアプリの動作モード キューアプリの動作モード
5.1.1.1 - キューアプリのTWELITE CUEモード 衝撃の検知やドアの開閉、加速度の計測のすべてを行うことができるオールインワンモード
加速度の計測、衝撃の検知、姿勢の検知、磁石の検知といった機能をすべて利用できるオールインワンモードです。
工場出荷時は本モードに設定されております。
設定 本モードを使用する場合は以下の項目を設定してください。
設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 00000000
親機の出力 代表的な電池寿命 5秒に1度の定期送信のみの場合、約80日 5秒に1度の定期送信 + 1分に1度TWELITE CUEを動かした場合、約80日 1分に1度の定期送信のみの場合、約700日 1分に1度の定期送信 + 1分に1度TWELITE CUEを動かした場合、約565日
消費電流は試験用のサンプル個体の実測に基づき、CR2032の容量を220mAhとして計算しています。電池寿命は参考値であり、保証値ではありません。電池の性能や使用温度等の使用環境で変化します。
5.1.1.2 - キューアプリの動作センサーパルモード 動作センサーパルとして動作するモード
動作センサーパルと同等の機能を使用できるモードです。
連続で加速度を計測する際や衝撃の検知を行う際は本モードを使用します。
本モードは次の3つのモードに分けられます。
加速度計測モード 加速度を間欠もしくは連続で計測し、送信するモードです。
設定 TWELITE2525Aモードフラグ TWELITE 2525Aモードフラグを1(センサ固有パラメータを13000000)に設定すると、TWELITE 2525A のFIFO(通常)モード として動作します。TWELITE 2525Aの代替として使用したい場合にはこのモードをご使用ください。
加速度センサープロパティ 加速度センサープロパティで連続送信サンプル数やサンプリング周波数を変更できます。
これらの設定は足し合わせることで機能を組み合わせて使用できます。
設定値(16進) 説明 0x?3????00~0x?3????FF 間欠送信モード時に送信するサンプル数を設定できます。 送信するサンプル数は16サンプル(1パケット)単位で設定できます。 サンプル数=16+16x設定値 0x00000000 の場合:16サンプル(初期設定) 0x00000001 の場合:32サンプル : 0x00000007 の場合:128サンプル : 0x000000FF の場合:4096サンプル 0x?3???0??~0x?3???F?? 加速度のサンプリング周波数を変更できます。設定値毎のサンプリング周波数は下記の通りです。 0x00000000:25Hz(初期設定) 0x00000100:50Hz 0x00000200:100Hz 0x00000300:190Hz 0x00000400~0x00000F00:未定義
サンプル数を32以上に設定した場合、データは16サンプルごとに別のパケットへ分割されます。
例えば、サンプル数を32とした場合には、16サンプルのパケットが2回届きます 。32サンプルのパケットが1回届くのではないことに注意してください。
親機の出力 ムーブモード 動き出し(Move)やシェイク(Shake)を検出することができます。
通知パルのLEDを制御することができます。
設定 設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 01100000
親機の出力 使用上の注意 本モードは動きを検知してしてデータを送信します。 そのため、ゆっくり動かしたときは動きを検知できず、出力が変化しない場合があります。 その際は少し強めに動かしてください。
また、センサー固有パラメータ(p)を01000000にすると、動作検知の感度が厳しくなります。 もし、意図しないタイミングで電波を送信する場合は、センサー固有パラメータを01000000に設定してください。
ダイスモード TWELITE CUEが上に向いている面を検出することができます。
イベント検出モードと同様に通知パルのLEDを制御することができます。
設定 設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 02100000
親機の出力 使用上の注意 本モードは動きを検知して面の判定を行います。 そのため、ゆっくり動かしたときは面が判定できず、出力が変化しない場合があります。 その際は机に置く、軽く衝撃を与えるなどをしてください。
また、センサー固有パラメータ(p)を02000000にすると、動作検知の感度が厳しくなります。 もし、意図しないタイミングで電波を送信する場合は、センサー固有パラメータを02000000に設定してください。
代表的な電池寿命 加速度計測モード(間欠送信)で1分に1度送信した場合、約3.5年 加速度計測モード(連続送信)でサンプリング周波数が25Hzの場合、約20日 イベント検出モードもしくはダイスモードで1分に1度、TWELITE CUEを動かした場合、約3年
消費電流は試験用のサンプル個体の実測に基づき、CR2032の容量を220mAhとして計算しています。電池寿命は参考値であり、保証値ではありません。電池の性能や使用温度等の使用環境で変化します。
5.1.1.3 - キューアプリの開閉センサーパルモード 開閉センサーパルとして動作するモード
モノに装着し、磁石の有無によってその開閉を知ることができるモードです。
ドアの開閉や工場設備の稼働状況を計測する場合は本モードを使用します。
設定 本モードを使用する場合は以下の項目を設定してください。
設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 04000000
親機の出力 代表的な電池寿命 1日に200回の開閉を行なった場合、約4年です。(含1分毎の定期送信) 1日に0回の開閉を行なった場合、約4.5年です。(含1分毎の定期送信)
消費電流は試験用のサンプル個体の実測に基づき、CR2032の容量を220mAhとして計算しています。電池寿命は参考値であり、保証値ではありません。電池の性能や使用温度等の使用環境で変化します。
5.1.2 - キューアプリの設定方法 キューアプリの設定方法
TWELITE CUEを設定する方法には、有線と無線の2種類があります。
5.1.2.1 - キューアプリのOTAによる設定 無線による設定の方法
OTA設定は、インタラクティブモードの設定を無線経由で行う機能です。
OTAによる設定手順 以下の手順でOTAによる設定を行います。
1. TWELITE STAGE APPを起動する パソコンへTWELITE STAGE SDK をインストール し、MWSTAGEフォルダ内のTWELITE_Stage
を起動する。
2. MONOSTICKへOTA設定用のアプリを書き込む 2: アプリ書換 > 1: BINから選択 を開き、App_CUE_OTA_...
を選択する。
3. インタラクティブモードで設定値を入力する 3: インタラクティブモード を選択し、値を編集・保存する。
4. OTA設定を実行する MONOSTICKから約20cm以内の距離に TWELITE CUE を置く。本体の電源を投入するか、または磁石を磁気センサーへ5回以上接近させて、TWELITE CUE の LED が点滅することを確認する。
5. MONOSTICKの出力を確認する 次のようなメッセージの出力を確認する。
出力されない場合はこちら
6. MONOSTICKのアプリを書き戻す 2: アプリ書換 > 1: BINから選択 を開き、App_Wings_MONOSTICK_...
を選択する。
OTAに失敗した場合 距離が遠い 次のようなメッセージは、距離が遠いことを示します。
OTA FAILURE
OTA request TS=20515[ms]
LQI:63 (RF strength, >= 100)
SID:810BA765
TWELITE CUE:v1.1.1
Protocol Version:0x11
--— LQI is small. Please make TWELITE CUE closer. —--
この場合は、MONOSTICK と TWELITE CUE の距離を近づけてください。
対象が異なる 次のようなメッセージは、TWELITE CUE のファームウェアが異なっているか、間違って TWELITE CUE を近づけていることを示します。
OTA FAILURE
OTA request TS=20515[ms]
LQI:180 (RF strength, >= 100)
SID:810BA765
TWELITE CUE:v1.1.1
Protocol Version:0x13
--— Different protocol version. Please update TWELITE CUE. —--
この場合は、間違って TWELITE CUE を近づけていないか確認してください。
また、TWELITE CUE のファームウェアを書き換えていた場合は、TWELITE R2/R3を使って App_CUE
へ書き戻してください。
5.1.2.2 - キューアプリのTWELITE R2/R3による設定 TWELITE R2/R3を使う設定の方法
TWELITE CUEの7PインターフェイスへTWELITE R2/R3 を接続することで設定できます。
TWELITE R2との接続例
TWELITE R2/R3を逆向きに接続するとTWELITE CUEが破損します。
TWELITE R2/R3を使用して設定する場合は以下の手順で設定してください。
1. TWELITE STAGE APPを起動する パソコンへTWELITE STAGE SDK をインストール し、MWSTAGEフォルダ内のTWELITE_Stage
を起動する。
2. インタラクティブモードで設定値を入力する 3: インタラクティブモード を選択し、値を編集・保存する。
5.1.2.3 - インタラクティブモード(キューアプリ) インタラクティブモードによる詳細な設定変更
本アプリでは、インタラクティブモードからアプリの詳細設定を行うことができます。
ここではキューアプリ(App_CUE)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
インタラクティブモードに入ると以下の画面が表示されます。
--- CONFIG/App_CUE V1-00-2/SID=0x810ba765/LID=0x01 ---
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (18)
x: set Tx Power (13)
b: set UART baud (38400)
B: set UART option (8N1)
k: set Enc Key (0xA5A5A5A5)
o: set Option Bits (0x00000001)
t: set Transmission Interval (5)
p: set Senser Parameter (0x00000000)
---
S: save Configuration
R: reset to Defaults
設定コマンド一覧 コマンド 設定項目 初期値 説明 a アプリケーションID 0x67720102 同一の周波数チャネルを複数のグループで使用することが可能です。値は32ビットで設定します。 i 論理デバイスID – 子機の論理デバイスIDを設定します。1~100までの値を設定できます。 設定値が “–” の場合は、論理デバイスIDは内部で1に設定されます。 c 周波数チャネルの設定 18 チャネル(11~26)を選択します。省電力動作を優先する観点から、複数チャネルの指定は無効としています。 x 送信出力の設定 13 1桁、または2桁の数字を指定します。2桁目は省略可能です。 1桁目は、送信出力を設定します。3が最強で2,1,0と1段階小さくなるたびに -11.5db 出力が低下します。出力を制限し電波の有効伝達範囲を小さくしたい場合に使用します。ただし、伝達可能距離は環境(ノイズ・遮蔽物など)に影響を受けます。 ※ 理論上の伝達距離は 6db 出力が小さくなるたびに 1/2 になりますので、1段階小さくすることで伝達距離は約1/4になります。 2桁目は再送回数を設定します。2桁目は 0~9を指定し、0はデフォルトで再送なし、1~9は再送回数に対応します。 例: 3 -> 再送なし・最強出力(デフォルト、省略時) 42 -> 再送4回・出力は2(1段階弱める) b UARTボーレートの設定 38400 入力値にかかわらず115200bps固定です。 B UARTパリティの設定 8N1 入力値にかかわらず8N1で固定です。 k 暗号化鍵の設定 0xA5A5A5A5 暗号化鍵を入力します。32bitの16進数を設定します。通信グループ内は全て同一の値に設定してください。 o オプションビットの設定 0x00000001 各種詳細設定ができます。 t 送信間隔の設定 5 定期送信パケットの送信間隔を秒単位で設定します。1〜4095の値で指定可能です。範囲外の設定をした場合の動作は不定です。 p センサ固有パラメータの設定 0 モードの切り替えやパラメータの設定をします。0以上の16進数で指定できます。詳細は、各種モード のページを参照ください。 S 設定値の保存 設定を保存し、モジュールを再起動します。 R 初期値に設定を戻す 設定を初期化します。他の操作を行わず、続けてS キーによる設定の保存を行うとセーブ領域のクリアを行います。
オプションビットの設定 オプションビット設定値を各ビットごとに解説します。
ビット(16進) 説明 0x00000001 各中継機または親機宛に送信し、受信した中継機すべての情報が親機に転送され、シリアル出力されます。 この場合、複数の受信パケットを分析する事で一番近くで受信したルータを特定することができます。 0x00000040 OTAを無効にする。 0x00001000 暗号化通信を有効にします。(相手側の暗号化設定もしてください。) 0x00010000 UART通信でのメッセージ出力を有効にします。
6 - アリアアプリ マニュアル 温度・湿度を無線でお知らせ。
アリアアプリ(App_ARIA)は磁気・湿度・温度センサータグ TWELITE ARIA専用のアプリです。
6.1.1 - アリアアプリの使用方法 アリアアプリの使用方法
アリアアプリの使用方法を2つのステップに分けて説明します。
6.1.1.1 - アリアアプリの動作確認 MONOSTICKとPCを使用して、TWELITE ARIAの動作確認を行う
TWELITE CUEとMONOSTICKを使用して温度を計測してみましょう。
必要なもの TWELITE CUE MONOSTICK 電池を入れる CR2032電池の+側を電池ホルダー(+)の向きで差し込みます。TWELITE CUEのLEDが3回点滅すれば正常です。 起動後は5秒毎に送信をし、送信時にLEDが1回点滅します。
電池の装着
電池の向きに注意してください。逆に入れた場合、発熱し故障の原因になります。
また、TWELITE ARIAの電池ホルダーは構造上、半田付け部が外れやすいため、以下に注意して電池を挿入してください。
コイン電池の取り外し時には電池ホルダーの半田付け部に力がかかりにくくなるように、電池ホルダーを上から軽く指で押さえながらコイン電池を取り外すことを推奨します。 TWELITE ARIAの運用時は、専用ケースで電池ホルダーを上から押さえながら使用することを推奨します。 固定用磁石を取り付ける 図の位置の窪みに磁石を取り付けると、TWELITE ARIAを金属面に貼り付けることができます。必要に応じてお使いください。
磁石の設置箇所
ケースに入れる 丸印で示したようにケースの縁にある爪に引っ掛けて収めてください。
基板の挿入
必要に応じてねじ止めをしてください。ねじ穴はストラップを通したり、対象物への固定用にも使用できます。
ケースを開ける ケースの切り込みにコインを差し込みこじ開けてください。
コインを差し込む場所
親機・中継機の準備 通信相手として親機が必要です。通信距離を延長する場合は中継機 が使用できます。親機、中継機にはMONOSTCK - モノスティック を使用することができます。
MONOSTCK - モノスティックのアプリは親機・中継機アプリ Wings-ウイングス のバージョンv1-01-4以上を書き込んでください。
動作確認をする TWELITE ARIAを動かしたり、磁石を近づけたりして、パソコンに接続したMONOSTICKで受信したデータを確認してみましょう。
TWELITE STAGE SDKの準備 まず最初にTWELITE STAGE SDK の最新版をパソコンにインストールします。
TWELITE STAGE APPを起動する MONOSTICKをパソコンのUSBポートに接続します。 インストールしたTWELITE STAGE SDKのMWSTAGEフォルダ内の以下のファイルをダブルクリックしてください。 ・TWELITE_stage.exe(Windows) ・TWELITE_stage.command(macOS) ・TWELITE_stage.run(Linux) 起動するとUSBに接続されたMONOSTICKが画面上に表示されます。 シリアルポート選択画面から1: MONOSTICKを選択してください。 デバイスを選択するとTWELITE STAGE APPのトップメニュー画面が表示されます。 親機の準備 通信相手として親機が必要です。親機にはMONOSTCK - モノスティック を使用することができます。 以下の手順で親機・中継機アプリ Wings-ウイングス をMONOSTICK - モノスティックに書き込んでください。
トップメニューから 2:アプリの書換 > 1:BINから選択を選択してください。 MONOSTICK BLUE を使用している場合はApp_Wings_MONOSTICK_BLUE_… を選択し、MONOSTICK RED を使用している場合はApp_Wings_MONOSTICK_RED_… を選択してください。 書き込み完了後はインタラクティブモードに入らずにESCキーを長押ししてトップメニューに戻ってください。 ビューアを選択する トップメニューから 1:ビューア > 4: CUE/ARIAビューア を選択します。 TWELITE ARIA タブをクリックします。 TWELITE ARIAビューア
TWELITE ARIAの動作確認をする 温度、湿度を計測する 5秒ごとに温湿度の値が更新されます。
磁石を検出させる 磁石のN極を磁気センサーに近づけると「[N極]」と表示されます。 磁石のS極を磁気センサーに近づけると「[S極]」と表示されます。 磁石を磁気センサーから遠ざけると「 —- 」と表示されます。 モードを変更する モードを変更することで、TWELITE ARIAの振る舞いを変更することができます。
詳しくは以下のページをご確認ください。
モード選択
設定を変更する グループ分けや送信頻度の変更などはインタラクティブモードで設定できます。
インタラクティブモードへの移行方法は以下のページをご確認ください。
設定方法
また、設定できる項目については以下のページをご確認ください。
インタラクティブモード
ログを出力する パルスクリプトで温湿度などのデータをCSV形式でログに出力することができます。
詳しくは以下のページをご確認ください。
パルスクリプト
グラフを描画する パルビューアで温湿度や磁気センサーの値をグラフで見ることができます。
詳しくは以下のページをご確認ください。
パルビューア
6.1.1.2 - アリアアプリの動作モード アリアアプリの動作モード
アリアアプリには、TWELITE ARIAモードと開閉センサーパルモードの2種類の動作モードがあります。
TWELITE ARIAモード TWELITE ARIAの初期モードです。
温湿度計測とドアの開閉の検知を同時に行うことができるオールインワンモードです。
開閉センサーパルモード 開閉センサーパルとして動作するモードです。
ドアの開閉や工場設備の稼働状況を計測する場合は本モードを使用します。
6.1.1.2.1 - アリアアプリのTWELITE ARIAモード 初期設定のモード
温湿度の計測、磁石の有無のすべてを試すことができるオールインワンモードです。
工場出荷時は本モードに設定されております。
設定 本モードを使用する場合は以下の項目を設定してください。
設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 00000000
親機の出力 代表的な電池寿命 5秒に1度の定期送信のみの場合、約340日 5秒に1度の定期送信 + 1分に1度磁石を近づけた場合、約300日 1分に1度の定期送信のみの場合、約4年 1分に1度の定期送信 + 1分に1度磁石を近づけた場合、約2.5年
消費電流は試験用のサンプル個体の実測に基づき、CR2032の容量を220mAhとして計算しています。電池寿命は参考値であり、保証値ではありません。電池の性能や使用温度等の使用環境で変化します。
6.1.1.2.2 - アリアアプリの開閉センサーパルモード 開閉センサーパルとして動作するモード
モノに装着し、磁石の有無で開閉を知ることができるモードです。
設定 本モードを使用する場合は以下の項目を設定してください。
設定コマンド 設定項目 設定値 備考 p センサ固有パラメータの設定 04000000
親機の出力 代表的な電池寿命 1日に200回の開閉を行なった場合、約4年です。(含1分毎の定期送信) 1日に0回の開閉を行なった場合、約4.5年です。(含1分毎の定期送信)
消費電流は試験用のサンプル個体の実測に基づき、CR2032の容量を220mAhとして計算しています。電池寿命は参考値であり、保証値ではありません。電池の性能や使用温度等の使用環境で変化します。
6.1.2 - アリアアプリの設定方法 アリアアプリの設定方法
アリアアプリを設定する方法は以下の2種類あります。
設定できる内容に関してはインタラクティブモードをご確認ください。
OTAによる設定 OTAとはOver the Airの略です。非接触での通信を意味します。OTA設定はインタラクティブモード の設定をケーブル接続不要で行う機能です。
OTAを実行するには MONOSTICK-モノスティック が必要です。
TWELITE R2を使用する設定 TWELITE CUEの7PインターフェイスにTWELITE R2/R3 を接続し、インタラクティブモードで設定を行うことも可能です。
6.1.2.1 - アリアアプリのOTAによる設定 TWELITE ARIAとMONOSTICKとの無線通信による設定
OTA設定は、インタラクティブモードの設定を無線経由で行う機能です。
OTAによる設定手順 以下の手順でOTAによる設定を行います。
1. TWELITE STAGE APPを起動する パソコンにTWELITE STAGE SDK をインストール し、MWSTAGEフォルダ内のTWELITE_Stage
を起動する。
2. MONOSTICKにOTA設定用のアプリを書き込む 2: アプリ書換 > 1: BINから選択 を開き、App_ARIA_OTA_...
を選択する。
3. インタラクティブモードで設定値を入力する 3: インタラクティブモード を選択し、値を編集・保存する。
4. OTA設定を実行する MONOSTICKから約20cm以内の距離に TWELITE ARIA を置く。本体の電源を投入するか、または磁石を磁気センサーへ5回以上接近させて、TWELITE ARIA の LED が点滅することを確認する。
5. MONOSTICKの出力を確認する 次のようなメッセージの出力を確認する。
出力されない場合はこちら
6. MONOSTICKのアプリを書き戻す 2: アプリ書換 > 1: BINから選択 を開き、App_Wings_MONOSTICK_...
を選択する。
OTAに失敗した場合 距離が遠い 次のようなメッセージは、距離が遠いことを示します。
OTA FAILURE
OTA request TS=20515[ms]
LQI:63 (RF strength, >= 100)
SID:810BA765
TWELITE ARIA:v1.1.1
Protocol Version:0x13
--— LQI is small. Please make TWELITE ARIA closer. —--
この場合は、MONOSTICK と TWELITE ARIA の距離を近づけてください。
対象が異なる 次のようなメッセージは、TWELITE ARIA のファームウェアが異なっているか、間違って TWELITE CUE を近づけていることを示します。
OTA FAILURE
OTA request TS=20515[ms]
LQI:180 (RF strength, >= 100)
SID:810BA765
TWELITE ARIA:v1.1.1
Protocol Version:0x11
--— Different protocol version. Please update TWELITE ARIA. —--
この場合は、間違って TWELITE CUE を近づけていないか確認してください。
また、TWELITE ARIA のファームウェアを書き換えていた場合は、TWELITE R2/R3を使って App_ARIA
へ書き戻してください。
6.1.2.2 - アリアアプリのTWELITE R2/R3による設定 TWELITE ARIAとTWELITE R2/R3を有線で接続して行う設定
TWELITE ARIAの7PインターフェイスへTWELITE R2/R3 を接続することで設定できます。
TWELITE R2との接続例
TWELITE R2/R3を逆向きに接続するとTWELITE ARIAが破損します。
TWELITE R2/R3を使用して設定する場合は以下の手順で設定してください。
1. TWELITE STAGE APPを起動する パソコンへTWELITE STAGE SDK をインストール し、MWSTAGEフォルダ内のTWELITE_Stage
を起動する。
2. インタラクティブモードで設定値を入力する 3: インタラクティブモード を選択し、値を編集・保存する。
6.1.3 - インタラクティブモード(アリアアプリ) アリアアプリのインタラクティブモード
インタラクティブモードでアプリの詳細設定を行うことができます。
ここではアリアアプリ(App_ARIA)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
SET
ピンをGND
へ接続した状態で起動してください。TWELITE STAGE アプリと TWELITE R2/R3 は、自動的にこの操作を行います。
表示例 次のような画面を表示します。
--- CONFIG/App_ARIA V1-01-0/SID=0x810a7817/LID=0x01 ---
a: set Application ID (0x67720102)
i: set Device ID (--)
c: set Channels (18)
x: set Tx Power (13)
b: set UART baud (38400)
B: set UART option (8N1)
k: set Enc Key (0xA5A5A5A5)
o: set Option Bits (0x00000001)
t: set Transmission Interval (5)
p: set Senser Parameter (0x00000000)
d: set Temperature Coefficient (0)
D: set Temperature Offset (0)
f: set Humidity Coefficient (0)
F: set Humidity Offset (0)
---
S: save Configuration
R: reset to Defaults
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
1
-100
の任意の値を設定できます。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
b
:UART代替ボーレート適用できません。TWELITE DIP 等の製品とは異なり BPS
ピンがないからです。
B
:UARTオプション適用できません。TWELITE DIP 等の製品とは異なり BPS
ピンがないからです。
k
:暗号鍵オプションビットの暗号化通信の有効化 を設定した場合の暗号化鍵を32bitの16進数で指定します。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
t
:送信間隔データの送信間隔を指定します。
p
:センサ固有パラメータ動作モード の切り替えに使用します。
d
:温度係数環境センサーパル 0
-60000
の範囲で温度データの係数\(d\)を指定します。
0
の場合は無効です。それ以外の値では、最終的な温度を\(\frac{d}{1024}\)倍とします。
D
:温度オフセット環境センサーパル -2000
-2000
の範囲で温度データのオフセット\(D\)を指定します。
100倍された温度に\(D\)を加算します。最終的な温度は \(\frac{D}{100}\)°C 変化します。
f
:湿度係数環境センサーパル 0
-60000
の範囲で湿度データの係数\(f\)を指定します。
0
の場合は無効です。それ以外の値では、最終的な湿度を\(\frac{f}{1024}\)倍とします。
F
:湿度オフセット環境センサーパル -2000
-2000
の範囲で湿度データのオフセット\(F\)を指定します。
100倍された湿度に\(F\)を加算します。最終的な湿度は \(\frac{F}{100}\)% 変化します。
オプションビットの詳細 オプションビットの値の各ビットに紐付く設定を解説します。
00000001
:中継機への送信を有効化親機だけでなく、中継機へ向けた送信を有効化します。
このオプションを設定していない場合にも中継機を使用できますが、親機は重複して届いたパケットを排除します。このとき、パケットがどの中継機を通して伝わったのか、あるいは中継されていないのかを確かめる術はありません。
このオプションを設定していると、親機は複数の端末から受信した一つのパケットを別々に出力することができます。親機に接続されたデバイスが出力を分析することで、子機がどの端末の近くにあったのかを調べることができます。
00000040
:OTA設定機能を無効化OTA設定の機能を無効化します。
00001000
:暗号化通信の有効化暗号化通信を有効にします。相手側の暗号化通信も有効化する必要があります。
00010000
:子機のUART出力を有効化子機のメッセージ出力を有効化します。
7 - パルアプリ マニュアル TWELITE PAL シリーズ用
パルアプリ(App_PAL)は、無線タグシステム TWELITE PAL シリーズ専用のアプリです。
工場出荷時の TWELITE BLUE / RED PAL へインストールしています。
7.1 - パルアプリ マニュアル 最新版
導入方法 パルアプリ(App_PAL
)を書き込むには TWELITE STAGE SDK をインストールして、TWELITE STAGE アプリを使って書き換え てください。
App_PAL_EndDevice
が子機用です。
以前は親機用として App_PAL_Parent
を同梱していましたが、現在は App_Wings
へ統合されています。
対応するハードウェア 開閉センサーパル を装着した TWELITE BLUE / RED PAL 環境センサーパル を装着した TWELITE BLUE / RED PAL 動作センサーパル を装着した TWELITE BLUE / RED PAL 通知パル を装着した TWELITE BLUE / RED PAL
子機の使用上限 1つの親機と通信できる子機の数は、親機へ届くパケットの数によって決まります。
例えば、1つの子機が連続で加速度を送信する場合は、1対1通信を推奨します。
子機が間欠動作をする場合には、すべての子機に対して 0.1*送信機の台数
秒 以上の送信間隔を空けるように推奨しております。例えば、送信を行う子機が10台あるのなら、各子機の送信間隔は1秒以上空けてください。
7.1.1 - インタラクティブモード(パルアプリ) パルアプリのインタラクティブモード
インタラクティブモードでアプリの詳細設定を行うことができます。
ここではパルアプリ(App_PAL)に固有の機能を説明します。共通機能については、TWELITE APPS マニュアル のトップページ を参照してください。
TWELITE がスリープしている間はインタラクティブモードを使用できません。
SET
ピンをGND
へ接続した状態で起動してください。TWELITE STAGE アプリと TWELITE R2/R3 は、自動的にこの操作を行います。
表示例 次のような画面を表示します。
--- CONFIG/App_PAL V1-05-2/SID=0x810e0e23/LID=0x01 ---
a: set Application ID (0x67726305)
i: set Device ID (--)
c: set Channels (15)
x: set Tx Power (13)
b: set UART baud (38400)
B: set UART option (8N1)
k: set Enc Key (0xA5A5A5A5)
o: set Option Bits (0x00000001)
t: set Transmission Interval (60)
p: set Senser Parameter (0x00000000)
e: set Event Parameter(s) (0180002A0208002A0300802A0488002A0580802A0608802A0880000A1008000A)
d: set Temperature Coefficient (0)
D: set Temperature Offset (0)
f: set Humidity Coefficient (0)
F: set Humidity Offset (0)
---
S: save Configuration
R: reset to Defaults
コマンド 各コマンドの詳細を次に示します。
a
:アプリケーションID通信を行う端末はすべて同一の値とします。論理的にネットワークを分離します。
i
:論理デバイスID複数の子機を識別する必要がある場合に設定します。
識別の必要がない、できない場合は120
としてください。識別の必要がある場合は、子機は1
-100
の任意の値に、親機は0
あるいは121
としてください。
c
:周波数チャネル通信を行う端末はすべて同一の値とします。物理的にネットワークを分離します。
x
:送信出力と再送回数電波の送信出力と、透過モードおよびヘッダ付き透過モードにおいてパケットを追加で送信する回数を指定します。
b
:UART代替ボーレートBPS
ピンをGND
へ接続して起動した場合に選択される代替ボーレートを38400
bpsから上書きします。
値は9600
/19200
/38400
/57600
/115200
/230400
から選択できます。他の値を指定すると、誤差が生じる可能性があります。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
B
:UARTオプションBPS
ピンをGND
へ接続して起動した場合に選択される代替設定を8N1
から上書きします。
パリティはN
: 無し、O
: Odd(奇数)、E
: Even(偶数)を設定します。ハードウェアフローは設定できません。8N1, 7E2 などと設定できますが、8N1 以外の設定は未検証です。事前に動作をご確認ください。
BPS
ピンを開放して起動した場合、この設定は適用されません。115200
bpsに固定されます。
k
:暗号鍵オプションビットの暗号化通信の有効化 を設定した場合の暗号化鍵を32bitの16進数で指定します。
o
:オプションビット32bit の数値を指定します。各ビットに紐付いた設定を有効化できます。
t
:送信間隔データの送信間隔を指定します。通知パルの場合は、親機へ制御情報を問い合わせて、それをLEDの出力へ反映する間隔を示します。
p
:センサ固有パラメータハードウェアによって異なります。
e
:通知イベント通知パル イベント番号を受信した際の動作を指定します。
詳しくは通知イベントの詳細 をご覧ください。
d
:温度係数環境センサーパル 0
-60000
の範囲で温度データの係数\(d\)を指定します。
0
の場合は無効です。それ以外の値では、最終的な温度を\(\frac{d}{1024}\)倍とします。
D
:温度オフセット環境センサーパル -2000
-2000
の範囲で温度データのオフセット\(D\)を指定します。
100倍された温度に\(D\)を加算します。最終的な温度は \(\frac{D}{100}\)°C 変化します。
f
:湿度係数環境センサーパル 0
-60000
の範囲で湿度データの係数\(f\)を指定します。
0
の場合は無効です。それ以外の値では、最終的な湿度を\(\frac{f}{1024}\)倍とします。
F
:湿度オフセット環境センサーパル -2000
-2000
の範囲で湿度データのオフセット\(F\)を指定します。
100倍された湿度に\(F\)を加算します。最終的な湿度は \(\frac{F}{100}\)% 変化します。
オプションビットの詳細 オプションビットの値の各ビットに紐付く設定を解説します。
00000001
:中継機への送信を有効化親機だけでなく、中継機へ向けた送信を有効化します。
このオプションを設定していない場合にも中継機を使用できますが、親機は重複して届いたパケットを排除します。このとき、パケットがどの中継機を通して伝わったのか、あるいは中継されていないのかを確かめる術はありません。
このオプションを設定していると、親機は複数の端末から受信した一つのパケットを別々に出力することができます。親機に接続されたデバイスが出力を分析することで、子機がどの端末の近くにあったのかを調べることができます。
00001000
:暗号化通信の有効化暗号化通信を有効にします。相手側の暗号化通信も有効化する必要があります。
00010000
:子機のUART出力を有効化子機のメッセージ出力を有効化します。
センサ固有パラメータの詳細 センサ固有パラメータの値に紐付く設定を解説します。
開閉センサーパル 使用しません。
環境センサーパル 使用しません。
動作センサーパル 32bitの数値を指定します。
bit 31-28 27-24 23-20 19-16 15-12 11-8 7-4 3-0 機能 - - - - ATH
SFQ
SCT:7-4
SCT:3-0
初期値 0
0
0
0
0
0
0
0
各機能は次の内容を示します。
SCT
:サンプル数SCT
は送信するサンプル数に影響します。
間欠送信モード ATH
を0
かつt
:送信間隔 を0
以外とした場合は、間欠送信モードとなります。
SCT
の値を\(C_i\)としたとき、サンプル数は\(16C_i+16\)と表すことができます。
p
SCT
サンプル数 0x??????00
0x00
16サンプル(初期設定) 0x??????01
0x01
32サンプル … 0x??????07
0x07
128サンプル … 0x??????FF
0xFF
4096サンプル
アクティブ検出モード ATH
とt
:送信間隔 を0
以外とした場合は、アクティブ検出モードとなります。
アクティブ検出モードでは、ATH
によって与えられる加速度のしきい値を超えたとき、直前の30サンプルに加えて 直後のサンプルを送信します。
SCT
の値を\(C_a\)としたとき、直後のサンプル数は\(30C_a+30\)と表すことができます。
p
SCT
直後のサンプル数 0x??????00
0x00
30サンプル(初期設定) 0x??????01
0x01
60サンプル … 0x??????07
0x07
240サンプル … 0x??????FF
0xFF
7680サンプル
SFQ
:サンプリング周波数SFQ
は加速度データのサンプリング周波数に影響します。
p
SFQ
サンプリング周波数 0x?????0??
0x0
25Hz(初期設定) 0x?????1??
0x1
50Hz 0x?????2??
0x2
100Hz 0x?????3??
0x3
190Hz
ATH
:アクティブ検出モードATH
はアクティブ検出モードの振る舞いに影響します。
0
の場合は無効となり、1
-F
の場合はその値をしきい値として有効となります。
p
ATH
内容 0x????0???
0x0
無効(初期設定) 0x????1???
0x1
1G(非推奨) 0x????2???
0x2
2G … 0x????F???
0xF
15G
ATH
を1
とした場合、定置していても常にアクティブ状態となってしまいます。
通知パル 32bitの数値を指定します。
00000000
:タップ&シェイクモードタップ(軽く叩く)やシェイク(振る)をした時にデータを送信します。
00000001
:サイコロモード6通りの上面を検出し、データを送信します。
通知イベントの詳細 値は最大68バイトのバイナリデータであり、16進数の文字列で表現します。
一つのイベントは4バイトで構成します。イベントの最大数は17です。
# データ 内容 備考 1番目のイベント 0 uint8
イベントID 0x00
-0x10
1 uint8
赤と緑の輝度 赤0x0?
-0xF?
, 緑0x?0
-0x?F
2 uint8
青と白の輝度 青0x0?
-0xF?
, 白0x?0
-0x?F
3 uint8
点滅パターンと点灯時間 点滅パターン 常時点灯0x0?
, 遅0x1?
, 並0x2?
, 早0x3?
点灯時間 消灯しない0x?0
, 秒指定0x?1
-0x?F
2番目のイベント 4 uint8
イベントID 0x01
-0x10
5 uint8
赤と緑の輝度 赤0x0?
-0xF?
, 緑0x?0
-0x?F
6 uint8
青と白の輝度 青0x0?
-0xF?
, 白0x?0
-0x?F
7 uint8
点滅パターンと点灯時間 点滅パターン 常時点灯0x0?
, 遅0x1?
, 並0x2?
, 早0x3?
点灯時間 消灯しない0x?0
, 秒指定0x?1
-0x?F
3番目のイベント <省略> 17番目のイベント 64 uint8
イベントID 0x01
-0x10
65 uint8
赤と緑の輝度 赤0x0?
-0xF?
, 緑0x?0
-0x?F
66 uint8
青と白の輝度 青0x0?
-0xF?
, 白0x?0
-0x?F
67 uint8
点滅パターンと点灯時間 点滅パターン 常時点灯0x0?
, 遅0x1?
, 並0x2?
, 早0x3?
点灯時間 消灯しない0x?0
, 秒指定0x?1
-0x?F
設定データの例 初期設定の例を示します。
0180002A0208002A0300802A0488002A0580802A0608802A0880000A1008000A
# データ 内容 値 1番目のイベント 01
0 uint8
イベントID 0x01
80
1 uint8
赤と緑の輝度 赤8
/15
, 緑0
/15
00
2 uint8
青と白の輝度 青0
/15
, 白0
/15
2A
3 uint8
点滅パターンと点灯時間 並, 10
秒 2番目のイベント 02
4 uint8
イベントID 0x02
08
5 uint8
赤と緑の輝度 赤0
/15
, 緑8
/15
00
6 uint8
青と白の輝度 青0
/15
, 白0
/15
2A
7 uint8
点滅パターンと点灯時間 並, 10
秒 3番目のイベント <省略> 8番目のイベント 10
28 uint8
イベントID 0x10
08
29 uint8
赤と緑の輝度 赤0
/15
, 緑8
/15
00
30 uint8
青と白の輝度 青0
/15
, 白0
/15
0A
31 uint8
点滅パターンと点灯時間 常時点灯, 10
秒