从 Core Bluetooth 中央连接并向 Eddystone 信标发送数据?

Connecting and sending data to Eddystone beacon from Core Bluetooth central?

我目前正在使用一个传感器,该传感器使用 Eddystone 信标将 31 字节数据包发送到 Core Bluetooth iPhone 应用程序,作为分解和处理接收到的数据包的中心。中央设置为可扫描和不可连接。我想从中央向信标发送一个转向传感器 on/off 信号,但我不确定如何继续,因为 Core Bluetooth 使用与 Eddystone 不同的协议。我考虑过的潜在解决方案是:

  1. 在应用程序中创建按钮,切换可连接设置以与信标连接。在传感器信标代码中写入条件以在连接建立后关闭电源。可能通过将传感器保持在深度睡眠模式来实现相反的情况,一旦重新建立连接,该模式就会退出。
  2. 本质上是从中央请求写入 Eddystone 等效于外围传感器端的特性。

问题是,我不确定如何匹配 Core Bluetooth 和 Eddystone,以便从 iPhone 中央创建一个格式正确的 31 字节数据包,该数据包可以发送到、接收,然后由外围设备读取以切换其电源 on/off 状态。如果可能的话,我该如何解决这个问题?如果不可能,Core Bluetooth 扫描仪与 Eddystone 信标外设通信有哪些解决方法?

根据 Eddystone documentation,Eddystone 是一种协议规范,它为接近信标消息(来自您的传感器的数据)定义了蓝牙低功耗 (BLE) 消息格式,并进一步指定了一个配置 GATT 服务,允许一些配置。

在 BLE 术语中,Eddystone 传感器是一个外围设备,应该公开 Eddystone Configuration GATT Service 并根据 Eddystone 格式公布数据。

为了使用 Eddystone 配置 GATT 服务,您必须从 central(您的 IPhone)和 peripheral(您的传感器)并在特性中写入参数。

根据 Eddystone 配置 GATT 服务 的文档,要停止广告,请写入一个空数组,或者在具有 UUID a3c8750a-8ed3-4bdf-8a39-a01bebede295 的特征中写入单个 0x00。

如果您的传感器公开此服务,这是可能的。