> For the complete documentation index, see [llms.txt](https://twelite.gitbook.io/mw-pug-uart/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://twelite.gitbook.io/mw-pug-uart/interactive-mode.md).

# インタラクティブモード

インタラクティブモードでアプリの詳細設定を行うことができます。

ここではシリアル通信アプリ（App\_Uart）固有の機能を説明します。共通機能については、[インタラクティブモード（共通機能）](https://mono-wireless.com/jp/products/TWE-APPS/interactive.html) を参照してください。

インタラクティブモードに入ると以下の画面が表示されます。

```
--- 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       | 0x67720103                     | 同一の周波数チャネルを複数のグループで使用することが可能です。値は３２ビットで設定します。                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| i    | 論理デバイスID         | 120                            | <p>子機の論理デバイスIDを設定します。1～100および以下に挙げる特別な値を設定できます。<br>0: 親機 (=121)<br>1-100: 子機<br>120: 子機（ID設定無し）<br>121: 親機<br>これ以外の値も設定した場合の動作は未定義です。</p>                                                                                                                                                                                                                                                                                                                                                          |
| c    | 周波数チャネル          | 18                             | チャネル (11～26) を選択します。複数チャネルを指定した場合は チャネルアジリティにより電波干渉の回避に役立ちます。最大3チャネルまで指定可能です。例えばチャネル 13 とチャネル 22 を使用する場合は 13,22 と入力します。                                                                                                                                                                                                                                                                                                                                                                            |
| x    | 送信出力             | 3                              | <p>１桁、または２桁の数字を指定します。２桁目は省略可能です。<br><br>１桁目は、送信出力を設定します。3が最強で2,1,0と１段階小さくなるたびに -11.5db 出力が低下します。出力を制限し電波の有効伝達範囲を小さくしたい場合に使用します。ただし、伝達可能距離は環境（ノイズ・遮蔽物など)に影響を受けます。<br>※ 理論上の伝達距離は 6db 出力が小さくなるたびに 1/2 になりますので、１段階小さくすることで伝達距離は約1/4になります。<br><br>２桁目は透過モード・プロンプト無しチャットモード時の再送回数を設定します。２桁目は 0～9を指定し、0はデフォルトで再送なし、1～9は再送回数に対応します。<br><br>例：<br>3 -> 再送なし・最強出力（デフォルト、省略時）<br>42 -> 再送４回・出力は2（１段階弱める）</p>                                                                                                 |
| r    | 役割               | 0                              | <p>子機のみ有効で、以下のいずれかを指定します。通常はネットワーク層を利用しない配送方式を選択してください。<br><br>■ ネットワーク層を利用しない配送方式：<br>0 -> 通常の指定（親機または子機）<br>1-3 -> 中継子機（id 指定で 1～100 または 120の子機指定と同時に指定します。）1～3 は最大中継段数です。この中継方式は受信したパケットを中継段数が指定回数になるまで再送を繰り返す方式ですので、中継機の配置や数によっては重複したパケットが中継されることになります。<br><br>■ ネットワーク層を利用する配送方式：<br>（書式モードのみ）<br>11 -> 親機<br>12 -> 中継機<br>13 -> 子機<br><br>■ サイレント モード：<br>サイレントモードでは起動時に受信回路を開きませんので、解除コマンドを実行するまでは無線パケットに応答する事はありません。<br>設定は上記指定に 80 を足します。<br>例えば 93 を指定すると「ネットワーク層利用かつサイレントモード」となります。</p> |
| b    | UARTボーレート        | 38400                          | <p>BPSピンを Lo (GND) レベルにして電源投入した場合に有効になります。Hi レベルでは常に 115200 8N1 条件で UART を初期化します。<br>9600、19200、38400、57600、115200、230400が設定可能です。 他の値も設定可能ですが、オシロスコープ等を用いて誤差を検証した上で使用してください。<br>※ オプションビットの設定により、BPS ピンの状態を無視したり、UART1 に出力する事も可能です。</p>                                                                                                                                                                                                                                                            |
| B    | UARTパリティ         | N                              | <p>N: 無し、O: Odd（奇数）、E: Even（偶数）を設定します。ストップビットは１で固定。ハードウェアフローは設定不可です。<br>v1.2以降では、8N1, 7E2 といったビット数、パリティ、ストップビットの設定が可能ですが、動作検証は 8N1 のみとなります。動作検証以外の設定で利用される場合は、オシロスコープなどで波形を観察し要求を満足するか確認の上利用してください。</p>                                                                                                                                                                                                                                                                                            |
| m    | UARTモード          | E                              | <p>TWELITEの通信方式を決定します。<br>A: 書式モード、アスキー形式<br>B: 書式モード、バイナリ形式</p><p>C: チャットモード<br>D: 透過モード<br>E: ヘッダ付き透過モード</p>                                                                                                                                                                                                                                                                                                                                                                                     |
| k    | トリガー文字           | 0d0a,0,0                       | <p>トリガー文字列（オプションビットで有効化）を設定します。<br>後述の最小パケットサイズ、無入力タイムアウトの設定を行っても反映されません。原則としてトリガー文字列を入力まで送信を保留し、トリガー文字列が来た時点でトリガー文字列も含めた形でパケット送信を試みます。<br>■ 透過モード(D)とヘッダ付き透過モード(E)時のみ有効です。<br>■ 設定書式<br>カンマ区切りで３つのパラメータを一度に設定し 20,8,100 の場合、トリガー文字列が 0x20、最小パケットサイズが 8 バイト、無入力タイムアウトが 100ms と設定します。<br>■ 値<br>・トリガー文字列 ：１６進数で指定します。0000-FFFF<br>・最小パケットサイズ： 1-80 を指定します。<br>・無入力タイムアウト：0なら無効、10-200 を指定します。あまり小さい値を指定すると、１バイトごとにタイムアウトするようになりますので、十分な時間を設定してください。</p>                                             |
| h    | ヘッダのカスタマイズ/ハンドル名 | ;U;%t;%i;0x%A;%q;%s;<\*>;%X;\n | <p>・ヘッダ付き透過モード</p><p>出力のカスタマイズをします。<br>詳しくは<a href="/pages/-MjE2VHbXNEVMkFVucSv">こちら</a>をご確認ください。</p><p></p><p>・チャットモード</p><p>ハンドル名を指定します。ハンドル名は 23 文字まで利用可能です。各通信ごとにハンドル名が送信されるため、長いハンドル名は通信データ増大させます。</p>                                                                                                                                                                                                                                                                                        |
| C    | 暗号化              | 0                              | <p>0 は平文通信、1 は暗号化通信(AES128)です。同じ暗号化鍵で通信しないと受信時に暗号解読が出来ないため受信が失敗します。<br>※ 暗号化設定しない無線ノードからの平文メッセージは受信します。<br>※ ただし Ack 応答はするため、送信側では受信失敗を確認できません。（受信成功失敗の確認には受信側から返しのメッセージをもらうといった処理が必要です）</p>                                                                                                                                                                                                                                                                                                       |
| K    | 暗号化鍵             |                                | <p>暗号化鍵を入力します。テキストで１６文字を設定します。（バイナリ列を設定する事は出来ません）<br>※ 暗号化の鍵は平文で保存されます。</p>                                                                                                                                                                                                                                                                                                                                                                                                                        |
| !    | リセット             |                                | TWELITEをリセットします。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| R    | 初期値に戻す           |                                | <p>各設定をデフォルト値に戻します。この時点では設定値は保存されません。続けて設定する事も可能です。<br>※ 他の入力を行わず続けて S コマンドで保存すると、セーブ（不揮発）領域を初期化状態に戻します</p>                                                                                                                                                                                                                                                                                                                                                                                        |
| S    | 設定を保存する          |                                | 設定値を保存し、TWELITEをリセットします。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

## オプションビットの設定

オプションビット設定値を各ビットごとに解説します。

| <p>設定ビット<br>(１６進)</p> | 説明                                                                                                                                                                                          |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 00000001              | <p>スリープ設定用のIOピン（M3ピン）のプルアップを停止します。<br>プルアップ停止時には対象ピンをオープンにしないようにしてください。<br>※ M3 をオープン状態で起動すると、スリープ状態になる場合があり、設定変更等の操作を受け付けなくなります。M3ピンをHiにすることでスリープを解除します。</p>                               |
| 00000002              | <p>透過モード選択ピン（I1-I4）のプルアップを停止します。<br>プルアップ停止時には対象ピンをオープンにしないようにしてください。</p>                                                                                                                   |
| 00000100              | <p>送信トリガー文字の設定をします。<br>透過モード（D）、透過モード・ペアリング（T）で、設定された文字が入力されるとそれをトリガーとしてデータを送信します。例えば0x0Aを設定しておくと、LF改行文字毎にパケット分割され無線送信されます。<br>例） 改行文字などで終端されるコマンド列を連続的に送信したい場合に、遅延の少ない効率的な無線送信が行えます。</p>   |
| 00000200              | <p>新しい入力系列を優先します。<br>書式モード（A,B）、透過モード（D）で、送信完了前までに確定したUART入力データを破棄し、より新しい入力データを優先して送信します。<br>例） 制御値やセンサー値などを連続的に送信して、最新データを反映させたい場合</p>                                                     |
| 00001000              | <p>応答メッセージの出力を停止します。<br>書式モード（A,B）、ヘッダ付き透過モード（E）時の送信処理完了メッセージを出力しません。</p>                                                                                                                   |
| 00004000              | <p>重複チェッカーの条件を緩くします。</p><p>数100ms以下の間隔で送信するなど、短い間隔で送信する場合はこのオプションを有効にしてください。</p>                                                                                                            |
| 00010000              | <p>BPSピンの設定と関係なくBAUD設定を反映します。<br>※ 外部から入出力できないボーレートに設定した場合、インタラクティブモード等の操作が出来なくなり、簡易な手段での回復は出来なくなります。セーブデータ領域を初期化する必要があります。</p>                                                             |
| 00020000              | <p>UART1（副ポート）にも出力します。<br>※ 副ポートには原則として入力しないことを前提としていますが、インタラクティブモード・書式モード・チャットモード・透過モードの入力は受けつけるように実装されています。<br>※ UART入出力用に確保しているバッファ(入力4KB,出力4KB)は、主ポート・副ポートで半々(入力2KB,出力2KB)として利用します。</p> |
| 00040000              | <p>UART0とUART1 を入れ替えます。<br>UART1 を主ポートとします。</p>                                                                                                                                             |
| 00100000              | <p>（ネットワーク層）中継器は１階層上位に限定して接続します。<br>ネットワーク層利用時のみ有効です。中継器が上位階層を探索する場合、通常はより上位の中で最大の電波強度を持つ中継器・親機に接続しますが、この設定では１段階上位に限定して接続します。<br>※ 中継テストを行う場合などに利用します。</p>                                  |

## 中継機の設定

通信距離が足りない場合や障害物があって通信できない場合に中継機を使用することで通信距離を延長したり通信範囲を拡張することが期待できます。

中継機能を持った端末は受信したパケットをそのまま送信します。

### 設定方法

中継機能を使用する場合はインタラクティブモードで”r”を入力し、set Roleの値を1～3に設定してください。初期値は0です。

```
r: set Role (0x0)
```

1～3は最大中継回数です。0を設定すると中継しません。中継機は受信したパケットをそのまま送信します。中継回数が指定数になるまで中継を繰り返します。

※ 設定は子機のみに有効です。\
※ 中継機の配置や数によっては多数の複製パケットが乱造され通信が不安定になる場合がありますのでご注意ください。

### 設定例

図のようなネットワーク構成にする場合は赤色の端末のRoleを０に青色の端末のRoleを３に設定してください。

![](/files/-MjYZdel6n4ZOouLU0X0)

青色の端末は最大3ホップの中継機能を持ちます。よって、赤色の端末の間に最大３台の中継端末を入れることができます。

![](/files/-MjYZiOeBzrg0rpM0E8-)

中継機能を持つ端末の通信範囲内に他の端末がある場合は同様に中継します。

## 設定の初期化

設定内容によっては、操作が困難になる場合があります。(ボーレートを設定したが、ターミナルソフトが対応しないボーレートだった等）その場合は以下の方法で初期化してください。

* 別のアプリを改めて書き込み、そのアプリ上で初期化操作を行う 。（インタラクティブモードで 'R' キーを押して、次に 'S' キーを押すと初期化します）
