TUI 交互式启动
fastsim_tui 是基于 Textual 构建的终端交互界面(TUI),采用 lazygit 风格的双面板布局,提供与 fastsim 命令行完全相同的功能,以可视化的方式浏览和执行命令。
bash
fastsim_tui
界面布局
TUI 启动后分为两个主要区域:
- 左侧面板:命令列表,按分组(Simulation / Config Tools / Recording / Registry)排列,使用方向键浏览,Enter 执行
- 右侧面板:终端输出区域 + 底部状态栏,显示命令的实时输出和仿真状态
底部状态栏显示当前焦点位置、运行状态和可用快捷键提示。
命令分组
| 分组 | 包含命令 | 说明 |
|---|---|---|
| Simulation | launch_simulation | 仿真启动(子进程模式) |
| Config Tools | validate_configuration、show_config、diff_config、inspect_scene、inspect_task、inspect_extension | 配置校验与检查 |
| Recording | inspect_recording、plot_trajectory | 录制数据分析 |
| Registry | show_registery、show_stereotype_params、show_static_api | 注册表与 API 查看 |
命令执行流程
- 选择命令:在左侧面板用
↑/↓导航到目标命令 - 按 Enter:弹出参数输入弹窗(Modal)
- 填写参数:文本输入框填写路径等参数,Toggle 开关控制布尔选项
- 确认执行:按
Enter或点击Run执行;按Esc取消 - 查看输出:右侧面板实时显示输出结果
对于需要确认的命令(如 launch_simulation),会先弹出确认对话框。
两种执行模式
TUI 内部区分两种执行方式:
- 函数调用(function):在 TUI 进程内同步执行,输出重定向到右侧面板。适合轻量操作(校验、查看配置等)。
- 子进程(process):以独立子进程启动,stdout 实时流入右侧面板。
launch_simulation使用此模式,避免仿真进程阻塞 TUI 界面。
同一时刻只能运行一个子进程。
状态监控
当 launch_simulation 以 --monitor yes 模式运行时,TUI 会实时解析仿真进程输出的状态信息,在底部状态栏显示:
- 当前仿真步数和时间步长
- 运行状态(Running / Stopped / Error)
命令过滤
按 / 键进入搜索模式,输入关键词过滤命令列表。按 Esc 清除过滤并返回完整列表。
也可以使用 Textual 内置的命令面板(Command Palette)快速定位命令。
快捷键
| 快捷键 | 功能 |
|---|---|
↑ / ↓ | 在命令列表中移动 |
Enter | 执行选中的命令 |
Tab | 在左右面板之间切换焦点 |
/ | 过滤命令(搜索模式) |
Esc | 清除过滤 / 取消弹窗 |
Ctrl+X | 终止正在运行的子进程 |
Ctrl+L | 清空输出面板 |
Ctrl+S | 将输出保存到文件 |
? | 显示帮助弹窗 |
Ctrl+C | 退出 TUI |
典型使用流程
- 执行
fastsim_tui启动界面 - 选择 validate_configuration,输入配置文件路径,确认校验结果
- 选择 inspect_scene 查看场景实体详情
- 选择 launch_simulation,输入配置路径,确认后启动仿真
- 仿真运行中,在输出面板查看实时日志和状态
- 如需终止仿真,按
Ctrl+X - 仿真结束后选择 inspect_recording 检查录制数据