我现在身边有一个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
?如何将其变成uint8
or uint16
。如果我这样做了,我是直接得到 BPM 还是必须做其他事情?现在 BPM 以某种<16447d03>
有意义的方式回归。