通过 BLE 上的 ANT+FEC 将用户体重发送到 Smart Trainer
Sending user weight to Smart Trainer via ANT+FEC over BLE
有人知道如何将用户体重设置发送到室内 Smart Trainer 的数据页 55 吗?
我想更新用户权重,使成绩模拟更加真实。我已经设法成功发送了成绩(数据页 51)并且为用户权重实施相同的格式似乎没有做任何事情。
func sendUserConfig(_ peripheral: CBPeripheral, characteristics: CBCharacteristic, userWeight: Double) {
let userWeightKG = (400)
let uWeightLSB = UInt8(Int(userWeightKG) & 0xFF)
let uWeightMSB = UInt8(Int(userWeightKG) >> 8) & 0xFF
print("<><> uWeightLSB:\(uWeightLSB) uWeightMSB:\(uWeightMSB)")
var rawArray = [UInt8]()
rawArray.insert(0xA4, at:0) //Sync
rawArray.insert(0x09, at:1) //Length
rawArray.insert(0x4F, at:2) //Acknowledge message type
rawArray.insert(0x05, at:3) //Channel
rawArray.insert(0x37, at:4) //Page 55
rawArray.insert(uWeightLSB, at:5)
rawArray.insert(uWeightMSB, at:6)
rawArray.insert(0xFF, at:7) // reserved
rawArray.insert(0xFF, at:8) // Bike Wheel Diameter Offset + Bike Weight LSN
rawArray.insert(0xFF, at:9) // Bike Weight MSB (0xFF = default invalid)
rawArray.insert(0xFF, at:10) // Bike Wheel Diameter (0xFF = default invalid)
rawArray.insert(0x00, at:11) // Gear Ratio (0x00 = default invalid)
rawArray.insert(0xFF, at:12) //ChkSum
let data = Data(rawArray)
peripheral.writeValue(data, for: characteristics, type: CBCharacteristicWriteType.withoutResponse)
}
消息的框架格式
我缺少的是单位。用户体重数据需要以0.01kg为单位的数据,因此发送
40kg = 40 / 0.01 = 4000
100kg = 100 / 0.01 = 10000
有人知道如何将用户体重设置发送到室内 Smart Trainer 的数据页 55 吗?
我想更新用户权重,使成绩模拟更加真实。我已经设法成功发送了成绩(数据页 51)并且为用户权重实施相同的格式似乎没有做任何事情。
func sendUserConfig(_ peripheral: CBPeripheral, characteristics: CBCharacteristic, userWeight: Double) {
let userWeightKG = (400)
let uWeightLSB = UInt8(Int(userWeightKG) & 0xFF)
let uWeightMSB = UInt8(Int(userWeightKG) >> 8) & 0xFF
print("<><> uWeightLSB:\(uWeightLSB) uWeightMSB:\(uWeightMSB)")
var rawArray = [UInt8]()
rawArray.insert(0xA4, at:0) //Sync
rawArray.insert(0x09, at:1) //Length
rawArray.insert(0x4F, at:2) //Acknowledge message type
rawArray.insert(0x05, at:3) //Channel
rawArray.insert(0x37, at:4) //Page 55
rawArray.insert(uWeightLSB, at:5)
rawArray.insert(uWeightMSB, at:6)
rawArray.insert(0xFF, at:7) // reserved
rawArray.insert(0xFF, at:8) // Bike Wheel Diameter Offset + Bike Weight LSN
rawArray.insert(0xFF, at:9) // Bike Weight MSB (0xFF = default invalid)
rawArray.insert(0xFF, at:10) // Bike Wheel Diameter (0xFF = default invalid)
rawArray.insert(0x00, at:11) // Gear Ratio (0x00 = default invalid)
rawArray.insert(0xFF, at:12) //ChkSum
let data = Data(rawArray)
peripheral.writeValue(data, for: characteristics, type: CBCharacteristicWriteType.withoutResponse)
}
消息的框架格式
我缺少的是单位。用户体重数据需要以0.01kg为单位的数据,因此发送
40kg = 40 / 0.01 = 4000
100kg = 100 / 0.01 = 10000