> 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/mode_selection/mode_d.md).

# 透過モード(D)

![](/files/-Mk6fuO_rdeELiaJTXON)

チャットモードに対し、エコーバックやプロンプト表示がないためマイコンとの通信に適しています。

連続して入力された文字列を１パケット（最大80バイト）として送信します。

通信はブロードキャストで行われます。アスキーまたはバイナリデータの送信が可能です。

中継は最大３段（３ホップ）まで対応しています。初期設定では中継はしません。中継機能を使用する場合はインタラクティブモードにて設定が必要です。

透過モード：ブロードキャスティングはインタラクティブモードにてUARTモード（m）をDに設定します。

{% content-ref url="/pages/-MjYQp0NcsZ\_yhaXzHSB" %}
[インタラクティブモード](/mw-pug-uart/interactive-mode.md)
{% endcontent-ref %}

## 送信可能文字数

1パケットの最大送信文字数は80バイトです。

データサイズが80バイトを超えた場合は80バイト毎のパケット分割機構が働きますが、80バイト以上の一括送信は通信安定性の面で推奨しません。<br>

## 送信トリガー

本モードで、パケット送信の引き金となるのは以下です。インタラクティブモードで設定します。

* データを入力して設定時間のタイムアウト時（ 初期値：100ms）
* 送信トリガー文字の入力時 (要設定)
* データが最低パケットバイト数に達した時 (要設定)

### インタラクティブモードでの設定方法

インタラクティブモードでは、以下の設定が可能です。

* 送信タイムアウト\
  最後の１バイトが入力されてから、パケットを送信するまでの待ち時間です。
* 送信トリガー文字\
  送信トリガー文字を入力した時点でパケット送信を行います。「最小データサイズ」を設定している場合は設定値に達するまではデータ内に送信トリガー文字が含まれていても送信は行いません。送信時は送信トリガー文字も同時に送信されます。送信トリガー文字を有効にする場合にはオプションビット 0x00000100 を設定してください。
* 最小データサイズ\
  最小のデータサイズを規定することにより、データの途中に含まれている送信トリガー文字によってパケットが分断されてしまう事を防ぎます。最小データTx Trigger min\_bytesの値を1-80に設定すると、入力バイト数が指定のバイト数になるまで送信を保留します。0 に設定するとこの処理は行われません。

インタラクティブモードではUART modeをDに設定するとset Tx Triggerのメニューが表示されます。例えば0a,8,30と設定するとLFをトリガー文字にし、最小データは８バイト、30msのタイムアウトを設定します。

```
 m: set UART mode (D)
 k: set Tx Trigger (sep=0x0a, min_bytes=8 dly=30[ms])
 o: set option bits (0x00000100)
```

## 送信タイミング

* 送信タイムアウト処理が優先されます。
* 送信トリガー文字を有効にした場合、\
  最小データバイト数に到達前のトリガー文字は無視され、最小バイト数以上かつトリガー文字が入力された時点で送信となります。
* 送信トリガー文字を無効にした場合、\
  最小データバイト数に到達した時点で送信となります。

## 送信元の判別

* 複数のノードから送信された場合、どのノードから送信されたかを判別する場合は、送信データに送信元情報を含めてください。
* データはパケット単位で出力されますので、データ単位を80バイト以内で送信している場合は複数のノードからのデータが途中で混ざることはありません。

## 中継機能

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

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

### 設定方法

M2ピンをGNDに接続すると1ホップの中継機能が設定されます。インタラクティブモードで１ホップ以上の中継機能の設定もできます。

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

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

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

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

### 設定例

![](/files/-Mk6eGZrY1B31e7N6VcO)

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

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

![](/files/-Mk6eJLGjoQnWjZxiFIw)

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://twelite.gitbook.io/mw-pug-uart/mode_selection/mode_d.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
