二次开发
BeiniLink 开放命令行、脚本和 AI 控制接口,可以接入测试台架、CI 和自己的工具。
| 方式 | 运行位置 | 适合 |
|---|---|---|
命令行 beinilink-cli | 电脑,不需要打开上位机 | 批处理、CI、被其他程序调用 |
| AI 协助修改 | 上位机运行时,或直接改工程文件 | 用 AI 工具修改配置、启停测量、分析结果 |
| PC 端脚本 | 上位机测量期间 | 响应报文、读写信号和变量 |
| 设备端 Python | 设备 | 在设备上运行的逻辑 |
命令行
安装上位机时会同时安装 beinilink-cli 并加入用户 PATH,打开新的终端即可使用。也提供不含上位机的独立压缩包,见下载。
| 命令 | 用途 |
|---|---|
devices | 列出已连接设备 |
can | 发送、监听、读取版本、运行调度文件 |
lin | 发送、请求、监听、从节点响应、唤醒、总线供电、运行调度文件 |
uart | 发送、监听 |
repl | 执行设备端 Python 命令,或进入交互终端 |
utils | CAN、LIN 通道的 UART 工具模式 |
project | 校验工程文件、导出工程结构定义,不连接设备 |
# 发送一帧 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 用于流式命令。
{"timestamp":"2026-08-13T08:30:15.123Z","channel":"can","kind":"frame","data":{}}| 退出码 | 含义 |
|---|---|
| 0 | 成功,或 --duration 到时结束 |
| 2 | 参数或输入无效 |
| 3 | 未找到设备或对应端口 |
| 4 | 串口打开失败、被占用或模式冲突 |
| 5 | 设备拒绝、响应超时或协议错误 |
| 6 | 调度文件错误 |
| 10 | 内部错误 |
| 130 | Ctrl+C 中断 |
命令行和上位机不能同时占用同一接口,被占用时会返回明确错误。
AI 协助修改
AI 工具有两种方式修改配置:连接运行中的上位机,或直接修改工程文件。
连接上位机
上位机运行时,支持 MCP 的 AI 工具可以读取并修改当前工程、启停测量、读取 Trace 和控制台。请求在主窗口内执行,与界面共用工程状态和测量流程。通信使用本地命名管道,不开放网络端口。
在 AI 工具中配置 MCP,并保持上位机主窗口打开:
{
"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 修改。保留原文件,修改后用命令行校验:
# 导出工程结构定义,提供给 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。
