我现在身边有一个Polar h7设备(它是 BTLE),我已经完成了一切工作,但我对如何获得 BPM 感到困惑,characteristic.value因为它正在更新。我必须将一些字节转换为 bpm ......
我的外围设备正在更新:
func peripheral(peripheral: CBPeripheral!, didUpdateValueForCharacteristic characteristic: CBCharacteristic!, error: NSError!) {
if characteristic.UUID == CBUUID.UUIDWithString(heartRateChar) {
getInfoAboutHeartRate(characteristic)
}
}
我正在获取有关心率的信息:
func getInfoAboutHeartRate(characteristic:CBCharacteristic) {
println(characteristic.value)
var bytes = characteristic.value.bytes
}
我知道我需要将这些字节转换为 BPM。
根据bluetooth.org的规范(这是我感到困惑的地方) ,字节 0 将是 a1或 a 0.. 如果是 a 0,则心率值是 an uint8,如果是 a,1那么它是 a uint16,我可以从中获得 BPM。
如何确定 byte0是 a1还是 a 0?如何将其变成uint8or uint16。如果我这样做了,我是直接得到 BPM 还是必须做其他事情?现在 BPM 以某种<16447d03>有意义的方式回归。