概要
「START を 1 通送ると 6 パケット返ってくる」起動シーケンスをオートメーションで再現するサンプルです。
応答ルールでは 1 往復しか表現できない「1 要求 → 複数応答パケットを遅延付きで順に送る」を、パケット一致トリガーと多段ステップで実現する方法を学べます。
機器構成
単一の TCP サーバセッション。クライアント(CommSim.Sample のシナリオ「Automation」や telnet 127.0.0.1 9600)が START を送ります。
クライアントテスト対象アプリ
⇄
CommSim起動シーケンス装置(9600)
通信フロー
START 1 通でオートメーションが発火し、6 パケットを定義順(各約 300ms 間隔)に送信します。
- Client →
START\r\n - ← CommSim
ACK START\r\n300ms - ← CommSim
BOOT 25%\r\n300ms - ← CommSim
BOOT 50%\r\n300ms - ← CommSim
BOOT 75%\r\n300ms - ← CommSim
BOOT 100%\r\n300ms - ← CommSim
READY\r\n即時
想定プロトコル
改行終端のテキストコマンド。バイナリ構造を持たないため、フレーミングは「なし」(1 受信=1 メッセージ)です。
要求 START\r\n
応答 ACK START\r\n / BOOT 25%..100%\r\n / READY\r\n使用する機能
設定内容
プロジェクト設定
| 既定データ形式 | UTF-8(テキスト) |
| フレーミング方式 | なし(None) |
| セッション | TCP サーバ / ポート 9600 |
オートメーション
| トリガー種別 / 一致 | パケット一致 / Contains START |
| 繰り返し | なし |
送信ステップ
- Send +300ms
ACK START\r\n - Send +300ms
BOOT 25%\r\n - Send +300ms
BOOT 50%\r\n - Send +300ms
BOOT 75%\r\n - Send +300ms
BOOT 100%\r\n - Send 即時
READY\r\n
同じ「複数パケット送信」でも、接続した瞬間に送るなら接続時トリガー、一定間隔で繰り返すなら周期トリガー。ここでは「特定の要求を受けたら」なのでパケット一致を使います。
開き方:
samples/automation-multistep/automation-multistep.commsim を「ファイル」→「開く」(Ctrl+O)。起動後、START を含むテキストを送ると 6 パケットが順に返ります。他のサンプルも構成・フロー付きで解説しています。
サンプル集へ戻る