Viewerで結果を読む¶
文書バージョン:1.2.0
対象GitHubバージョン:v1.2.0
文書ID:guide-viewer
文書状態:公開済み。mainへのpush時に検証後、GitHub Pagesを自動更新
更新履歴¶
| 文書バージョン | 更新日 | 更新内容 |
|---|---|---|
1.2.0 |
2026-10-22 |
v1.2.0の対象タグ・文書版を確定。過去の測定基準と公開済み履歴を保持 |
1.1.1 |
2026-10-11 |
公開文書整合性監査の修正を反映し、文書PATCHを一つ上げ、対象タグをv1.1.4へ統一 |
1.1.0 |
2026-10-05 |
初版:公開サンプルの実行・実画面・条件変更実験、GitHub Pages公開とMarkdown再利用を整備 |
目的¶
生成した結果から「どの要求が、いつ送られ、誰が受信したか」を読めるようにします。最終結果と選択時刻の状態を区別し、予定のEOFを実際の完了と取り違えないことが目標です。
構成と責務¶
| 領域 | 何を読むか |
|---|---|
| 再生・時刻操作 | 観測期間の中で現在見る時刻を選ぶ |
| ノードとパケットの流れ | ControllerとBusの接続、通信方向 |
| 通信タイムライン | 実行全体の送信、待機、間隔、RX処理 |
| 現在のノード状態 | 選択時刻までに確定したキューと通信状態 |
| 要求一覧 | 要求ID、送信元、現在の状態、実行全体の時刻 |
| 要求の詳細 | 選択要求の生成・SOF・EOF・解放・受信と元レコード |
Viewerは保存結果を読むツールです。設定を変えて新しい通信結果を生成する処理はrunの責務です。画面内で時刻を変えても結果ファイルは変わりません。
接続と処理フロー¶
run → results.json → view → 結果とCSS/JSを埋め込んだ単独HTML
→ ブラウザ内で読込と状態復元
→ 時刻選択 → 確定済み状態と通信方向を表示
ブラウザ表示にRustやNode.jsは不要です。単独HTMLだけを渡しても同じ保存記録を読めます。ただし結果と入力snapshotがHTMLに入るので、共有前に内容を確認します。ここで使うデータは公開サンプルだけです。
最小実行例と設定¶
初めてのCAN実行で作成した結果を使います。
./target/debug/dir-simulator view --input results-guide-minimal/results.json --output guide-read-viewer.html
guide-read-viewer.htmlを開きます。既存ファイルは上書きしないので、新しい名前にしてください。「結果ファイルを開く」または1ファイルのドロップで別のresults.jsonへ切り替えられます。
結果と実画面:238µsを読む¶
- 時刻の表示単位をµsにします(初期値)。
- 「時刻を指定」に
238を入力し「移動」を押します。 - 要求一覧で
a:0を選びます。SOFは0µs、EOFは238µsです。 - 要求詳細でMain.bとMain.cの受信が238µsと確定したことを確認します。
b:0はまだSOFに達していません。Busは3bitの間隔中で、次のSOFは244µsです。

撮影条件:最小例、238µs、画面幅1,440px。選択時刻で確定する状態と、タイムラインに保存された全体記録を分けて読みます。例えばb:0のEOF列に400µsが見えても、238µs時点でbの送信が完了した意味にはなりません。
「次のイベント時刻」で244µsへ進むとbが送信を開始します。「前のイベント時刻」でも移動先の直前区間を同じ通信方向で再表示します。時間を戻す操作が、逆方向の物理通信を作るわけではありません。
「▶ 再生」は線を青(Controller→Bus)・橙(Bus→Controller)で強調します。ステップではメッセージが移動します。1×は観測期間全体を約8秒で表示する画面速度で、CANの実時間ではありません。同時刻の内部イベント順を逐次再現するものでもありません。
実験:1設定を変える — 表示単位をµsからnsへ¶
シミュレーション入力を変えず、Viewerの「時刻の表示単位」だけをnsへ切り替えます。同じ238µsが238,000nsとして表示され、ps欄は238,000,000psのままです。要求の送信・受信状態も同じです。
この実験で変わるのは単位表示です。入力する数値にも選択単位が適用されるので、nsを選んだあとに238を入力すると238nsへ移動します。238µsを指定するなら238000を入力します。ps整数へ換算できない値や観測期間外の入力はエラーになります。
ビットレート変更の別結果は「結果ファイルを開く」でresults-guide-fast/results.jsonを選びます。これが設定変更を結果へ反映する手順です。
制約と関連機能¶
タイムライン描画は最大500区間、要求一覧は75行ずつです。省略表示やページ移動は母数を変えません。未到達の予定EOF・解放・受信を実績として補いません。partial: trueの結果では「部分結果」を確認し、未確定時刻を完了として数えないでください。
ガイドの基準版v1.1.3はCAN/Gatewayのほか、同版に収録されたEthernet profile、CAN FD外部位相bit数、AXI/SoC/AHB/NoC/メモリ・IPCの初期transaction profileへも対応しています。モデルにより専用画面とレコードが切り替わります。このページの操作と数値の検証はClassical CAN最小例です。