我想将Concept2划船者连接到我的iPhone。 相应的蓝牙数据表可在此处找到:http://www.concept2.com/files/pdf/us/monitors/PM5_BluetoothSmartInterfaceDefinition.pdf
我想找回不同的数据:ElapsedTime,Distance,Split / interval等。
从UUID地址0X0031我按以下顺序得到19字节数据:经过时间Lo(0.01秒lsb),经过时间中位数,经过时间高,距离低(0.1 m lsb),距离中间,距离Hi, ...
所以1个字节对应1个属性。
我需要提取与属性对应的字节并进行转换。 我认为所有字节数据都是无符号类型(用于提取)。
ElapsedTime变量有3个字节。为了构建ElapsedTime变量,我计算如下:
class func dataToUnsignedBytes8(value:NSData) -> [UInt8]{
let count = value.length
var array = [UInt8](count: count, repeatedValue: 0)
value.getBytes(&array, length: count * sizeof(UInt8))
return array
}
class func getElapsedTime(value : NSData) -> Double {
let dataFromSensor = dataToSignedBytes8(value)
let elapsedTime = Double(dataFromSensor[2] * 65536 + dataFromSensor[1]*256 + dataFromSensor[0])
return elapsedTime
}
但我不确定我在做什么。
ElapsedTime_Hi字节是否位于dataFromSensor的索引3处,ElapsedTime_Mid位于dataFromSensor的索引2处,ElapsedTime_Lo位于索引0处的dataFromSensor处?
为其他属性提取相应字节的最佳方法是什么?
提前谢谢
此致