dsh-proteus-bridge:让 DSH Agent 控制 Proteus 8/9 交互仿真与工程保存

前言

在 DeepSeek Harness(Cordis)里做电路相关任务时,Agent 往往只能停留在「描述原理图、口头说怎么仿真」这一层:本机已经装着 Proteus,却缺少一条从工具调用到 Proteus 窗口/COM 的桥。人工点 Play、Pause、保存 .pdsprj,和让 Agent 按步骤复现,是两套完全不同的工作流。

下面介绍社区插件 dsh-proteus-bridge(维护者 hualuo520-h):对外暴露一套 Proteus 工具,内部按本机是否注册 Labcenter.InteractiveSimulation COM 服务器,自动选择 COM 或 UI(Win32 键盘驱动) 传输;proteus_connect 会明确回传 transport 字段,不做静默降级。

这是什么

dsh-proteus-bridge 是 DeepSeek Harness 工具插件,定位是让 Harness Agent 控制 Proteus 8 / 9 的交互仿真并保存工程。插件负责 Agent 侧的连接、启停、状态、保存等;原理图本身仍需人工或通过 COM 路径下的编辑工具绘制。

社区插件目录(SkillHub)与 DeepSeek / 幻方无官方从属关系;安装前建议自行阅读源码与许可证。插件以当前 dsh 进程权限 运行,会启动或附着本机 Proteus 进程并发送按键/COM 调用。

传输层与能力对照

传输 触发条件 能力概要
com 系统注册了 Labcenter.InteractiveSimulation COM 服务器 仿真生命周期、信号读取、原理图编辑(放置/引脚/连线)、保存
ui 未注册 COM(随 Proteus 8.17 发行的版本即属此类) 仿真生命周期、状态探测、工程保存、布局建议

工具一览(与 README 一致):

工具 COM UI
proteus_connect ✅ ✅
proteus_sim_start / proteus_sim_stop / proteus_sim_status ✅ ✅
proteus_save_schematic ✅ ✅
proteus_suggest_layout ✅ ✅(纯本地计算,不需连接)
proteus_read_signals ✅ ⛔ UNSUPPORTED_ON_TRANSPORT
proteus_list_placeable_components / proteus_place_component ✅ ⛔
proteus_query_pins / proteus_connect_pins ✅ ⛔

UI 传输下不可用的工具返回领域失败(ok:false + code + hint),例如:

PROTEUS UNSUPPORTED_ON_TRANSPORT: proteus_query_pins 在 UI 传输下不可用(shipping Proteus 无原理图脚本接口)
hint: UI 传输只覆盖仿真生命周期与保存

核心功能说明

连接与仿真

  1. 调用 proteus_connect 建立会话,确认 transport 是 com 还是 ui。
  2. 用 proteus_sim_start、proteus_sim_stop、proteus_sim_status 管理交互仿真生命周期与状态。

COM 路径下还可 proteus_read_signals 读探针;UI 路径通过菜单状态探测区分 idle / paused / running(实现针对 Proteus 8.17 实测按键与菜单导航,详见仓库 README)。

保存工程

proteus_save_schematic 在两种传输下均可用。UI 传输走 Ctrl+S,并处理版本格式确认对话框;保存前后会校验文件 {size, mtimeMs, sha256},内容未变则返回 SAVE_NOT_APPLIED,避免谎报成功。参数 overwrite / confirmRollback 主要对 COM 有意义;UI 下覆盖语义由 Proteus 自身备份机制承担。

布局建议

proteus_suggest_layout 为本地计算,无需连接 Proteus,COM 与 UI 均可调用。

原理图编辑(仅 COM)

proteus_list_placeable_components、proteus_place_component、proteus_query_pins、proteus_connect_pins 仅在 COM 传输可用。可放置器件集合以 whitelist/placeable.v1.json 为准,须真机验证后才列入;空数组时 proteus_place_component 返回 COMPONENT_NOT_IN_PLACEABLE_WHITELIST。

安装与启用

官方安装命令:

dsh plugin add dsh-proteus-bridge

插件通过 cordis.patch.yml 注册进 profile 组合,例如:

- insert:
    - id: dsh-proteus-bridge
      name: dsh-proteus-bridge

典型用法(Agent 侧流程)

README 未给出固定对话示例,可复现的操作顺序如下:

  1. proteus_connect(可选传入工程路径;UI 传输会按窗口标题附着或启动 PDS.EXE)。
  2. proteus_sim_status 确认当前状态,再 proteus_sim_start 或 proteus_sim_stop。
  3. 需要落盘时调用 proteus_save_schematic。
  4. 若在 COM 传输且需改图,再依次使用白名单内的放置、查引脚、连线工具;UI 传输下应跳过这些步骤,仅使用仿真与保存。

开发者在仓库根目录可跑离线自检(不连 Proteus、不需要宿主):

node test/selfcheck.mjs

适用场景与注意

适合谁

  • 已在 Windows 上使用 Proteus 8/9,希望把「启停仿真、看状态、保存工程」交给 DSH Agent 编排的工作流场景。
  • 本机具备 COM 服务器、且需要 Agent 读信号或脚本化改原理图时,应优先确认 proteus_connect 返回 transport: com。

务必知晓的限制

  • 随 Proteus 8.17 发行的版本 不含 COM 服务器(WINCORE.DLL 无类型库),多数环境恒为 ui,原理图编辑类工具不可用。
  • UI 传输的菜单与快捷键按 8.17 SP2 实测;其它 build 需自行复核。
  • 0.4.3 起改进了非 C:/D: 盘符安装 Proteus 时找不到 PDS.EXE 的问题(App Paths、卸载项、盘符扫描等);仍找不到时返回 PROTEUS_NOT_INSTALLED。
  • 插件仅支持 Windows 上的 Proteus 桌面流程;Linux/macOS 用户无法直接使用 UI 传输。

结尾

dsh-proteus-bridge 把 Proteus 交互仿真与保存收成一套 Harness 工具,并在无 COM 时 honest 地降级到 UI 传输,避免 Agent 误以为能脚本改图。进一步了解可打开 SkillHub 目录页 与 GitHub 仓库 阅读完整 README、CHANGELOG 与 whitelist/placeable.v1.json。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye