System und Logs

Die folgenden Ressourcen und Anfragen sind für die System-Level-API des rc_visard verfügbar. Sie ermöglichen Folgendes:

  • Zugriff auf Logdateien (systemweit oder modulspezifisch),
  • Abruf von Informationen zum Gerät und zur Laufzeitstatistik, wie Datum, MAC-Adresse, Uhrzeitsynchronisierungsstatus und verfügbare Ressourcen,
  • Verwaltung installierter Softwarelizenzen, und
  • Aktualisierung des Firmware-Images des rc_visard.
GET /logs

Abruf einer Liste aller verfügbaren Logdateien.

Musteranfrage

GET /api/v2/logs HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

[
  {
    "date": 1503060035.0625782,
    "name": "rcsense-api.log",
    "size": 730
  },
  {
    "date": 1503060035.741574,
    "name": "stereo.log",
    "size": 39024
  },
  {
    "date": 1503060044.0475223,
    "name": "camera.log",
    "size": 1091
  },
  {
    "date": 1503060035.2115774,
    "name": "dynamics.log"
  }
]
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: LogInfo-Array)
Referenzierte Datenmodelle:
 
GET /logs/{log}

Abruf einer Logdatei: Die Art des Inhalts der Antwort richtet sich nach dem format-Parameter.

Musteranfrage

GET /api/v2/logs/<log>?format=<format>&limit=<limit> HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "date": 1503060035.2115774,
  "log": [
    {
      "component": "rc_stereo_ins",
      "level": "INFO",
      "message": "Running rc_stereo_ins version 2.4.0",
      "timestamp": 1503060034.083
    },
    {
      "component": "rc_stereo_ins",
      "level": "INFO",
      "message": "Starting up communication interfaces",
      "timestamp": 1503060034.085
    },
    {
      "component": "rc_stereo_ins",
      "level": "INFO",
      "message": "Autostart disabled",
      "timestamp": 1503060034.098
    },
    {
      "component": "rc_stereo_ins",
      "level": "INFO",
      "message": "Initializing realtime communication",
      "timestamp": 1503060034.209
    },
    {
      "component": "rc_stereo_ins",
      "level": "INFO",
      "message": "Startet state machine in state IDLE",
      "timestamp": 1503060034.383
    },
    {
      "component": "rc_stereovisodo",
      "level": "INFO",
      "message": "Init stereovisodo ...",
      "timestamp": 1503060034.814
    },
    {
      "component": "rc_stereovisodo",
      "level": "INFO",
      "message": "rc_stereovisodo: Using standard VO",
      "timestamp": 1503060034.913
    },
    {
      "component": "rc_stereovisodo",
      "level": "INFO",
      "message": "rc_stereovisodo: Playback mode: false",
      "timestamp": 1503060035.132
    },
    {
      "component": "rc_stereovisodo",
      "level": "INFO",
      "message": "rc_stereovisodo: Ready",
      "timestamp": 1503060035.212
    }
  ],
  "name": "dynamics.log",
  "size": 695
}
Parameter:
  • log (string) – Name der Logdatei (obligatorisch)
Anfrageparameter:
 
  • format (string) – Rückgabe des Logs im JSON- oder Rohdatenformat (mögliche Werte: json oder raw; Voreinstellung: json) (optional)
  • limit (integer) – Beschränkung auf die letzten x Zeilen im JSON-Format (Voreinstellung: 100) (optional)
Antwort-Headers:
 
Statuscodes:
Referenzierte Datenmodelle:
 
GET /system

Abruf von Systeminformationen zum Sensor.

Musteranfrage

GET /api/v2/system HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dns": {
    "dns_servers": [
      "10.0.0.1",
      "1.1.1.1"
    ],
    "manual_dns_servers": [
      "1.1.1.1"
    ]
  },
  "firmware": {
    "active_image": {
      "image_version": "rc_visard_v1.1.0"
    },
    "fallback_booted": true,
    "inactive_image": {
      "image_version": "rc_visard_v1.0.0"
    },
    "next_boot_image": "active_image"
  },
  "hostname": "rc-visard-02873515",
  "link_speed": 1000,
  "mac": "00:14:2D:2B:D8:AB",
  "ntp_status": {
    "accuracy": "48 ms",
    "synchronized": true
  },
  "ptp_status": {
    "master_ip": "",
    "offset": 0,
    "offset_dev": 0,
    "offset_mean": 0,
    "state": "off"
  },
  "ready": true,
  "serial": "02873515",
  "time": 1504080462.641875,
  "uptime": 65457.42
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: SysInfo)
Referenzierte Datenmodelle:
 
GET /system/backup

Abruf eines Backups der Einstellungen.

Musteranfrage

GET /api/v2/system/backup?pipelines=<pipelines>&load_carriers=<load_carriers>&regions_of_interest=<regions_of_interest>&grippers=<grippers> HTTP/1.1
Anfrageparameter:
 
  • pipelines (boolean) – Backup der Pipelines mit Moduleinstellungen, d.h. Parameter und bevorzugte TCP-Orientierung (Standardwert: True) (optional)
  • load_carriers (boolean) – Backup der Load Carrier (Standardwert: True) (optional)
  • regions_of_interest (boolean) – Backup der Regions of Interest (Standardwert: True) (optional)
  • grippers (boolean) – Backup der Greifer (Standardwert: True) (optional)
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
POST /system/backup

Backup einspielen.

Musteranfrage

POST /api/v2/system/backup HTTP/1.1
Accept: application/json application/ubjson

{}

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "return_code": {
    "message": "backup restored",
    "value": 0
  },
  "warnings": []
}
Request JSON Object:
 
  • backup (object) – Backup-Daten als json-Objekt (erforderlich)
Anfrage-Header:
  • Accept – application/json application/ubjson
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
GET /system/dns

Abfragen der DNS-Server Einstellungen.

Musteranfrage

GET /api/v2/system/dns HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dns": {
    "dns_servers": [
      "10.0.0.1",
      "1.1.1.1"
    ],
    "manual_dns_servers": [
      "1.1.1.1"
    ]
  }
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: DNS)
Referenzierte Datenmodelle:
 
PUT /system/dns

Setze manuelle DNS-Server.

Musteranfrage

PUT /api/v2/system/dns HTTP/1.1
Accept: application/json application/ubjson

{}

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dns": {
    "dns_servers": [
      "10.0.0.1",
      "1.1.1.1"
    ],
    "manual_dns_servers": [
      "1.1.1.1"
    ]
  }
}
Request JSON Object:
 
  • manual_dns_servers (ManualDNSServers) – Manuelle DNS-Server (obligatorisch)
Anfrage-Header:
  • Accept – application/json application/ubjson
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: DNS)
  • 400 Bad Request – ungültige/fehlende Argumente
Referenzierte Datenmodelle:
 
GET /system/license

Abruf von Informationen zu den auf dem Sensor installierten Lizenzen.

Musteranfrage

GET /api/v2/system/license HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "components": {
    "calibration": true,
    "fusion": true,
    "hand_eye_calibration": true,
    "rectification": true,
    "self_calibration": true,
    "slam": false,
    "stereo": true,
    "svo": true
  },
  "valid": true
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: LicenseInfo)
Referenzierte Datenmodelle:
 
POST /system/license

Aktualisierung der auf dem Sensor installierten Lizenz mithilfe einer Lizenzdatei.

Musteranfrage

POST /api/v2/system/license HTTP/1.1
Accept: multipart/form-data
Formularparameter:
 
  • file – Lizenzdatei (obligatorisch)
Anfrage-Header:
  • Accept – Multipart/Formulardaten
Statuscodes:
GET /system/network

Abruf der aktuellen Netzwerk Konfiguration.

Musteranfrage

GET /api/v2/system/network HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "current_method": "DHCP",
  "default_gateway": "10.0.3.254",
  "ip_address": "10.0.1.41",
  "settings": {
    "dhcp_enabled": true,
    "persistent_default_gateway": "",
    "persistent_ip_address": "192.168.0.10",
    "persistent_ip_enabled": false,
    "persistent_subnet_mask": "255.255.255.0"
  },
  "subnet_mask": "255.255.252.0"
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NetworkInfo)
Referenzierte Datenmodelle:
 
GET /system/network/settings

Abruf der aktuellen Netzwerkeinstellungen.

Musteranfrage

GET /api/v2/system/network/settings HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dhcp_enabled": true,
  "persistent_default_gateway": "",
  "persistent_ip_address": "192.168.0.10",
  "persistent_ip_enabled": false,
  "persistent_subnet_mask": "255.255.255.0"
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NetworkSettings)
Referenzierte Datenmodelle:
 
PUT /system/network/settings

Setzen der aktuellen Netzwerkeinstellungen.

Musteranfrage

PUT /api/v2/system/network/settings HTTP/1.1
Accept: application/json application/ubjson

{}

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "dhcp_enabled": true,
  "persistent_default_gateway": "",
  "persistent_ip_address": "192.168.0.10",
  "persistent_ip_enabled": false,
  "persistent_subnet_mask": "255.255.255.0"
}
Request JSON Object:
 
  • settings (NetworkSettings) – Anzuwendende Netzwerkeinstellungen (obligatorisch)
Anfrage-Header:
  • Accept – application/json application/ubjson
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NetworkSettings)
  • 400 Bad Request – ungültige/fehlende Argumente
  • 403 Forbidden – Das Ändern der Netzwerkeinstellungen ist nicht erlaubt, da eine laufende GigE Vision-Applikation diese sperrt.
Referenzierte Datenmodelle:
 
PUT /system/reboot

Neustart des Sensors.

Musteranfrage

PUT /api/v2/system/reboot HTTP/1.1
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
GET /system/rollback

Abruf von Informationen zu Firmware/System-Images, die aktuell auf dem Sensor aktiv oder inaktiv sind.

Musteranfrage

GET /api/v2/system/rollback HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "active_image": {
    "image_version": "rc_visard_v1.1.0"
  },
  "fallback_booted": false,
  "inactive_image": {
    "image_version": "rc_visard_v1.0.0"
  },
  "next_boot_image": "active_image"
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: FirmwareInfo)
Referenzierte Datenmodelle:
 
PUT /system/rollback

Rollback auf vorherige Firmware-Version (inaktives System-Image).

Musteranfrage

PUT /api/v2/system/rollback HTTP/1.1
Statuscodes:
GET /system/time

Abfrage der Systemzeit in UTC als String mit dem Format „YYYY-MM-DD hh:mm:ss“

Musteranfrage

GET /api/v2/system/time HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "utc": "2023-10-05 08:35:26"
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
PUT /system/time

Setzen der Systemzeit in UTC als String mit dem Format „YYYY-MM-DD hh:mm:ss“

Musteranfrage

PUT /api/v2/system/time?utc=<utc> HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "utc": "2023-10-05 08:35:26"
}
Anfrageparameter:
 
  • utc (string) – Zeit in UTC als String mit dem Format „YYYY-MM-DD hh:mm:ss“ (obligatorisch)
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
  • 400 Bad Request – ungültige/fehlende Argumente
  • 403 Forbidden – Ändern der Zeit nicht erlaubt, da Zeitsynchronisation via NTP oder PTP aktiv ist.
GET /system/ui_lock

Abruf des UI Lock Status

Musteranfrage

GET /api/v2/system/ui_lock HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "enabled": false
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: UILock)
Referenzierte Datenmodelle:
 
DELETE /system/ui_lock

UI Lock entfernen.

Musteranfrage

DELETE /api/v2/system/ui_lock HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "enabled": false,
  "valid": false
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
POST /system/ui_lock

Verifizieren oder Setzen des UI Locks.

Musteranfrage

POST /api/v2/system/ui_lock?hash=<hash>&set=<set> HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "enabled": true,
  "valid": true
}
Anfrageparameter:
 
  • hash (string) – Hash des UI Lock Passworts (obligatorisch)
  • set (boolean) – neuen Hash setzen anstatt zu verifizieren (optional)
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
GET /system/update

Abruf von Informationen zu Firmware/System-Images, die aktuell auf dem Sensor aktiv oder inaktiv sind.

Musteranfrage

GET /api/v2/system/update HTTP/1.1

Beispielantwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "active_image": {
    "image_version": "rc_visard_v1.1.0"
  },
  "fallback_booted": false,
  "inactive_image": {
    "image_version": "rc_visard_v1.0.0"
  },
  "next_boot_image": "active_image"
}
Antwort-Headers:
 
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: FirmwareInfo)
Referenzierte Datenmodelle:
 
POST /system/update

Aktualisierung des Firmware/System-Images mit einer Mender-Artefakt-Datei: Um die aktualisierte Firmware zu aktivieren, ist anschließend ein Neustart erforderlich.

Musteranfrage

POST /api/v2/system/update HTTP/1.1
Accept: multipart/form-data
Formularparameter:
 
  • file – Mender-Artefakt-Datei (obligatorisch)
Anfrage-Header:
  • Accept – Multipart/Formulardaten
Statuscodes:
  • 200 OK – Erfolgreiche Verarbeitung
  • 400 Bad Request – Client-Fehler, z.B. kein gültiges Mender-Artefakt