Javascript getUint16备用Swift

时间:2018-05-09 19:26:00

标签: arrays swift byte

我有这个JavaScript代码。用于读出BLE值。

         ble.read(currentDevice,"49141400-61EE-46BF-858C-6872C0C9A710","4914140b-61EE-46BF-858C-6872C0C9A710",function(data) {
         var dv1 = new DataView(data);
         document.getElementById("profile71").value = dv1.getUint16(0,true);
         document.getElementById("profile72").value = dv1.getUint16(2,true);
         document.getElementById("profile73").value = dv1.getUint16(4,true);
         document.getElementById("profile74").value = dv1.getUint16(6,true);
         document.getElementById("profile75").value = dv1.getUint16(8,true);
         document.getElementById("profile76").value = dv1.getUint16(10,true);
         },app.OnError);

搜索Swift 3.0的替代品。我不知道如何从数据中翻译Uint16。

我在Swift中使用:BLE characteristic.value

1 个答案:

答案 0 :(得分:0)

我假设您在dv1中有Data类型的数据:

var dv1: Data? = Data() // Rather `Data()`, you will your your data here

// Do this to convert dv1 to `UInt16`
if let data = dv1 {
    let u16Array: [UInt16] = data.bytes // `u16Array` is of type [UInt16] 
}

bytes位于Data分机的位置为:

extension Data {
    public var bytes: Array<UInt16> {
        return Array(self)
    }
}