2015-06-20 44 views
7

我创建应该连接到一个自定义的BLE装置iOS应用程序。我需要iOS应用发送2个HEX命令,一个用于启用设备的一部分,另一个用于请求数据。的iOS BLE蓝牙 - 发送/接收HEX数据

是否有任何的iOS的方式发送/接收自定义HEX数据,比服务&特色工作等?

+0

您是否得到了解决方案,请分享 –

回答

4

没有那是不可能的,但这样做的原因是不是iOS版,但该“服务”和“特色”只是的BLE协议是如何定义的一部分。

官方规范: https://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx

通用属性资料

最新的蓝牙规范使用基于属性协议(ATT)上的基于服务的架构 。低能量的所有通信 发生在通用属性配置文件(GATT)上。应用程序 或其他规格采用该GATT配置文件,以便在客户端和服务器可以 以结构化方式进行交互。

服务器包含许多 属性,及总协定资料定义了如何使用属性 协议来发现,读,写和获得指示。这些 功能支持基于服务的体系结构。这些服务使用配置文件规范中定义的 。 GATT使您能够公开在配置文件规范中定义的服务和特性 。

+0

您的回答不正确:您可以在GATT范例以外的BLE中发送数据。 –

1

另一个答案是意外的,但是出于错误的原因。

当然是可能的BLE发送任何类型的数据,而不仅仅是GATT。这只是iOS迫使你与GATT合作。没有任何其他iOS API。所以,是的,它是的iOS阻止你这样做。

如果你不会被迫与GATT工作,会有一些其他的选择:

  • L2CAP基于信用的通道 - 创建一个通道,让您每次发送数据的整整23个字节数据包(BLE 4.0和4.1; 4.2允许多于此),无论您选择什么格式。
  • 通过访问HCI,可以发送自定义ACL数据包以避免L2CAP头。但是您还需要修改另一端以确保它正确解析它。