Ios 用蓝牙传输数据

Ios 用蓝牙传输数据,ios,bluetooth,core-bluetooth,bluetooth-lowenergy,Ios,Bluetooth,Core Bluetooth,Bluetooth Lowenergy,我正在开发一款iOS应用程序,附带蓝牙外设。我似乎无法解决的一个步骤是如何将数据从我的应用程序传输到外围设备,或者反过来 到目前为止,我构建的是一个测试应用程序,它可以连接到我的示例蓝牙外围设备,并读取其所有服务/特征/描述符。它可以切换给定特征的通知,并写入给定特征。这只是“向外设发送n个字节,从外设接收m个字节”的最后一步,我似乎无法理解 看看外部附件框架(如果苹果真的批准我这个项目,我会使用这个框架),他们会在给定的会话中为你提供输入和输出流,以便与附件通信,但CoreBooth不存在这样

我正在开发一款iOS应用程序,附带蓝牙外设。我似乎无法解决的一个步骤是如何将数据从我的应用程序传输到外围设备,或者反过来

到目前为止,我构建的是一个测试应用程序,它可以连接到我的示例蓝牙外围设备,并读取其所有服务/特征/描述符。它可以切换给定特征的通知,并写入给定特征。这只是“向外设发送n个字节,从外设接收m个字节”的最后一步,我似乎无法理解

看看外部附件框架(如果苹果真的批准我这个项目,我会使用这个框架),他们会在给定的会话中为你提供输入和输出流,以便与附件通信,但CoreBooth不存在这样的对象


这仅仅是苹果对CoreBooth功能的疏忽吗?或者,我是否只需要开发自己的蓝牙服务配置文件来处理进出外围设备的数据流入/流出?

LE基本上设计用于使用这些基于GATT的配置文件,这些配置文件适用于监控传感器,而不适用于数据流。虽然LE允许为自定义协议打开额外的L2CAP流,但苹果的CoreBluetooth不提供访问权限。

您可以使用bluetooth.org“即时警报服务”uuid=1802,特征uuid=2A06,属性=write\u no\u响应,从iPhone向您的外围设备发送一个字节的值。必须对外围设备进行编程,以便对发送的数据进行操作。例如,您可以使用iPhone应用程序上的按钮发送十六进制地址,从而在外围设备上打开或关闭一个或多个端口引脚。虽然这并不像预期的那样使用警报服务,但它确实提供了一种简单的方法来测试到外围设备的数据传输。相同的过程可用于发送类似于串行数据流的顺序数据字节。我还没有尝试发送更复杂的数据流。write_no_响应不会向应用程序提供任何关于外围设备是否接收到数据的反馈


IOS TemperatureSensor.xproj是从外围设备读取温度数据的代码示例。OSX HealthThermometerClient.xproj具有解码稍微复杂的温度计数据结构所需的代码。IOS TI-BLE-Demo.xproj tiblebkeyfob.m具有用于读取和写入特征值的代码,例如,从外围设备读取温度或电池电量。

您可以使用私人服务和特征构建自定义配置文件,并使其类似于SSP;这就是我使用BLE模块从一些传感器向我的应用程序获取数据的方式。我买的模块(Microchip的RN-4020)已经有一个专门为此定制的配置文件,称为MLDP(Microchip低能数据配置文件)

我在iOS应用程序中获取数据的方式是订阅私有特征,从而在更新值时收到通知。到目前为止,它工作得很好,根据Microchip的说法,数据速率可以高达20Kbps(我还没有测试它的极限,因为我不需要太多的速度)。以下是Microchip产品页面的链接:


祝你好运

开发BLE应用程序不需要MFi批准,我不希望传输大量数据流,即使一次传输1k,最多也可能传输100字节。您认为我可以设计一个具有足够属性的服务配置文件来传输我需要的数据吗?是的,您可以使用一个属性或一组属性,其中您的“数据流”是通过更新属性的值来完成的,可能会自动指示更改。感谢您提供的信息,就数据流而言,我在BLE上找不到太多。