セッション画面
概要
1つのセッション(ポート)の操作をすべて行う画面です。起動/停止・手動送信と、機能別の4つのタブ(接続/自動応答/リプレイ/障害注入)、それに常設のログペインで構成されています。左サイドバーでセッションを選択すると右側に表示されます。
接続設定は「接続」タブ(一番左)にまとまっています。ヘッダには接続概要(プロトコル/接続種別/ポート、中継時は転送先)が常時表示されるため、タブを開かなくても動作中のポート等を確認できます。最後に開いていたタブはセッションごとに記憶されます。
ログは画面下部の常設ペインにあり、どのタブを開いていても受信が見えます。タブを行き来せずに「ログを見ながら応答を組み立てる」ことができます。
画面レイアウト
上のスクリーンショットのとおり、セッション画面は上から4段で構成されます。
- ヘッダ(常時表示) … セッション名・状態ラベル(例: スタブとして動作 · TCP/Server 0.0.0.0:7000)・状態バッジ(「障害注入 ON」「リプレイ中」+リプレイ中は[リプレイを停止] ボタン)・[停止] / [起動] ボタン。タブ切り替えに関わらず常時表示され、動作中のポートや接続概要を確認できます。
- タブ切り替えエリア … 接続 / 自動応答 / リプレイ / 障害注入 の4タブ。「接続」タブに接続設定(プロトコル・接続種別・ホスト・ポート・データ形式・転送先)が、「自動応答」タブにオートメーション・バイナリ構造応答・既定転送が入ります。今どのタブが効いていないかはタブヘッダのバッジで分かります(リプレイ再生中は「自動応答(停止中)」「リプレイ(▶ 実行中)」、起動中に障害注入が有効なら「障害注入(ON)」)。
- ログ常設ペイン(常時表示) … 送受信ログの一覧と、選んだ行の内訳(HEX ダンプ・フィールド分解)。見出しの [⌄] で畳み、[⤢] でログだけを画面いっぱいに広げられます。境界のドラッグで高さも変えられ、状態はセッションごとに記憶されます。
- 手動送信バー(常時表示) … HEX 切り替え・送信先・送信データ入力欄・バイト数表示・[送信] ボタン。
画面項目一覧
ヘッダ部
| 項目 | 説明 |
|---|---|
| セッション名 | セッションの表示名。右の鉛筆アイコン、または名前のダブルクリックで「セッション名の変更」ダイアログが開く(サイドバーの右クリックメニュー・F2 からも同じ) |
| 状態ラベル | 転送先(上流)なし = 「スタブとして動作中」、あり = 「中継として動作中(フック N 件)」 |
| 接続概要 | 状態ラベルの右に常時表示。プロトコル/接続種別 ホスト:ポート(例: TCP/Server 0.0.0.0:8080)、中継時は → 転送先ホスト:ポート を併記。設定変更が即時反映される |
| 稼働状態インジケータ(ドット) | 緑 = 起動中 / グレー = 停止中 |
| 状態テキスト | 現在の状態を文字で表示(Listening、Connected など) |
| 「起動」/「停止」ボタン | セッションの起動・停止を切り替える |
接続タブ
接続設定は一番左の「接続」タブにまとまっています。基本接続パラメータ(プロトコル/接続/ホスト/ポート/転送先)は起動中は変更できません(グレーアウト)。停止した状態で変更してください。データ形式は起動中も変更できます。
| 項目 | 説明 |
|---|---|
| プロトコル | 使用する通信プロトコル。選択肢: TCP / UDP |
| 接続 | トランスポートの動作方向。選択肢: Server(待ち受け)/ Client(接続しに行く) |
| ホスト | Server モードではバインドするアドレス(すべての NIC を待ち受ける場合は 0.0.0.0)、Client モードでは接続先ホスト名または IP アドレス |
| ポート | バインド(Server)または接続先(Client)のポート番号 |
| 通信種別(UDP のみ) | UDP の宛先方式。ユニキャスト / マルチキャスト / ブロードキャスト。マルチキャストでは「グループ」「TTL」「応答先」、ブロードキャストでは「ブロードキャストアドレス」欄が追加表示され、いずれも「ホスト」欄は非表示になる。起動中は変更不可。詳細は セッションと通信 の「UDP の通信種別」を参照 |
| 転送先を有効にする(チェックボックス) | ON にすると転送先(上流)への中継が有効になる。起動中は変更不可 |
| 転送先ホスト | 実機など上流機器のホスト名または IP アドレス(転送先有効時のみ編集可) |
| 転送先ポート | 上流機器のポート番号(転送先有効時のみ編集可) |
| データ形式 | 受信ログ・手動送信の解釈方式。起動中も変更可。選択肢: プロジェクト既定を使う(UTF-8)/ UTF-8 / ASCII / RawHex(バイナリ HEX)。「プロジェクト既定を使う」を選ぶとプロジェクト設定の既定データ形式に従う。ここで選び直したときに、このセッションのオートメーション送信ステップへ同じ形式をまとめて適用するか確認します(違う形式のステップがある場合のみ。セッションを切り替えただけでは確認しません)。オートメーションの編集ウィンドウを開いたままだと、その項目名を挙げて「適用すると編集ウィンドウは閉じられ、編集中の内容は破棄される」ことをあわせて知らせ、ボタンが [閉じて適用] になります |
自動応答タブ
受信に自動で応答する設定をここにまとめています。上部に評価の順番を示し、①オートメーションと②バイナリ構造応答を左右に並べ、その下に③既定転送を置いています。
受信データは ①オートメーション → ②バイナリ構造応答 → ③既定転送 の順に評価され、先に応答した時点で以降は動きません。①で評価されるのは、トリガーが「パケット一致」のオートメーションだけです。
①と②の境界はドラッグで動かせます。どちらを広く見ていたかはセッションごとに記憶されます。リプレイ再生中はタブヘッダに「停止中」バッジが付き、タブの中にも案内バー(「リプレイを停止」ボタン付き)が出ます。実行されないだけで、追加・編集・削除は通常どおり行えます。
① オートメーション
トリガー × 送信ステップ × 繰り返しの自動送信定義を管理します。
オートメーションが1件もない場合、一覧の代わりに空状態メッセージと「追加」ボタンが表示されます。セッションが起動中かつオートメーションが0件の場合は、ヘッダの下にもヒントバー(「今すぐ追加」ボタン付き)が表示されます。
| 項目 | 説明 |
|---|---|
| 有効(列) | ON のときトリガー待機・実行の対象になる |
| 名前(列) | オートメーションの表示名 |
| トリガー(列) | 発火契機の要約(例: 「手動」「一致 xxx」「接続時」「周期 xxxms」) |
| 繰り返し(列) | 繰り返し方式の要約(例: 「なし」「N 回」「無限」)。実際に使われる値を表示します。保存されている設定と実際の動きが食い違う定義(周期トリガー + 繰り返し「無限」)には ⚠ が付きます(その定義を編集して「OK」を押すと消えます) |
| ステップ数(列) | 送信ステップの件数 |
| 状態(列) | 現在の実行状態(例: 「待機」「実行中 N/M(K 周)」) |
| 「追加」ボタン(ツールバー or 空状態) | 新しいオートメーションを作成してオートメーション編集を開く |
| 「編集」ボタン | 選択中のオートメーションをオートメーション編集で開く。編集画面は開いたままこの画面を操作できる(ログを見ながら編集できる)。同じオートメーションの編集画面は 1 つだけ開く |
| 「削除」ボタン | 選択中のオートメーションを削除する。そのオートメーションの編集画面を開いていた場合は確認してから削除し、編集画面は保存されずに閉じる |
| 「操作」列 ▶(実行) | その行のオートメーションを手動で即時実行する。セッション停止中は淡色で押せない |
| 「操作」列 ■(停止) | 実行中はトグルが ■ に変わり、押すとその行だけ停止する(他の行・セッションには影響しない) |
| ヒントバー「今すぐ追加」 | 起動中かつ0件のときタブ上部に表示。クリックするとオートメーション追加ダイアログを開く |
② バイナリ構造応答
フィールド条件マッチによる自動応答ルールを管理します。
| 項目 | 説明 |
|---|---|
| 有効(列) | ON のときこのルールが評価対象になる |
| 名前(列) | ルールの表示名 |
| 優先度(列) | 評価順(小さい値が先)。最初にマッチしたルールの応答が使われる |
| 概要(列) | 対象構造体定義とフィールド条件の要約 |
| 「追加」ボタン | 新しいルールを作成して構造体ルールの編集を開く |
| 「編集」ボタン | 選択中のルールを構造体ルールの編集で開く。編集画面は開いたままこの画面を操作できる(ログを見ながら条件を組み立てられる)。同じルールの編集画面は 1 つだけ開く |
| 「削除」ボタン | 選択中のルールを削除する。そのルールの編集画面を開いていた場合は確認してから削除し、編集画面は保存されずに閉じる |
③ 既定転送
①②のどちらも応答しなかった受信をどう扱うかを示します。転送先(上流)が未設定ならそのまま破棄され(スタブとして動作)、設定済みならその宛先へ転送されます(中継として動作)。[接続タブを開く] ボタンで転送先の設定へ移動できます。
リプレイタブ
保存済みのシナリオ(.commscenario)を読み込み、実機なしで決定論的に再生します。転送先ありのセッション(中継動作)では使用できません。異常系を試したいときは「障害注入」タブ(後述)を組み合わせてください。
再生中はオートメーションとバイナリ構造応答が止まります。受信への応答をシナリオが引き受けるためです(どちらか片方だけが動きます)。再生中はタブヘッダにバッジが付き、「自動応答」タブの中とヘッダの「リプレイ中」バッジにある「リプレイを停止」でいつでも通常動作へ戻せます。手動送信も再生中は無効になります。
| 項目 | 説明 |
|---|---|
| 「シナリオを開く」ボタン | .commscenario ファイルを選択して読み込む |
| シナリオ名・ステップ数 | 読み込んだシナリオの情報を表示する |
| 再生モード | 「対話」(受信を待ち合わせて対応応答を返す・既定)または「素(す)」(受信を待たず機器→アプリ方向を時刻順に送出)を選択する |
| 速度 | 再生速度倍率。等倍 / ×0.5(スロー)/ ×2 / ×5 / 即時 から選択する |
| 進行表示(ステップ N / M) | 現在のステップ番号と総ステップ数。状態(受信待ち / 実行中 / 完了 / 停止)を併記する |
| 「再生」ボタン | 読み込んだシナリオの再生を開始する。起動中かつ転送先なしのセッションでのみ有効 |
| 「停止」ボタン | 再生を途中で中断する |
障害注入タブ
通信をわざと不安定にして、アプリの異常系を試すためのタブです。リプレイ専用の機能ではありません。ここでの設定は、そのセッションのすべての送信——オートメーション・バイナリ構造応答・リプレイ・中継(プロキシ)の転送・手動送信——に等しく効きます。
起動中でも変更はすぐ反映されます。値を変えた時点でセッションに適用され、ログにも1行記録されます。ただしシードだけは起動中は変更できません(乱数列の途中で種を変えると「同じシードなら同じ壊れ方」という再現性が崩れるため)。シードを変えるときはセッションを停止してください。
| 項目 | 説明 |
|---|---|
| 障害注入を有効にする(チェックボックス) | ON にすると以下の各設定項目が有効になる。OFF のときは通信に一切手を加えない(設定値はそのまま保持され、プロジェクトにも保存される) |
| ロス率(%) | CommSim からの送信をドロップする確率 |
| 遅延(ms) | 送信前に加える固定の遅延時間 |
| ゆらぎ(ms) | 遅延に加えるランダムな上乗せ幅(ジッタ模倣) |
| 切断(送信 N 回で) | 指定した送信回数に達したとき接続を切断する。0 = 切断なし |
| シード | 障害注入の乱数シード。同じシードは同じ壊れ方を再現する(決定論)。起動中は変更不可 |
障害注入が効いている間は、セッション見出しの右に「障害注入 ON」のバッジが出ます。また、多機器タイミング試験の実行中は試験側が障害パラメータを掃引するため、このタブは編集できなくなります。
ログ常設ペイン
送受信・エラー・システムメッセージを時系列の一覧で表示します。タブではなく常設のペインなので、どのタブを開いていても受信が見えます。スタブ・中継どちらのモードでも通信を記録し、新しいエントリが追加されると自動的に最下部へスクロールします(上方をスクロール中は追従しません)。
右側の詳細ペインには、選んだ行の HEX ダンプとフィールド分解が出ます。プロジェクトにバイナリ構造定義がある場合は既定で表示され、無い場合は畳まれた状態で始まります(「詳細」チェックボックスでいつでも切り替えられます)。
| 項目 | 説明 |
|---|---|
| 「⌄」/「⌃」ボタン(畳む) | ログペインを畳んで見出しだけにする/元の分割表示へ戻す。畳んでもタブ側の作業は続けられる |
| 「⤢」ボタン(最大化) | タブ側を隠してログだけを画面いっぱいに広げる/元の分割表示へ戻す。流れる量が多いときに使う |
| 見出しの境界(ドラッグ) | タブ側とログペインの高さの配分を変える。高さはセッションごとに記憶される |
| 「詳細」チェックボックス | 右側の詳細ペイン(HEX ダンプ・フィールド分解)の表示を切り替える。切り替えた状態はセッションごとに記憶される |
| 「種別」ドロップダウン | ボタンを開くと Tx / Rx / Heartbeat / System / Error / Proxy / Script のチェックリスト(先頭の「(すべて選択)」で一括 ON/OFF)。既定はすべて ON。絞り込み中はボタンに「種別 (n/7)」と件数を表示。「Proxy」のみ ON にすると中継パケット専用の表示になる |
| 「ログ操作」メニュー > 「クリア」 | ログ表示を消去する(ファイル出力には影響しない) |
| 「ログ操作」メニュー > 「全行コピー」 | 現在の種別フィルタを適用した行をヘッダ行込みのタブ区切りテキストでクリップボードへコピーする(Excel 貼り付け対応) |
| ログ行の右クリックメニュー | 「この行をコピー」(選んだ 1 行を全行コピーと同じ書式で写す)/「全行コピー」/「クリア」 |
| 「ログ操作」メニュー > 「シナリオとして保存」 | 現在のキャプチャ内容を .commscenario ファイルとして保存する。採取ログ記録オフ時も書き出せる。保存したシナリオは「リプレイ」タブで再生できる |
| 「構造体パース表示」チェックボックス | ON にすると受信ログにフィールド分解結果を追加表示する |
| 記録インジケータ(●/○) | 緑の「●」= ファイル記録中 / グレーの「○」= 記録なし |
| 記録状態テキスト | 記録先ファイルパスまたは「記録なし」 |
| 記録失敗の警告バナー | 採取ログの書き込みが(ファイルロック等の外部要因で)継続できなくなった場合に表示される。記録を一度停止して再度開始すると復旧を試みる。表示中はその間のログが記録されていない点に注意 |
| 「ログ操作」メニュー > 「ログフォルダを開く」 | ログ出力先フォルダをエクスプローラで開く |
| 「ログ操作」メニュー > 「ビュワーで開く」 | このセッションの記録ログファイルをログビュワーで開く(統合一覧・タイムライン・HEX/構造分解で分析) |
| ソース(#N)(列) | 接続番号(TCP サーバ複数クライアント時に区別) |
| 時刻(列) | ログの記録時刻(HH:mm:ss.fff) |
| #(列) | 通し番号 |
| 種別(列) | Tx(送信・青)/ Rx(受信・緑)/ Sys(システム・灰)/ Err(エラー・赤)/ HB(ハートビート・紫)/ Proxy(中継・橙)/ Script(スクリプト・灰青) |
| 方向(列) | AppToDevice = テスト対象アプリ → CommSim または実機 / DeviceToApp = CommSim または実機 → テスト対象アプリ |
| Inj(列) | CommSim がフックして差し替えたパケットかどうか(✓ が付き、その行が淡くハイライトされる) |
| Len(列) | バイト数 |
| HEX(列) | バイト列の HEX ダンプ |
| 内容(列) | テキスト表現またはデコード済み文字列 |
ログは最大 1000 件(既定)を表示します。プロジェクト設定で変更できます。超えると古いものから削除されます。
手動送信バー(画面最下部)
起動中に任意のデータを 1 回送信します。
| 項目 | 説明 |
|---|---|
| HEX チェックボックス | ON = バイナリ入力(バイト単位の HEX 編集コントロール)/ OFF = テキスト入力 |
| 入力欄 | 送信するデータを入力する(テキストモードまたは HEX バイト列) |
| 「送信」ボタン | 現在の接続先へ即時送信する |