0

我有 Swift BLE 相关的问题/问题。

我有一个我想用我自己的应用程序控制的 MI 乐队。

从设备读取值没有问题。但现在我想写一个值。

我发现这个网站列出了大部分特征:

Start Vibration
Write 8, 2 to Characteristic 0xFF05 (CONTROL_POINT). 

所以我想通过以下方式开始振动:

if cc.uuid.uuidString == "FF05"{
     let data: Data = "8, 2".data(using: String.Encoding.utf8)!
     miBand.writeValue(data, for: cc, type: CBCharacteristicWriteType.withResponse)
}

我也尝试了其他特性,但它们都不起作用。没有错误,没有响应,什么都没有。

我错过了什么吗?

编辑

我可以设法通过蓝牙向我的树莓派发送一些东西。所以看来小米手环目前的固件已经不支持我发送的数据了。我还注意到您无法再阅读所有特征。

4

2 回答 2

0

检查 CBChaaracteristic 属性是否已写入或其他。如果属性是写入,则请求数据写入 CBCharacteristic 并从外围设备获取响应。

于 2017-07-19T12:13:20.660 回答
0

我想问题是您尝试写入的数据。尝试以下操作:

if cc.uuid.uuidString == "FF05"{
  let bytesToWrite:[UInt8] = [8, 2];
  let data = NSData(bytes: bytesToWrite, length: bytesToWrite.count)
  miBand.writeValue(data, for: cc, type: CBCharacteristicWriteType.withResponse)
}

对于 Mi Band 2,他们还更改了协议,因此对于 Mi Band 1,您可能也必须使用特性2A06而不是FF05

于 2017-07-30T12:57:45.157 回答