SDKC++ SDK

API reference

Functions, classes, channels, models, and exceptions in Exo C++ SDK 1.0.0.

Current version · 1.0.0

API reference

Discovery and configuration

  • std::vector<DiscoveredExo> discover_exos()
  • ExoConfig { SerialConnection connection; optional<string> name; bool enabled; }
  • Sdk::exo() -> Exo

DiscoveredExo contains port, optional device_info, and optional error; success and failure are mutually exclusive.

Exo

Methods: device(name), start(), update(), run_forever(), run_background(), request_stop(), join(), stop(), health(), and close().

ExoDevice

Methods: name(), source_id(), start(), stop(), health(), get_device_info(), telemetry(), status(), haptics(), and close().

Channel types are ReadChannel<ExoTelemetry>, ReadChannel<ExoStatus>, and HapticsState.

Information and data models

  • ExoDeviceInfo: protocol, product, firmware, serial number, hardware name, capabilities, and component counts.
  • ExoCapabilities: telemetry, encoders, handsets, IMUs, haptics, and wireless.
  • ExoTelemetry: meta, payload, and quality.
  • ExoArmState: eight encoder counts and eight joint positions in radians.
  • ExoHandsetState: axes, button mask, and raw trigger.
  • ExoImuState: acceleration, angular velocity, and XYZW orientation.
  • ExoStatus is the domain alias for DeviceStatus.

Haptics and exceptions

ExoHaptics contains optional left and right. HapticsState exposes latest(), subscriptions, set(), and clear().

General exceptions derive from QnBotError. Exo controls raise ExoControlError; invalid inputs and closed handles map to InvalidArgumentError and ClosedHandleError.