gpt4 book ai didi

iOS Swift 3 BLE CBCharacteristic/Size 8 Bytes (4 Words)/如何分隔单词

转载 作者:可可西里 更新时间:2023-11-01 02:01:25 26 4
gpt4 key购买 nike

我想从蓝牙模块读取数据。有一个特征有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))")
}

“打印”函数在输出窗口中显示如下结果:

datastring: Optional("\u{01}\u{01}\0\u{01}\u{04}\u{05}\0\u{01}")

我坚持将 CBCharacteristic 内容(上面显示的 8 个字节)分成 4 个单独的值(每个值应由 1 个单词组成)。

我想要这样的结果:

Value 1: 0x01 0x01
Value 2: 0x00 0x01
Value 3: 0x04 0x05
Value 4: 0x00 0x01

每 2 个字节应该是一个值。你能帮我把这些值分开并将这些词转换成整数吗?

非常感谢。

致以诚挚的问候伯舍

最佳答案

尝试使用此代码从 2 个字节中获取整数值。LSB(小端)

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

let value = [UInt8](characteristic.value!)
let newValue = ((Int16(value[1]) << 8) | (Int16(value[0])))
let intValue = Int(newValue)
print(intValue)
}

关于iOS Swift 3 BLE CBCharacteristic/Size 8 Bytes (4 Words)/如何分隔单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com