シリアル通信アプリのチャットモード
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
であったと分かります。
[810A4778:0] Hello
インタラクティブモードのh: Header format
へ任意の文字列を設定したときは、それをハンドル名として利用します。ただし、ハンドル名は無線パケットに格納するデータを消費します。
送信側の入力書式
プロンプトに続けて、メッセージと改行文字を入力します。
データ | 内容 | 備考 |
---|---|---|
[char] | メッセージ | 0x00 -0x1F , 0x7F は不可 |
char | CR (0x0D /'\r' ) | 単体でも可 |
char | LF (0x0A /'\n' ) | 単体でも可 |
810A4778:0> Hello
受信側の出力書式
補助情報に続けて、受信したメッセージを出力します。
補助情報は、モジュールの拡張アドレスまたはハンドル名と、続き番号を含みます。
データ | 内容 | 備考 |
---|---|---|
char | 補助情報のヘッダ | [ のみ |
[char] | 識別情報 | 8桁の拡張アドレスまたはハンドル名 |
char | 補助情報の区切り文字 | : のみ |
[char] | 続き番号 | 0 から開始 |
char | 補助情報のフッタ | ] のみ |
char | 区切り文字 | 半角スペースのみ |
[char] | メッセージ | |
char | フッタ | CR (0x0D /'\r' ) |
char | フッタ | LF (0x0A /'\n' ) |
(err)
(canceled)
といった ()
書きのメッセージを出力します。
[810A4778:0] Hello
その他の入力
エスケープシーケンスに対応したターミナルでは、以下の制御コマンドを使用できます。
Ctrl-L
:画面のクリアCtrl-C
:入力のキャンセルBS
/DEL
:カーソルを戻す