0
我正在接收藍牙數據的壓縮結構分裂了3個數據包,其中每個數據包的第一個字節是這個數據包的數字,其餘的是數據。我使用下面的代碼來組裝stuct:memcpy與偏移量結構在swift
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
guard let value = characteristic.value as NSData? else { return }
var packetNumber = UInt8()
let maxPacketSize = 17
value.getBytes(&packetNumber, length: 1)
memcpy(&settings + maxPacketSize * (Int(packetNumber) - 1), value.bytes + 1, value.length - 1)
}
它與第一個數據包的效果很好,但第二個和第三個數據包不會被複制到結構,但它仍然由零填補。 objc中的相同方法適用於所有3個數據包。哪裏不對?
謝謝!