配置格式
- 为确保用户自定义开发的插件包可以正常导入到珞石应用程序中,用户需要严格按照标准格式编写插件包与配置文件,并且保证配置文件名与插件名一致。
第一步:配置文件
- 用户在开发客户端插件时,需要严格遵守标准制作配置文件(插件名.json),并且保证插件名称与配置文件中《name》字段的名称一致。
{
"client_plugin":{
"name":"plugin1", // 插件名,与插件文件名称保持一致,必填项
"depend":["plugin2","plugin3"], // 依赖客户端插件,选填
"ctrlDepend":[], // 依赖控制器插件,选填
"enable":false, // 加载后插件启用状态,默认加载后不启用,必填项
"version":"3.0.1", // 插件版本号 必填项
"min_hmi_version":"3.0.1", // 最小支持的HMI版本号(xCore版本号),选填
"custom_hmi_version":[], // 自定义适配的版本,选填
"author":"rokae", // 作者,选填
"description":"description" // 描述,选填
}
}
提示
复制配置文件的时候需要删除注释!JSON文件不支持 ‘//’ 注释符。
第二步:数据包
- 用户需要制作数据包。 对应的数据压缩包命名需固定为 client.zip(客户端插件) 和 controller.zip(控制器插件) 。
/** 用户制作好的插件包格式必须按照此种结构保存 **/
client.zip
├── plugin1
| ├──plugin1.dll
| ├──xplugin.dll
| └──plugin1.json // 配置文件
└── plugin2
| ├──plugin2.so
| ├──xplugin.so
| └──plugin2.json // 配置文件
|
// 其他客户端插件包
controller.zip
├── plugin1
| ├──plugin1.lic
| ├──plugin1.so
| └──plugin1.json // 配置文件
└── plugin2
| ├──plugin2.lic
| ├──plugin2.so
| └──plugin2.json // 配置文件
|
// 其他控制器插件包
第三步:插件包
- 用户制作好数据包以后,还需要按照以下方式制作插件包。 仅有插件包可以被直接导入珞石的RobotAssert程序中。
/**插件的文档目录结构**/
example.zip
├── client.zip
└── controller.zip
提示
客户端插件和控制器插件都可以不依赖对方单独加载!
至此已经完成插件包制作,可以安装导入到RobotAssert软件中使用。
使用脚本快速生成
- 文档配套提供打包脚本,可将已整理好的 client / controller 目录一键打成可导入的插件包。
获取脚本
- 将以下文件放到同一工作目录(与 client、controller 文件夹同级):
| 文件 | 作用 |
|---|---|
| PluginPackage.bat | win下打包脚本,双击调用 PowerShell 打包 |
| PluginPackage.sh | linux下打包脚本 |
准备目录
- 按扁平结构放置文件(仅客户端或仅控制器也可以):
工作目录/
├── client/ # 可选
│ └── plugindemo/
│ ├── plugindemo.dll # 或 .so
│ ├── xplugin.dll # 或 .so
│ └── plugindemo.json
├── controller/ # 可选
│ └── plugindemo/
│ ├── plugindemo.lic
│ ├── plugindemo.so
│ └── plugindemo.json
└── PluginPackage.bat / PluginPackage.sh
生成步骤
(以win示例)
- 确认工作目录中已有 PluginPackage.bat,以及 client 和/或 controller。
- 双击 PluginPackage.bat。
- 等待控制台出现完成提示;同目录会生成 <插件包>.zip(默认取当前文件夹名)。
- 关闭窗口。将该 zip 导入到插件管理即可。
产出说明
plugindemo.zip
├── client.zip # 由 client/ 目录压缩得到
└── controller.zip # 由 controller/ 目录压缩得到
- 只放 client 时,仅生成 client.zip 打入外层包。
- 只放 controller 时,仅生成 controller.zip 打入外层包。
常见问题
| 现象 | 处理 |
|---|---|
| 提示找不到 client/controller | 检查 bat 是否与这两个文件夹同级 |
| 多架构未按预期 | 架构目录名须为 aarch64 / amd64 / win(控制器无 win) |
示例
以plugindemo插件名,制作的客户端插件与控制器插件集合包如下示例。plugindemo.zip是最终导入的插件包。
plugindemo.zip // 压缩插件包
├── client.zip // 压缩数据包
| ├── plugindemo // 文件夹
| ├── plugindemo.dll
| ├── xplugin.dll
| └── plugindemo.json // 配置文件
└── controller.zip // 压缩数据包
├── plugindemo // 文件夹
├── plugindemo.lic
├── plugindemo.so
└── plugindemo.json // 配置文件
多架构插件包支持
- 珞石Rokae+插件支持一个插件包内同时存放多个系统架构下的数据包。用户可以在熟练插件包的结构下,自行配置多个不同系统架构的插件包。
在 client.zip / controller.zip 内先按架构分子目录,再放入与单架构相同的插件文件夹结构:
- 客户端(client.zip):aarch64、amd64、win
- 控制器(controller.zip):aarch64、amd64;
plugindemo.zip
├── client.zip
│ ├── aarch64
│ │ └── plugindemo
│ │ ├── plugindemo.so
│ │ ├── xplugin.so
│ │ └── plugindemo.json
│ ├── amd64
│ │ └── plugindemo
│ │ ├── plugindemo.so
│ │ ├── xplugin.so
│ │ └── plugindemo.json
│ └── win
│ └── plugindemo
│ ├── plugindemo.dll
│ ├── xplugin.dll
│ └── plugindemo.json
└── controller.zip
├── aarch64
│ └── plugindemo
│ ├── plugindemo.lic
│ ├── plugindemo.so
│ └── plugindemo.json
└── amd64
└── plugindemo
├── plugindemo.lic
├── plugindemo.so
└── plugindemo.json
提示
多架构插件包支持于插件 1.0.2.6,配套xCore控制系统v3.2.2 及以上。