SDKPython SDK

Core objects & lifecycle

Understand the responsibilities and close hierarchy of Sdk, Exo, ExoDevice, and channels.

Current version · 1.0.0

Core objects & lifecycle

Object hierarchy

Sdk
└── Exo                  sdk.exo()
    └── ExoDevice       exo.device(name)
        ├── telemetry()
        ├── status()
        └── haptics()
  • Sdk owns the native runtime and device configuration; normally create one per process.
  • Exo controls startup, scheduling, stopping, health, and close for the Exo domain.
  • ExoDevice selects a logical device and exposes information, channels, and haptics.
  • ReadChannel supports latest(), subscribe(), and asynchronous next().

Lifecycle

For one device, prefer exo.start() → run → exo.stop() → exo.close(). Use device.start() and device.stop() only when multiple devices must be controlled independently.

Closing a parent invalidates its devices and channels. Later calls raise ClosedHandleError; root sdk.close() cleans up remaining resources.