Рядом со мной сейчас находится устройство Polar h7 (это BTLE ), и у меня все работает, но я не понимаю, как получить BPM нашего characteristic.value
теперь, когда он обновляется. Мне нужно преобразовать несколько байтов в удары в минуту...
Мое периферийное устройство обновляется:
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 будет либо 1
, либо 0
. Если это 0
, значение пульса будет uint8
, а если 1
тогда это uint16
, и я могу получить BPM от этого.
Как узнать, является ли байт 0
1
или 0
? Как превратить это в uint8
или uint16
. И если я это сделаю, я получу BPM прямо или мне нужно будет сделать что-то еще? Прямо сейчас BPM возвращается как что-то вроде <16447d03>
, что имеет смысл.