我想从蓝牙模块中读出数据。 有一个特征有4个值,以8个字节/ 4个字存储。
这是存储在characteristic.value中的数据:
0x01 0x01 0x00 0x01 0x04 0x05 0x00 0x01
我使用Swift 3。
这是代码
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
let data = characteristic.value
let dataString = String(data: data!, encoding: String.Encoding.utf8)
print("Data: \(String(describing: dataString))")
}
“print”函数在输出窗口中显示以下结果:
datastring: Optional("\u{01}\u{01}\0\u{01}\u{04}\u{05}\0\u{01}")
我坚持将CBC特征内容(上面显示的8个字节)分成4个单独的值(每个值应由1个单词组成)。
我希望得到这样的结果:
Value 1: 0x01 0x01
Value 2: 0x00 0x01
Value 3: 0x04 0x05
Value 4: 0x00 0x01
每2个字节应为一个值。 你能帮我把这些价值分开并将这些词转换成整数吗?
非常感谢。
非常好的问候 Bursche
答案 0 :(得分:1)
尝试使用此代码获取2个字节的整数值。 LSB(小端)
any