Project packages

The binary, config and GRID packages a project is made of, what each one holds and where it goes on the controller.

A project on motorcortex.io holds the packages you deploy to a controller. Each package has a type, and the type decides what the controller does with it. A Motorcortex application needs three packages. Click a package to open its page.

On motorcortex.io On the controller Your project Controller deploy deploy deploy Open the Binary package page Binary package › Debian packages (.deb): the application and its libraries Installed with apt The controller updates its package lists, then installs every .deb in the package, on every deploy. Open the Config package page Config package › motorcortex.conf, config.json and the files config.json names /etc/motorcortex/apps-available/<package>/ /etc/motorcortex/config becomes a link to this folder, then Motorcortex restarts with the new configuration. Open the GRID package page GRID package › .grid files, images, 3D models and the other files they use /var/www/motorcortex/grid/projects/<project>/<package>/ The GRID runtime in /var/www/motorcortex/grid lists every .grid file it finds under projects/.
  • Binary package: the compiled application and the libraries it depends on, as Debian packagesA Debian package, a .deb file, is a software package in the format of the apt package manager, which the controller uses to install it. .
  • Config package: everything the application reads at startup, such as parameter values, the EtherCAT bus layout and the links between modules.
  • GRID package: the user interface, with the images, 3D models and other files it needs.

Versions

Every package has a name and a version. A deployed config or GRID package lands on the controller in a folder named <name>-<version>-<timestamp>, so deploying a new version does not overwrite the folder of an earlier one.

A package as a zip file

A package that you upload as a zip file carries a meta.json at the top of the zip. The portal reads the package type, name and version from it, and takes the package files from the folder that directory.name.composed names:

{
  "directory": {
    "type": "config",
    "name": {
      "original": "robot-config",
      "composed": "robot-config-1.0-1712345678"
    },
    "version": "1.0"
  }
}

For the three packages on this page, type is binary, config or grid. The portal rejects a zip without meta.json, or with a type it does not know.