如何将 Int 值 1 写入外围特征

How to write Int value 1 to peripheral characteristic

提问人:stoney 提问时间:7/25/2023 最后编辑:stoney 更新时间:7/26/2023 访问量:49

问:

data: Int = 1
func writeOutgoingValue(data: Int){
    var myData = data
    var newData = Data(bytes: &myData, count: MemoryLayout.size(ofValue: myData))
    print(myData)
    print(newData)
    if let LED_Peripheral = LED_Peripheral {
        if let LED_Char = LED_Char {
            LED_Peripheral.writeValue(newData, for: LED_Char, type: CBCharacteristicWriteType.withResponse)
        }
    }
}

我正在尝试发送整数 1 和 0,但无法将其转换为数据格式。

或者任何工作。

当我发送 int 1 时,我得到 8 个字节,但发送 0 会产生 0 个字节。

奇怪的是,我还有另一个带有滑块的版本,增量器,如果您将其设置为 1 或更大的任何版本,它就可以工作,

  • 带有状态 var 的滑块

这是滑块应用程序的功能。

func writeOutgoingValue(data: Int){
        let data = withUnsafeBytes(of: data) { Data($0) }

        if let LED_Peripheral = LED_Peripheral {
            if let LED_Char = LED_Char {
                LED_Peripheral.writeValue( data, for: LED_Char, type: CBCharacteristicWriteType.withResponse)
            }
        }
    }
Swift 蓝牙 - 低功耗

评论

0赞 stoney 7/26/2023
所以。。。我发现了我的错误。writeOutgoing 工作正常。我在 didDiscover 中遇到了麻烦 - 服务和特征。有些物品不见了。现在,所有关于解开 UInt8 的东西,我真的不明白。一行一行,变得有点有趣。!

答:

2赞 Martijn van Welie 7/26/2023 #1

使用 Data([1]) 发送长度为 1 字节的 1