Data type definitions

The REST-API defines the following data models, which are used to access or modify the available resources either as required attributes/parameters of the requests or as return types.

FirmwareInfo:

Information about currently active and inactive firmware images, and what image is/will be booted.

An object of type FirmwareInfo has the following properties:

  • active_image (ImageInfo) - see description of ImageInfo
  • fallback_booted (boolean) - true if desired image could not be booted and fallback boot to the previous image occured
  • inactive_image (ImageInfo) - see description of ImageInfo
  • next_boot_image (string) - firmware image that will be booted next time (one of active_image, inactive_image)

Template object

{
  "active_image": {
    "image_version": "string"
  },
  "fallback_booted": false,
  "inactive_image": {
    "image_version": "string"
  },
  "next_boot_image": "string"
}

FirmwareInfo objects are nested in SysInfo, and are used in the following requests:

ImageInfo:

Information about specific firmware image.

An object of type ImageInfo has the following properties:

  • image_version (string) - image version

Template object

{
  "image_version": "string"
}

ImageInfo objects are nested in FirmwareInfo.

LicenseComponentConstraint:

Constraints on the component version.

An object of type LicenseComponentConstraint has the following properties:

  • max_version (string) - optional maximum supported version (exclusive)
  • min_version (string) - optional minimum supported version (inclusive)

Template object

{
  "max_version": "string",
  "min_version": "string"
}

LicenseComponentConstraint objects are nested in LicenseConstraints.

LicenseComponents:

List of the licensing status of the individual software components. The respective flag is true if the component is unlocked with the currently applied software license.

An object of type LicenseComponents has the following properties:

  • calibration (boolean) - camera calibration component
  • fusion (boolean) - stereo ins/fusion components
  • hand_eye_calibration (boolean) - hand-eye calibration component
  • rectification (boolean) - image rectification component
  • self_calibration (boolean) - camera self-calibration component
  • slam (boolean) - SLAM component
  • stereo (boolean) - stereo matching component
  • svo (boolean) - visual odometry component

Template object

{
  "calibration": false,
  "fusion": false,
  "hand_eye_calibration": false,
  "rectification": false,
  "self_calibration": false,
  "slam": false,
  "stereo": false,
  "svo": false
}

LicenseComponents objects are nested in LicenseInfo.

LicenseConstraints:

Version constrains for components.

An object of type LicenseConstraints has the following properties:

Template object

{
  "image_version": {
    "max_version": "string",
    "min_version": "string"
  }
}

LicenseConstraints objects are nested in LicenseInfo.

LicenseInfo:

Information about the currently applied software license on the sensor.

An object of type LicenseInfo has the following properties:

Template object

{
  "components": {
    "calibration": false,
    "fusion": false,
    "hand_eye_calibration": false,
    "rectification": false,
    "self_calibration": false,
    "slam": false,
    "stereo": false,
    "svo": false
  },
  "components_constraints": {
    "image_version": {
      "max_version": "string",
      "min_version": "string"
    }
  },
  "valid": false
}

LicenseInfo objects are used in the following requests:

Log:

Content of a specific log file represented in JSON format.

An object of type Log has the following properties:

  • date (float) - UNIX time when log was last modified
  • log (array of LogEntry) - the actual log entries
  • name (string) - name of log file
  • size (integer) - size of log file in bytes

Template object

{
  "date": 0,
  "log": [
    {
      "component": "string",
      "level": "string",
      "message": "string",
      "timestamp": 0
    },
    {
      "component": "string",
      "level": "string",
      "message": "string",
      "timestamp": 0
    }
  ],
  "name": "string",
  "size": 0
}

Log objects are used in the following requests:

LogEntry:

Representation of a single log entry in a log file.

An object of type LogEntry has the following properties:

  • component (string) - component name that created this entry
  • level (string) - log level (one of DEBUG, INFO, WARN, ERROR, FATAL)
  • message (string) - actual log message
  • timestamp (float) - Unix time of log entry

Template object

{
  "component": "string",
  "level": "string",
  "message": "string",
  "timestamp": 0
}

LogEntry objects are nested in Log.

LogInfo:

Information about a specific log file.

An object of type LogInfo has the following properties:

  • date (float) - UNIX time when log was last modified
  • name (string) - name of log file
  • size (integer) - size of log file in bytes

Template object

{
  "date": 0,
  "name": "string",
  "size": 0
}

LogInfo objects are used in the following requests:

NetworkInfo:

Current network configuration.

An object of type NetworkInfo has the following properties:

  • current_method (string) - method by which current settings were applied (one of INIT, LinkLocal, DHCP, PersistentIP, TemporaryIP)
  • default_gateway (string) - current default gateway
  • ip_address (string) - current IP address
  • settings (NetworkSettings) - see description of NetworkSettings
  • subnet_mask (string) - current subnet mask

Template object

{
  "current_method": "string",
  "default_gateway": "string",
  "ip_address": "string",
  "settings": {
    "dhcp_enabled": false,
    "persistent_default_gateway": "string",
    "persistent_ip_address": "string",
    "persistent_ip_enabled": false,
    "persistent_subnet_mask": "string"
  },
  "subnet_mask": "string"
}

NetworkInfo objects are nested in SysInfo, and are used in the following requests:

NetworkSettings:

Current network settings.

An object of type NetworkSettings has the following properties:

  • dhcp_enabled (boolean) - DHCP enabled
  • persistent_default_gateway (string) - Persistent default gateway
  • persistent_ip_address (string) - Persistent IP address
  • persistent_ip_enabled (boolean) - Persistent IP enabled
  • persistent_subnet_mask (string) - Persistent subnet mask

Template object

{
  "dhcp_enabled": false,
  "persistent_default_gateway": "string",
  "persistent_ip_address": "string",
  "persistent_ip_enabled": false,
  "persistent_subnet_mask": "string"
}

NetworkSettings objects are nested in NetworkInfo, and are used in the following requests:

NodeInfo:

Description of a computational node running on sensor.

An object of type NodeInfo has the following properties:

  • name (string) - name of the node
  • parameters (array of string) - list of the node’s run-time parameters
  • services (array of string) - list of the services this node offers
  • status (string) - status of the node (one of unknown, down, stale, running)

Template object

{
  "name": "string",
  "parameters": [
    "string",
    "string"
  ],
  "services": [
    "string",
    "string"
  ],
  "status": "string"
}

NodeInfo objects are used in the following requests:

NodeStatus:

Detailed current status of the node including run-time statistics.

An object of type NodeStatus has the following properties:

  • status (string) - status of the node (one of unknown, down, stale, running)
  • timestamp (float) - Unix time when values were last updated
  • values (object) - dictionary with current status/statistics of the node

Template object

{
  "status": "string",
  "timestamp": 0,
  "values": {}
}

NodeStatus objects are used in the following requests:

NtpStatus:

Status of the NTP time sync.

An object of type NtpStatus has the following properties:

  • accuracy (string) - time sync accuracy reported by NTP
  • synchronized (boolean) - synchronized with NTP server

Template object

{
  "accuracy": "string",
  "synchronized": false
}

NtpStatus objects are nested in SysInfo.

Parameter:

Representation of a node’s run-time parameter. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type Parameter has the following properties:

  • default (type not defined) - the parameter’s default value
  • description (string) - description of the parameter
  • max (type not defined) - maximum value this parameter can be assigned to
  • min (type not defined) - minimum value this parameter can be assigned to
  • name (string) - name of the parameter
  • type (string) - the parameter’s primitive type represented as string (one of bool, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64, string)
  • value (type not defined) - the parameter’s current value

Template object

{
  "default": {},
  "description": "string",
  "max": {},
  "min": {},
  "name": "string",
  "type": "string",
  "value": {}
}

Parameter objects are used in the following requests:

ParameterNameValue:

Parameter name and value. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type ParameterNameValue has the following properties:

  • name (string) - name of the parameter
  • value (type not defined) - the parameter’s current value

Template object

{
  "name": "string",
  "value": {}
}

ParameterNameValue objects are used in the following requests:

ParameterValue:

Parameter value. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type ParameterValue has the following properties:

  • value (type not defined) - the parameter’s current value

Template object

{
  "value": {}
}

ParameterValue objects are used in the following requests:

PtpStatus:

Status of the IEEE1588 (PTP) time sync.

An object of type PtpStatus has the following properties:

  • master_ip (string) - IP of the master clock
  • offset (float) - time offset in seconds to the master
  • offset_dev (float) - standard deviation of time offset in seconds to the master
  • offset_mean (float) - mean time offset in seconds to the master
  • state (string) - state of PTP (one of off, unknown, INITIALIZING, FAULTY, DISABLED, LISTENING, PASSIVE, UNCALIBRATED, SLAVE)

Template object

{
  "master_ip": "string",
  "offset": 0,
  "offset_dev": 0,
  "offset_mean": 0,
  "state": "string"
}

PtpStatus objects are nested in SysInfo.

Service:

Representation of a service that a node offers.

An object of type Service has the following properties:

Template object

{
  "args": {},
  "description": "string",
  "name": "string",
  "response": {}
}

Service objects are used in the following requests:

ServiceArgs:

Arguments required to call a service with. The general representation of these arguments is a (nested) dictionary. The specific content of this dictionary depends on the respective node and service call.

ServiceArgs objects are nested in Service.

ServiceResponse:

The response returned by the service call. The general representation of this response is a (nested) dictionary. The specific content of this dictionary depends on the respective node and service call.

ServiceResponse objects are nested in Service.

Stream:

Represention of a data stream offered by the rc_dynamics interface.

An object of type Stream has the following properties:

  • destinations (array of StreamDestination) - list of destinations this data is currently streamed to
  • name (string) - the data stream’s name specifying which rc_dynamics data is streamed
  • type (StreamType) - see description of StreamType

Template object

{
  "destinations": [
    "string",
    "string"
  ],
  "name": "string",
  "type": {
    "protobuf": "string",
    "protocol": "string"
  }
}

Stream objects are used in the following requests:

StreamDestination:

A destination of an rc_dynamics data stream represented as string such as ‘IP:port’

An object of type StreamDestination is of primitive type string.

StreamDestination objects are nested in Stream.

StreamType:

Description of a data stream’s protocol.

An object of type StreamType has the following properties:

  • protobuf (string) - type of data-serialization, i.e. name of protobuf message definition
  • protocol (string) - network protocol of the stream [UDP]

Template object

{
  "protobuf": "string",
  "protocol": "string"
}

StreamType objects are nested in Stream.

SysInfo:

System information about the sensor.

An object of type SysInfo has the following properties:

  • firmware (FirmwareInfo) - see description of FirmwareInfo
  • hostname (string) - Hostname
  • link_speed (integer) - Ethernet link speed in Mbps
  • mac (string) - MAC address
  • network (NetworkInfo) - see description of NetworkInfo
  • ntp_status (NtpStatus) - see description of NtpStatus
  • ptp_status (PtpStatus) - see description of PtpStatus
  • ready (boolean) - system is fully booted and ready
  • serial (string) - sensor serial number
  • time (float) - system time as Unix timestamp
  • uptime (float) - system uptime in seconds

Template object

{
  "firmware": {
    "active_image": {
      "image_version": "string"
    },
    "fallback_booted": false,
    "inactive_image": {
      "image_version": "string"
    },
    "next_boot_image": "string"
  },
  "hostname": "string",
  "link_speed": 0,
  "mac": "string",
  "network": {
    "current_method": "string",
    "default_gateway": "string",
    "ip_address": "string",
    "settings": {
      "dhcp_enabled": false,
      "persistent_default_gateway": "string",
      "persistent_ip_address": "string",
      "persistent_ip_enabled": false,
      "persistent_subnet_mask": "string"
    },
    "subnet_mask": "string"
  },
  "ntp_status": {
    "accuracy": "string",
    "synchronized": false
  },
  "ptp_status": {
    "master_ip": "string",
    "offset": 0,
    "offset_dev": 0,
    "offset_mean": 0,
    "state": "string"
  },
  "ready": false,
  "serial": "string",
  "time": 0,
  "uptime": 0
}

SysInfo objects are used in the following requests:

Template:

rc_silhouettematch template

An object of type Template has the following properties:

  • id (string) - Unique identifier of the template

Template object

{
  "id": "string"
}

Template objects are used in the following requests: