ios - 使用 corebluetooth 将大型二进制字符串从 ios 应用程序传输到 BLE 设备

标签 ios objective-c swift bluetooth-lowenergy

我想从我的 ios 应用程序(中央设备)发送大型二进制字符串到 BLE 设备(外设)。它对于小字符串工作正常,但是当我尝试发送大字符串时,它没有接收并且连接自动断开。我读到我们需要将大数据分成多个 block 来发送。但我没有找到任何相关的工作示例。

请看发送字符串的代码

let stringToSend = "0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000,0001010101010101111111111111000000@"

.

let data : NSData = stringToSend.dataUsingEncoding(NSUTF8StringEncoding)!

if positionCharacteristic != nil {

self.polarH7HRMPeripheral.writeValue(data, forCharacteristic: positionCharacteristic, type: .WithoutResponse)

self.polarH7HRMPeripheral.setNotifyValue(true, forCharacteristic: positionCharacteristic)


}

提前致谢

最佳答案

某些设备寄存器的大小受到限制。它们不能包含超过 X 个字节用于处理。 假设所述 BLE 设备需要采用几个短命令格式的长命令。 我们还假设所述设备也能够接收短命令。 设备如何知道短命令和部分长命令之间的区别?使用指明命令类型的命令格式。 例如: 一条命令将包含 1 个头字节、6 个内容字节、1 个命令类型字节。 部分长命令的命令类型为 11111111,最后部分为 11111110。 短命令将使用 00000000 作为其命令类型。

这就是我为设备的差异命令“定义”简单协议(protocol)的方式。

我建议您在该设备的开发人员手册中查找该协议(protocol)

关于ios - 使用 corebluetooth 将大型二进制字符串从 ios 应用程序传输到 BLE 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37702623/

相关文章:

c++ - 由于 ____chkstk_darwin,在 Catalina 上使用 Deployment 10.10 编译的 MacOS 应用程序在 < HighSierra 版本上崩溃

ios - Storyboard共享约束常量

iOS Swift - 没有 Firebase 等模块

iphone - 更新应用程序时数据库是否更新

iphone - iOS 如何使 UITabBar 和 UINavigationController 变暗而不隐藏它们?

objective-c - Navigation Bar延迟更新barTintColor iOS 10

ios - 应用程序在后台时的远程推送通知 swift 3

ios - 使用 UIImagePickerController 选择视频时调用的事件

iphone - iPhone 应用程序内的捐赠功能

ios - Xcode:持久性段错误:使用 Firebase 时为 11