繁体   English   中英

从正在发送阵列数据的Core Bluetooth外设读取数据?

[英]Reading data from Core Bluetooth Peripheral that is sending the array data?

我正在尝试读取Peripheral发送的数组数据,并将其解析为Swift数组形式。

外围设备正在发送数据,例如:Array [1至15]数字。(出于全面的目的,此整数范围在1000至2000之间)。 但是现在我正在尝试使其使用1到15个Integer值。 我能够以编码格式的字符串格式获取结果。 我的问题是如何快速从didUpdateValueFor方法的Characteristic.value获取数组1到15。

这是供参考的代码段。

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

    if characteristic == rxCharacteristic {
        count += 1
        let data = characteristic.value
        print("Count: \(count), data: \(data! as NSData)")


    }
}

在X代码控制台中,打印结果为:

计数:2,数据:<00000100 02>
计数:3,数据:<00030004 00050006 00070008 0009000a 000b000c>
计数:4,数据:<000d00>
计数:5,数据:<0e000f00>

使用下面的代码以array的形式检索Int值。

不要忘记为数据请求重置count = 0values.removeAll()

我假设你的characteristics.valueInt

var values:[Int] = []
    func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

        if characteristic == rxCharacteristic {
            count += 1
            if let data = characteristic.value {
                var num = 0
                //Convert Data to Int
                data.getBytes(&num, length: MemoryLayout<Int>.size)
                values.append(num)
            }
            print("Count: \(count), data: \(data! as NSData)")
          }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM