如何追踪Wahoo Kickr Core控制命令并通过FTMS设置目标功率?
解决FTMS Fitness Machine Control Point设置目标功率的实操方案
一、严格遵循FTMS标准协议格式
FTMS(Fitness Machine Service)是蓝牙SIG定义的标准协议,0x2AD9(Fitness Machine Control Point)的操作有明确的字节规范,设置目标功率的核心规则:
- 第一步:获取设备控制权(必须前置操作)
向特征写入1字节数组:[0x00],对应操作码Request Control。操作后需订阅该特征的通知,等待设备返回响应(响应字节数组第一个字节为0x01即代表成功获取控制)。 - 第二步:发送目标功率指令
操作码为0x05(Set Target Power),后续跟随2字节小端序的有符号整数(单位:瓦特)。例如设置150W的字节数组为:[0x05, 0x96, 0x00](150的十六进制为0x0096,小端序反转后是0x96 0x00)。
二、逆向抓取官方APP的通信数据包
如果标准协议操作无效(部分厂商可能有自定义扩展),用蓝牙抓包工具(如nRF Connect)直接抓取Wahoo官方APP设置目标功率时的BLE通信:
- 打开抓包工具,连接你的训练台,订阅
0x2AD9特征的通知 - 打开Wahoo APP,设置一个明确的目标功率(比如200W)
- 在抓包日志中找到写入
0x2AD9的字节序列,直接复用该序列即可
三、关键调试注意事项
- 必须使用
writeValueWithResponse方法写入特征(Web Bluetooth API),不能用无响应写入,否则无法获取设备的操作反馈 - 始终订阅
0x2AD9的通知,设备会返回操作结果:- 成功响应:第一个字节为对应操作码(如设置功率成功则返回
[0x05, 0x01]) - 错误响应:第一个字节为
0x80(操作不支持)、0x81(参数无效)等,可根据错误码排查问题
- 成功响应:第一个字节为对应操作码(如设置功率成功则返回
内容的提问来源于stack exchange,提问作者Chris81T
相关产品推荐
相关产品推荐

