Configuration Format
To ensure user-developed plugin packages can be imported into Rokae applications, follow the standard package and configuration format strictly, and keep the configuration file name identical to the plugin name.
Plugin Package
The package may contain both client and controller plugins. Archive names must be client.zip (client plugin) and controller.zip (controller plugin).
/**Plugin package layout**/
example.zip
├── client.zip
└── controller.zip
Client plugins and controller plugins can each be loaded independently without the other!
Data Package
client.zip
├── plugin1
| ├──plugin1.lic
| ├──plugin1.dll
| ├──xplugin.dll
| └──plugin1.json
└── plugin2
| ├──plugin2.lic
| ├──plugin2.so
| ├──xplugin.so
| └──plugin2.json
|
// Other client plugin packages
controller.zip
├── plugin1
| ├──plugin1.lic
| ├──plugin1.so
| └──plugin1.json
└── plugin2
| ├──plugin2.lic
| ├──plugin2.so
| └──plugin2.json
|
// Other controller plugin packages
Configuration File
When developing client plugins, follow the standard configuration file format (
<plugin name>.json) and keep the plugin name consistent with thenamefield.
{
"client_plugin":{
"name":"plugindemo", // Plugin name; must match file names; required
"depend":["plugin1","plugin2"], // Dependent client plugins; optional
"ctrlDepend":[], // Dependent controller plugins; optional
"enable":false, // Enabled after load; default false; required
"version":"3.0.1", // Plugin version; required
"min_hmi_version":"3.0.1", // Minimum HMI (xCore) version; optional
"custom_hmi_version":[], // Custom compatible versions; optional
"author":"rokae", // Author; optional
"description":"description" // Description; optional
}
}
Remove comments when copying the configuration file! JSON does not support // comments.
Example
Example bundle for plugin name plugindemo.
plugindemo.zipis the package imported into HMI.
plugindemo.zip // Archive
├── client.zip // Archive
| ├── plugindemo // Folder
| ├── plugindemo.lic
| ├── plugindemo.dll
| ├── xplugin.dll
| └── plugindemo.json
└── controller.zip // Archive
├── plugindemo // Folder
├── plugindemo.lic
├── plugindemo.so
└── plugindemo.json