Skip to content

脚本与自动化 ​

Lua 5.4、JSON 操作按钮、MCP 服务器和 AI 聊天都驱动同一个项目模型。脚本存放在工作区内,因此会随项目一起移动。

Lua 脚本 ​

打开 Tools → Lua Scripts。脚本存放在:

  • <workspace>/scripts/*.lua —— 共享脚本;
  • <project>/scripts/*.lua —— 项目脚本,优先级更高。

Run 在沙箱化的 Lua 状态中执行脚本;print 和 bm.log 写入 Scripts 输出和应用日志。错误会停止脚本,并同时显示在两处。实时操作仍然需要自动化权限和确认。

lua
-- Read one DID and print the decoded value
local ecu = 0x100 -- txid; a unit string such as "ENGINE" also works
local p = bm.ecu.read_did(ecu, 0xF190)
print(string.format("%04X", 0xF190), p.value or p.hex)
分组示例
项目与 ECU 信息bm.ecu.list、bm.ecu.list_parameters、bm.ecu.list_dtcs
参数bm.ecu.read_did、bm.ecu.read_all、bm.ecu.write_did
故障bm.ecu.read_dtcs
实时操作bm.ecu.routine_start、bm.ecu.routine_stop、bm.ecu.io_control
原始 UDSbm.ecu.raw_uds、bm.ecu.uds
内存bm.ecu.read_memory、bm.ecu.write_memory
认证bm.ecu.auth_levels、bm.ecu.authenticate、bm.ecu.auth_seed、bm.ecu.auth_key
固件bm.firmware.load、bm.firmware.save、bm.firmware.info、bm.firmware.recipe
刷写bm.ecu.flash、bm.ecu.download、bm.ecu.flash_begin、bm.ecu.flash_end

完整参考随应用文档一起发布。

Lua 脚本编辑器和控制台

操作按钮 ​

操作按钮通过 File → Load Actions 从 JSON 加载:

json
{
  "tab_name": "Actions",
  "action_buttons": [
    { "name": "Session 03", "comment": "Extended session", "group": "Session", "data": "10 03" },
    { "name": "Read VIN", "comment": "Lua action", "group": "Scripts", "script": "read_vin.lua" }
  ]
}
  • data 是十六进制的原始 UDS 请求;发送它需要确认。
  • script 是项目或工作区 scripts/ 文件夹中的 .lua 文件。
  • group 是按钮组(默认 Default);comment 是工具提示。

同名脚本中,项目脚本优先于工作区脚本。

AI 助手与 MCP ​

  • 聊天后端可以是 HTTP(OpenAI 兼容端点)或 OpenCode ACP。
  • API 密钥存储在 Windows 凭据管理器中;聊天设置存放在 %LOCALAPPDATA%\BlackMagic\chat.json,项目历史存放在 chat_history.json。
  • 项目更改和实时 ECU 写入在 Settings → Automation 中分别启用。危险操作会请求确认。
  • 聊天和 MCP 客户端调用相同的工具:ECU 列表、DID/DTC 读取、DID 扫描、写入、例程、IO 控制、内存和报告。
  • HTTP 往返和工具调用都会写入日志;停滞的请求会超时。
带有 ECU 工具调用的 AI 聊天

相关 ​

免费核心。本地工作区。无需云端。