Skip to content

二次开发 ​

BeiniLink 开放命令行、脚本和 AI 控制接口,可以接入测试台架、CI 和自己的工具。

方式运行位置适合
命令行 beinilink-cli电脑,不需要打开上位机批处理、CI、被其他程序调用
AI 协助修改上位机运行时,或直接改工程文件用 AI 工具修改配置、启停测量、分析结果
PC 端脚本上位机测量期间响应报文、读写信号和变量
设备端 Python设备在设备上运行的逻辑

命令行 ​

安装上位机时会同时安装 beinilink-cli 并加入用户 PATH,打开新的终端即可使用。也提供不含上位机的独立压缩包,见下载。

命令用途
devices列出已连接设备
can发送、监听、读取版本、运行调度文件
lin发送、请求、监听、从节点响应、唤醒、总线供电、运行调度文件
uart发送、监听
repl执行设备端 Python 命令,或进入交互终端
utilsCAN、LIN 通道的 UART 工具模式
project校验工程文件、导出工程结构定义,不连接设备
powershell
# 发送一帧 CAN
beinilink-cli can send --bitrate 500k --id 0x200 --data "AA BB CC DD EE FF 11 22"

# 只听模式监听 10 秒,输出 JSON Lines
beinilink-cli --duration 10 --output jsonl can monitor --bitrate 500k --listen-only

# LIN 请求
beinilink-cli lin request --baud 19200 --id 0x3D --len 8 --enhanced --timeout-ms 500

# 模拟 LIN 从节点 30 秒
beinilink-cli --duration 30 lin slave --baud 19200 --response 0x21:01020304:enhanced

# 在设备上执行一条 Python 命令
beinilink-cli repl exec --command "print('hello')" --timeout-ms 1000

完整参数用 beinilink-cli --help 查看。

接入其他程序 ​

标准输出只有命令结果,错误和诊断信息走标准错误。--output json 用于一次性命令,--output jsonl 用于流式命令。

json
{"timestamp":"2026-08-13T08:30:15.123Z","channel":"can","kind":"frame","data":{}}
退出码含义
0成功,或 --duration 到时结束
2参数或输入无效
3未找到设备或对应端口
4串口打开失败、被占用或模式冲突
5设备拒绝、响应超时或协议错误
6调度文件错误
10内部错误
130Ctrl+C 中断

命令行和上位机不能同时占用同一接口,被占用时会返回明确错误。

AI 协助修改 ​

AI 工具有两种方式修改配置:连接运行中的上位机,或直接修改工程文件。

连接上位机 ​

上位机运行时,支持 MCP 的 AI 工具可以读取并修改当前工程、启停测量、读取 Trace 和控制台。请求在主窗口内执行,与界面共用工程状态和测量流程。通信使用本地命名管道,不开放网络端口。

在 AI 工具中配置 MCP,并保持上位机主窗口打开:

json
{
  "mcpServers": {
    "beinilink": {
      "command": "node",
      "args": ["<安装目录>/resources/ai/ai-mcp.cjs"]
    }
  }
}
工具用途
get_project读取当前工程和保存状态
open_project打开指定工程,不会丢弃未保存修改
update_project修改配置,不自动保存或发送
save_project保存工程
get_status读取连接、设备和测量状态
start_measurement启动测量,可能发送报文
stop_measurement停止测量
read_trace读取最近的总线帧,最多 500 条
read_information读取最近的信息、警告和错误,最多 200 条

update_project 可修改工程名称、硬件模块、DBC 和 LDF 路径、CAN 和 LIN 调度、LIN 响应以及 E2E 配置。

典型流程:读取工程 → 修改配置 → 回读确认 → 保存 → 启动 → 读取状态、帧和错误。

  • 修改、保存和启动都要带上最近一次返回的版本号。界面改过工程后,旧请求会被拒绝。
  • 工程只在停止测量时才能修改。
  • 成功的修改、保存、打开和启动操作都记录在控制台。
  • 请求超时表示结果未知,先读取状态,不要直接重发。
  • Trace 读取的是有界快照,不能代替无损日志或物理层时序测量。
  • 固件发布、刷写、复位设备和任意代码执行不在此接口中。

修改工程文件 ​

.blproj 是 JSON,可以交给 AI 修改。保留原文件,修改后用命令行校验:

powershell
# 导出工程结构定义,提供给 AI
beinilink-cli project schema --output json

# 校验修改结果
beinilink-cli project validate --file .\Demo.blproj --output json

# 同时检查数据库和回放文件是否存在
beinilink-cli project validate --file .\Demo.blproj --check-files

校验不连接设备,也不修改工程,错误信息包含字段位置,通过后请在上位机中确认配置。详见接口工程示例与工程结构。

PC 端脚本 ​

脚本用 TypeScript 或 JavaScript 编写,在测量期间运行,可以响应 CAN、LIN、MeLiBu 报文,读写信号和变量,也能发送 MeLiBu 帧、启停计划。说明见 PC 端脚本,示例见 script.ts 和 script.blproj。

设备端 Python ​

设备支持简单的 Python 脚本和 REPL,说明见 Python。