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()Sdkowns the native runtime and device configuration; normally create one per process.Exocontrols startup, scheduling, stopping, health, and close for the Exo domain.ExoDeviceselects a logical device and exposes information, channels, and haptics.ReadChannelsupportslatest(),subscribe(), and asynchronousnext().
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.