Skip to content

D-Bus API

Klas communicates with the system using D-Bus and exposes the following APIs:

Telemetries D-Bus API

node /com/witekio/klas/telemetries {
  interface com.witekio.klas.Telemetries  {
    methods:
      sendUserTelemetriesJson(in s userTelemetriesJson);
  }
}

Methods

sendUserTelemetriesJson()
Send a payload as telemetries to Kamea.
- userTelemetriesJson (in s) is a JSON string containing the telemetries to send.

Errors

com.witekio.klas.Telemetries.Error.InvalidJSONFormat
Indicates that the provided JSON string is not valid.

Configuration D-Bus API

node /com/witekio/klas/configuration {
  interface com.witekio.klas.Configuration  {
    methods:
      sendUserConfigurationJson(in s userConfigurationJson);

    signals:
      b connectionChanged;
      s receivedDesiredJson;

    properties:
      readonly b connected;
  }
}

Methods

sendUserConfigurationJson()
Send user Json as a reported configuration to Kamea.
- userConfigurationJson (in s) is a JSON string containing the user configuration to report.

Signals

connectionChanged()
Signal emitted when the MQTT connection status changes.

receivedDesiredJson()
Signal emitted when a new user desired configuration is received from Kamea.

Properties

connected
Indicates if the agent is connected to Kamea.

Errors

com.witekio.klas.Configuration.Error.InvalidJSONFormat
Indicates that the provided JSON string is not valid.

Firmware D-Bus API

node /com/witekio/klas/firmware {
  interface com.witekio.klas.Firmware {
    methods:
      acceptFirmware(in (ssbs) firmware);
      confirmFirmwareInstall(in (ssbs) firmware);

    signals:
      a(ss) newFirmwareVersionsAvailable;
      a(sss) newFirmwareFilesAvailable;

    properties:
      readonly a(ss) availableFirmwareVersions;
      readonly a(sss) availableFirmwareFiles;
      readonly a(ss) firmwareStatuses;
  }
}

Methods

acceptFirmware()
Accept or reject the download of a firmware file and update its status on kamea.

firmware: in (ssbs) Structure containing the following data types:
- name (string) is the name of the firmware to download.
- version (string) is the version of the firmware to accept, for example 1.0.0.
- accept (bool) is set to true if the new firmware version should be downloaded, false otherwise.
- errorCode (string) is an optional error code to report if the firmware version was not accepted.

Example 1: ('firmware1', '1.0.0', true, '')
Example 2: ('firmware2', 'a.b.c', false, 'unsupported-version')

confirmFirmwareInstall()
confirm the installation of a firmware file and update its status on kamea.

firmware: in (ssbs) Structure containing the following data types:
- name (string) is the name of the firmware file that was installed.
- version (string) is the version of the firmware file that was installed.
- confirm (bool) is set to true if the firmware file was successfully installed, false otherwise.
- errorCode (string) is an optional error code to report if the firmware installation failed.

Example 1: ('firmware1', '1.0.0', true, ''),
Example 2: ('firmware2', 'a.b.c', false, 'installation-failed')

Signals

newFirmwareVersionsAvailable()
Signal emitted when new firmware versions are available.
Contains an array of structure with the firmware name and version: a(ss)
Example:

[
    ('Firmware1', '1.0.0'),
    ('Firmware2', 'a.b.c')
]

newFirmwareFilesAvailable()
Signal emitted when a new firmware file has been downloaded. Contains an array of structure with the firmware name, versions and file path: a(sss)
Example:

[
    ('app', 'a.b.c', '/work/klas/dl/app_firmware.bin'),
    ('os', '1.0.0', '/work/klas/dl/os_firmware.bin')
]

Properties

availableFirmwareVersions
An array of structure with the firmware names and version: a(ss), similar to the one emitted by the newFirmwareVersionsAvailable signal.

availableFirmwareFiles
An array of structure with the firmware name, version and file path: a(sss), similar to the one emitted by the newFirmwareFilesAvailable signal.

firmwareStatuses
An array of structure with the firmware name and its current update status: a(ss) Refer to the firmware update documentation for the possible status values.

Errors

com.witekio.klas.Firmware.Error.InvalidFirmwareVersion
Indicates that the firmware version provided to the method is not valid.

com.witekio.klas.Firmware.Error.InvalidFirmwareState
Indicates that the firmware provided to the method is not in a state that allows the requested operation. For example, trying to confirm the installation of a firmware that was not downloaded.