iOS BLE蓝牙 - 发送/接收HEX数据

时间:2015-06-20 00:44:41

标签: ios bluetooth bluetooth-lowenergy

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

iOS中有没有办法发送/接收自定义HEX数据,除了使用服务&特性

3 个答案:

答案 0 :(得分:4)

不,这是不可能的,但其原因不是iOS,而是“服务”和#39;和'特点'只是BLE协议定义的一部分。

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

  

通用属性配置文件

     

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

     

服务器包含许多   属性和GATT配置文件定义了如何使用属性   发现,阅读,写入和获取适应症的协议。这些   功能支持基于服务的体系结构。使用这些服务   如配置文件规范中所定义。 GATT使您可以公开   配置文件规范中定义的服务和特征。

答案 1 :(得分:1)

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

当然,在BLE中可以发送任何类型的数据,而不仅仅是GATT。只是 iOS强迫您使用GATT 。其他任何东西都没有iOS API。所以,是的, iOS 阻止您这样做。

如果你不被迫与GATT合作,还会有其他选择:

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

答案 2 :(得分:0)

是的,您可以通过ble设备发送数据。我已经实施了。通过实现外围对象的writevalue方法,可以根据ble设备的给定特性发送数据。同样,为了从BLE设备中获取数据,您可以使用外围对象的readValue方法。数据将通过蓝牙框架的更新委托方法启动