订阅模式
异步接收
同步非阻塞接收
回调接收
- Python
- C
WujiFrameKind:WUJI_FRAME_KIND_OK 表示帧可读,_LAG 表示消费端落后并携带丢帧数,_END 与 _ERROR 是终止帧。帧指针仅在回调期间有效,需要保留的数据必须在回调内拷贝。
关闭订阅
回调订阅需要手动关闭:- Python
- C
调节订阅流输出率
调节订阅流的固件推送频率,返回设备实际生效的输出率:- Python
- C
- 需要在未关闭的订阅句柄上调用,订阅存续期间设置持续生效。
- 只能调低,无法超过原生输出率。设备把请求量化到支持的档位(原生输出率的整数分频),以实际生效值为准。C 侧不需要实际生效值时,
out_actual_hz传NULL即可。 - 输出率属于流而非句柄:同一流的所有订阅共享该设置,后写生效。
- 设置不持久化:该流的最后一个订阅关闭或设备重连后,输出率恢复设备默认满速。
- 仅设备直接产出的流可调。派生流跟随源流自动降频,
tf_static等全局资源由 SDK 聚合,对二者调节时 Python 抛WujiException,C 返回WUJI_STATUS_ERR_UNSUPPORTED(-8)。 - 需要支持输出率调节的固件。固件不支持时,Python 抛
WujiException,C 返回WUJI_STATUS_ERR_UNSUPPORTED(-8)。
Wuji Hand 2 的
joint_states 与 joint_diagnostics 共享同一条设备流,调节任意一个,两者同时生效。
完整示例见 examples/python/wuji_glove/6.set_stream_rate.py、examples/python/wuji_hand_2/4.set_stream_rate.py、examples/c/wuji_glove/1_set_stream_rate.c 与 examples/c/wuji_hand_2/4_set_stream_rate.c。
跨设备合并订阅
全局资源会自动聚合所有已连接设备的数据。当前版本的全局资源:
运行时查询完整的全局资源列表并订阅:
- Python
- C
可用数据流
按产品索引
接口清单
Python 提供异步、同步非阻塞与回调三种取帧方式,C 只提供回调方式,帧指针仅在回调期间有效。C 侧的内存归属与回调约束见 C 接口参考。