API reference
Public functions, objects, channels, models, and errors in Exo Python SDK 1.0.0.
Current version · 1.0.0
API reference
Discovery and configuration
| API | Result or purpose |
|---|---|
discover_exos() | tuple[DiscoveredExo, ...] |
ExoConfig(connection=..., name=..., enabled=...) | Exo device configuration |
Sdk(...).exo() | Exo domain entry point |
DiscoveredExo contains port, device_info, and error. ExoDiscoveryIssue contains code and message.
Exo
| Method | Purpose |
|---|---|
device(name=None) | Select the unique or named device |
start() / stop() | Start or stop the domain |
update() | Advance one manual update |
run_forever() | Run on the current thread |
run_background() | Start background execution |
request_stop() / join() | Stop and join background execution |
health() | Return Core Health |
close() | Close the domain and invalidate children |
ExoDevice
Properties are name and source_id. Methods are start(), stop(), health(), get_device_info(), telemetry(), status(), haptics(), and close().
Device information
ExoDeviceInfo:protocol_version,product,firmware,serial_number,hardware_name,capabilities, andcomponents.ExoCapabilities:telemetry,encoders,handsets,imus,haptics, andwireless.ExoComponentCounts: encoder, handset, and IMUavailable/total_slotsvalues.ExoProduct:STANDARD,PLUS, andPLUS_WIRELESS.
Data models
ExoTelemetry(meta, payload, quality).ExoTelemetryPayload: both arms, both handsets, and optional torso/extra IMUs.ExoArmState: eight encoder counts and eight joint positions in radians.ExoHandsetState: raw X/Y axes, button mask, and trigger.ExoImuState: three accelerations, three angular velocities, and an XYZW orientation.ExoStatusis the domain name for CoreDeviceStatus.
Haptics and errors
Non-null ExoHaptics(left=None, right=None) strengths must be 0…100. HapticsState extends a read channel with set(value) and clear().
Control failures raise ExoControlError with ExoControlErrorKind; invalid inputs use InvalidArgumentError, and closed objects use ClosedHandleError.