シリアル通信アプリ 書式モード(アスキー)の 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の有効化 |
0xF1 | 端末情報の取得 |
0xF2 | 端末設定の適用 |
0xF3 | 端末設定の取得 |
0xFD | 端末設定の消去 |
0xFE | 端末設定の保存 |
0xFF | 端末のリセット |
0xF0:ACKの有効化
ACK 応答の要求を行います。
パラメータはありません。
応答の書式
| # | データ | 内容 | 備考 |
|---|---|---|---|
char | ヘッダ | :のみ | |
| 0 | uint8 | 送信先の論理デバイスID | 0xDBのみ |
| 1 | uint8 | コマンド番号 | 0xF0のみ |
| 2 | uint8 | データ | 0x01のみ |
uint8 | チェックサム | 0x34:LRC8 | |
char | フッタ | CR (0x0D/'\r') | |
char | フッタ | LF (0x0A/'\n') |
0xF1:端末情報の取得
アドレス等の情報を表示します。起動時にも出力されます。
パラメータはありません。
応答の書式
| # | データ | 内容 | 備考 |
|---|---|---|---|
char | ヘッダ | :のみ | |
| 0 | uint8 | 送信先の論理デバイスID | 0xDBのみ |
| 1 | uint8 | コマンド番号 | 0xF1のみ |
| 2 | uint32 | 既定のアプリケーションID | 67720103 |
| 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:LRC8 | |
char | フッタ | 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') |
0xFD:端末設定の消去
設定を初期化し、本体をリセットします。
パラメータおよび応答はありません。
Eヘッダ付き透過モードに切り替わるため、以降は0xDBコマンドを使うことができません。0xFE:端末設定の保存
適用した設定を保存し、本体をリセットします。
パラメータおよび応答はありません。
0xFF:端末のリセット
適用した設定を破棄し、本体をリセットします。
パラメータおよび応答はありません。
パラメータの一覧(0xF2/0xF3)
0xF2:端末設定の適用 および 0xF3:端末設定の取得 のパラメータは、識別子とデータ(ビッグエンディアン)で表現します。
| 識別子 | データ | 内容 |
|---|---|---|
0x00 | uint32 | アプリケーションID |
0x01 | uint32 | 周波数チャネルマスク |
0x02 | uint16 | 再送回数と出力 |
0x03 | uint8 | 論理デバイスID |
0x04 | uint8 | 役割 |
0x05 | uint8 | 中継レイヤ |
0x06 | uint8 | 通信モード |
0x07 | uint32 | ボーレート |
0x08 | uint8 | パリティ |
0x09 | uint8 | 暗号化機能 |
0x0A | [uint8] | 暗号化キー |
0x0B | [uint8] | ヘッダ書式/ハンドル名 |
0x0C | uint16 | 区切り文字 |
0xFF | uint8 | エラー |
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の数値は最大中継段数を指します。最大中継段数まで再送を繰り返す方式のため、中継機の配置や数によっては重複したパケットを中継します。
ネットワーク層を利用する配送方式
11:親機12:中継機13:子機
0x05:中継レイヤ
中継レイヤの番号です。中継機は中継レイヤ数の上位(より小さい値)の中継機・親機への接続を試みます。役割を12としているときにだけ有効です。
0x06:通信モード
0:透過モード1:書式モード(アスキー)2:書式モード(バイナリ)3:チャットモード4:ヘッダ付き透過モード
0x07:ボーレート
UART ボーレートを指定します。
0x08:パリティ
以下の設定の組み合わせにおいて、設定値の総和を指定します。
- Bit
0:8Bit8:7Bit
- Parity
0:None1:Odd2:Even
- Stop
0:STOP 14:STOP 2
例えば、7-E-1 なら 8+2+0=10(0xA) を指定します。
0x09:暗号化機能
暗号化機能の有無を指定します。
0:無効1:AES128bit の暗号化を有効
0x0A:暗号化キー
16バイトの暗号化キーを指定します。
インタラクティブモードでは設定できないバイナリ列を格納できます。この場合、インタラクティブモードの表示が崩れる場合があります。
0x0B:ヘッダ書式/ハンドル名
ヘッダ付き透過モードのヘッダの書式や、チャットモードのハンドル名を設定します。
0x0C:区切り文字
区切り文字列の指定を行います(0x00-0xFF)。