【问题标题】:develop BLE peripheral using C on intel edison在 intel edison 上使用 C 开发 BLE 外设
【发布时间】:2015-09-01 23:16:39
【问题描述】:


我正在尝试通过使用 C 库在 intel-edison 中开发蓝牙 LE 外围设备。该设备应该能够:

  1. 广告 (GAP)
  2. 接受连接 (GAP)
  3. 支持自定义GATT服务,简单读/写特征值。

我尝试使用 HCI 和 bluez 来实现这一点。 bluez-experimentsintel-edison-playground,演示如何做广告和扫描,可以在edison上编译运行。 BLE 广告和扫描确实有效。

但我很难弄清楚如何接受连接并支持 GATT 服务。我尝试在 goolge 上搜索 HCI 文档,但没有运气。有人可以提供代码的 sn-p(c 或伪或描述)吗?

非常感谢!
安德鲁

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
  • @Olaf,好的,我已经改变了我的问题。如果仍然有问题,请告诉我。
  • 问题是这是一个问答网站,而不是编码服务。如果您的代码有特定问题,您可能会显示它。否则问题可能会被关闭。您应该在 > 4 年后知道。

标签: c bluetooth-lowenergy bluez intel-edison


【解决方案1】:

如果您下载 bluez 源代码,您会在 /doc/mgmt-api.txt 中找到有关 hci 协议的文档。我自己没有使用 hci 接口,我不确定开发者是否打算让实现者使用这个接口来实现外设,所以我不确定它的效果如何。

我为我的项目采用了 DBus API 方法,该方法在 /doc/gatt-api.txt 和 /doc/advertising-api.txt 中进行了概述。这种方法涉及编写一个程序,该程序创建支持特定 org.bluez DBus 接口(GattService1,其中包含 GattCharacteristic1 和 GattDescriptor1)和 ObjectManager 接口的 DBus 对象,以向 bluez 公开所有内容。然后,您使用 LEAdvertisment1 定义广告内容并使用适配器上的 LEAdvertisingManger1 接口注册广告。

我使用 Qt 来简化 DBus 通信部分。

bluez 上用于 BLE 的 DBus API 仍在大力开发中,并非所有功能都受支持(例如,我还没有找到启动和停止广告的方法)。 5.31 包含许多新增的支持和一些针对描述符的关键错误修复,但需要更新的内核。

【讨论】:

  • 非常感谢您提供的信息。我现在正在尝试使用 dbus API 而不是使用 hci。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-30
  • 2016-12-10
  • 1970-01-01
相关资源
最近更新 更多