仿真功能概览

当前版本的仿真体系已经从纯前端执行迁移为服务端驱动: 前端负责建模、动画与交互,仿真逻辑通过 WebSocket 推送到后端引擎执行, 并实时同步状态、运行日志与告警。

服务端仿真引擎

仿真由 Node.js/原生引擎执行,统一处理脚本运行、事件推进与安全隔离,避免浏览器性能瓶颈。

会话与数据同步

启动前自动捕获当前项目视图、脚本与 API 绑定,确保后端会话始终使用最新快照。

可视化反馈

UI 桥接器实时渲染激活状态、动画与通知;运行日志面板、黑板和消息总线用于观察细节数据。

架构说明: 所有仿真控制操作都会通过 WebSocket 发送到服务器端, 并由统一的会话管理器协调状态。前端只负责发起操作和展示结果。

运行前准备

  1. 启动智绘服务并登录:使用 npm run devnpm start 或部署环境的启动脚本,确保浏览器中完成登录获取令牌。
  2. 加载要仿真的项目:打开或创建模型,确认脚本在编辑器中保存(建议按 Ctrl/Cmd + S 同步)。
  3. 确认仿真服务连接:页面加载后几秒内会弹出 “仿真服务已连接” 提醒;若出现警告,请检查后台服务或网络配置。
提示: 未登录或后端服务未启动时,仿真控制器会提示“仿真功能需要登录/未连接”。先处理环境问题,再尝试运行仿真。

启动与控制

仿真控制按钮位于主工具栏右侧,支持鼠标操作与快捷键:

  1. F5 或点击 运行/停止 按钮即可启动仿真;首次运行会自动创建会话并上传最新项目快照。
  2. 仿真开始后会弹出 “仿真已启动” 通知,并自动展开运行日志面板显示后端输出。

运行 / 停止

启动仿真或在运行/暂停状态下发出停止命令。完成后按钮会切换为“重置”状态。

暂停 / 继续

在仿真运行时激活,点击或使用 F6/Space 快速切换暂停与恢复。

极速模式

切换仿真速度,减少动画和延迟,适合长时间或批量测试。状态会保存在本地。

多轮仿真

打开批量运行对话框,配置轮数、超时与出错策略,用于重复实验和统计分析。

状态提示: 所有控制操作都会在右上角弹出通知(成功、警告或错误),同时写入运行日志,便于追踪历史。

多轮仿真

多轮仿真对话框会贴靠在工具栏右侧,通过编排器串行地重复运行同一模型,帮助评估稳定性与统计结果。

配置参数

点击工具栏上的 多轮仿真 图标后会弹出悬浮面板,可在其中设置以下项目:

  • 轮数:默认 10,允许 1–9999,表示连续运行的次数。
  • 每轮超时 (s):默认 120 秒,到达阈值仍未自动停止时编排器会强制停止该轮。
  • 轮间延时 (ms):默认 500 毫秒,用于在每轮之间留出缓冲时间。
  • 出错策略:可选 “遇错继续” 或 “遇错停止”,控制出现异常后的后续行为。

执行流程

  1. 调整参数后,点击对话框右上角的 开始 图标。按钮会切换为停止样式并禁用表单字段。
  2. 编排器自动确保会话就绪、上传最新模型,再逐轮启动仿真。运行和暂停主按钮在期间会被锁定,避免手动干预。
  3. 底部的 进度提示 会实时显示 “准备 / 启动 / 运行中 / 收尾” 等状态,同时将详情写入运行日志。
  4. 若需要中止,再次点击同一按钮即可发送终止指令,并在进度区显示 “已中止”。
  5. 全部完成后,进度提示会总结成功/失败次数与平均耗时,面板恢复为可编辑状态。
建议: 在脚本中把关键指标写入黑板或消息总线,多轮结束后即可直接在侧边栏或控制台比较差异。
多轮仿真

多轮仿真配置对话框

监控与可视化

运行日志(Simulation Console)

运行日志面板在启动时自动弹出,集中展示后端返回的状态消息、脚本输出与错误告警,便于第一时间定位问题。

  • 实时分级:不同级别(info/warn/error/script)采用独立配色,关键事件自动置顶。
  • 常用操作:支持“清空”“复制全部”“快速折叠”三种操作,适合保留或共享运行日志。
  • 历史保留:最多缓存 500 条记录,超过部分自动滚动并丢弃最早信息。
运行日志面板

运行日志:查看实时输出与告警

黑板数据(Blackboard)

黑板侧边栏用于集中展示仿真过程中的共享数据,可通过 查看 → 黑板数据 或快捷键 Ctrl/Cmd + B 打开。

  • 数据视图:按照全局变量、对象状态、自定义指标分类显示,支持折叠分组。
  • 快速定位:提供关键字过滤与高亮,能在复杂模型中迅速找到关键信息。
  • 脚本联动:黑板读取/写入接口与仿真脚本一致,适合做运行时计数与条件触发。
黑板数据侧边栏

黑板数据:集中查看共享变量与对象状态

消息总线(Message Bus)

若后端启用了消息总线接口,可通过 查看 → 消息总线Ctrl/Cmd + Shift + M 打开事件监控面板。

  • 通道概览:按通道分类展示发送、消费、待处理数量,并给出最新时间戳。
  • 调试工具:内置搜索过滤、刷新、清空操作,适合分析异步流程或跨脚本通信。
  • 实时更新:与仿真 WebSocket 同步推送,可在批量仿真期间持续观察消息趋势。
消息总线查看器

消息总线:监控脚本间的事件流

常见问题

仿真服务未连接

可能原因:

  • 后端服务未启动或端口被防火墙阻断。
  • 登录状态失效,令牌无法通过鉴权。
  • 浏览器阻止了 WebSocket 连接(HTTPS/证书配置错误)。

解决方法:

  • 确认 npm start 或 Docker 服务正在运行,查看服务器日志。
  • 刷新页面重新登录,确保收到 “仿真服务已连接” 提示。
  • 在浏览器开发者工具的 Network → WS 页面检查握手失败原因。

启动后立即自动停止

可能原因:

  • 事件队列在初始状态即为空(模型没有可执行流程)。
  • 脚本抛出异常或守卫条件全部返回 false
  • 仿真超时或触发了后端的自动停止策略。

解决方法:

  • 检查初始状态设置,确保至少有一个过程/对象被激活。
  • 打开运行日志,查看是否有脚本错误或条件不满足的提示。
  • 适当延长多轮仿真超时时间或在脚本中输出更多诊断信息。

控制台没有任何输出

可能原因:

  • 脚本未被触发,或日志被条件过滤掉。
  • 仿真尚未真正启动(仍处于未连接/未创建会话状态)。
  • 控制台被手动关闭或消息被清空。

解决方法:

  • 确认流程确实执行,必要时在脚本开头临时加入 console.log
  • 观察通知消息以及工具栏按钮状态,确保仿真已进入运行阶段。
  • 点击工具栏中的“运行日志”按钮或重新启动仿真以自动展开窗口。

最佳实践

逐步验证

先在小范围内验证核心流程,再逐步叠加脚本与复杂逻辑,避免一次性排错困难。

使用版本控制

将模型与脚本纳入 Git 等版本管理,关键节点打标签,方便回滚和协作。

保持清晰日志

在关键脚本节点输出结构化日志,并同步到黑板或消息总线,便于后续排查。

强化错误处理

脚本中使用 try/catch 捕获异常,将错误原因写入控制台和黑板,避免无提示失败。

多轮验证

通过多轮仿真或不同随机种子观察统计变化,及时发现偶发问题或性能瓶颈。

记录配置

为重要仿真运行记录参数、版本与结论,形成可追踪的实验手册。

下一步

熟悉仿真运行后,推荐继续探索:

  • API 集成:将仿真流程与外部系统、REST 接口联动。
  • 高级功能:了解原生引擎、模板系统与团队协作能力。