SDKPython SDK

API 参考

Exo Python SDK 1.0.0 的公开函数、对象、通道、模型与错误速查。

当前版本 · 1.0.0

API 参考

发现与配置

API返回/说明
discover_exos()tuple[DiscoveredExo, ...]
ExoConfig(connection=..., name=..., enabled=...)Exo 设备配置
Sdk(...).exo()Exo 域入口

DiscoveredExo 字段:port、device_info、error。发现错误由 ExoDiscoveryIssue(code, message) 表示。

Exo

方法说明
device(name=None)选择唯一设备或逻辑名称对应设备
start() / stop()启停整个 Exo 域
update()手动推进一次运行
run_forever()在当前线程持续运行
run_background()启动后台运行
request_stop() / join()请求后台停止并等待
health()返回 Core Health
close()关闭域并使子对象失效

ExoDevice

属性:name、source_id。

方法返回
start() / stop()None
health()Health
get_device_info()ExoDeviceInfo
telemetry()ReadChannel[ExoTelemetry]
status()ReadChannel[ExoStatus]
haptics()HapticsState
close()None

设备信息模型

  • ExoDeviceInfo: protocol_version、product、firmware、serial_number、hardware_name、capabilities、components。
  • ExoCapabilities: telemetry、encoders、handsets、imus、haptics、wireless。
  • ExoComponentCounts: encoders、handsets、imus,每项包含 available 和 total_slots。
  • ExoProduct: STANDARD、PLUS、PLUS_WIRELESS。

数据模型

  • ExoTelemetry(meta, payload, quality)。
  • ExoTelemetryPayload: left_arm、right_arm、left_handset、right_handset、torso_imu、extra_imu。
  • ExoArmState: 8 项 encoder_counts 和 8 项 joint_positions_rad。
  • ExoHandsetState: axis_x_raw、axis_y_raw、button_mask、trigger_raw。
  • ExoImuState: 3 项 acceleration_mps2、3 项 angular_velocity_rad_s、4 项 orientation_xyzw。
  • ExoStatus 是 Core DeviceStatus 的领域名称。

震动与错误

ExoHaptics(left=None, right=None) 的非空强度必须是 0…100。HapticsState 继承只读通道并增加 set(value) 与 clear()。

Exo 控制失败抛出 ExoControlError;其 kind 为 ExoControlErrorKind。参数错误使用 InvalidArgumentError,关闭对象使用 ClosedHandleError。