跳到主要内容

配置格式

  • 为确保用户自定义开发的插件包可以正常导入到珞石应用程序中,用户需要严格按照标准格式编写插件包与配置文件,并且保证配置文件名与插件名一致。

第一步:配置文件

  • 用户在开发客户端插件时,需要严格遵守标准制作配置文件(插件名.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 目录一键打成可导入的插件包

获取脚本

  • 将以下文件放到同一工作目录(与 clientcontroller 文件夹同级):
文件作用
PluginPackage.batwin下打包脚本,双击调用 PowerShell 打包
PluginPackage.shlinux下打包脚本

准备目录

  • 按扁平结构放置文件(仅客户端或仅控制器也可以):
工作目录/
├── client/ # 可选
│ └── plugindemo/
│ ├── plugindemo.dll # 或 .so
│ ├── xplugin.dll # 或 .so
│ └── plugindemo.json
├── controller/ # 可选
│ └── plugindemo/
│ ├── plugindemo.lic
│ ├── plugindemo.so
│ └── plugindemo.json
└── PluginPackage.bat / PluginPackage.sh

生成步骤

(以win示例)

  1. 确认工作目录中已有 PluginPackage.bat,以及 client 和/或 controller
  2. 双击 PluginPackage.bat
  3. 等待控制台出现完成提示;同目录会生成 <插件包>.zip(默认取当前文件夹名)。
  4. 关闭窗口。将该 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):aarch64amd64win
  • 控制器(controller.zip):aarch64amd64
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 及以上。