2017-01-09 54 views
0

我正在使用bluez来编写BLE应用程序。我已阅读gatttool的源代码。我对此有几点怀疑,并且bluezgattool LTK,IRK,GAP疑惑?

  1. 在gatttool中sec-level是什么意思?它如何与BLE核心规范的安全机制(Just WorksPasskeyOOB)相关?它如何与BLE的各种安全模式和级别相关联?
  2. 我如何使用gatttool启动绑定和配对? (你可以用 将我们的命令行参数指向命令gatttool)。
  3. 我如何使用gatttool访问GAP个人档案?
  4. service discovery集成在gatttool
  5. 我该如何管理/访问对等设备并拥有LTK和IRK?

回答

1

你不需要围绕gatttool构建你的应用程序,它包含了什么。

Bluez5公开DBus中的接口。使用这个dbus api和你选择的语言(C,python,C#Mono)中的dbus绑定,你几乎可以做任何事情=)

你可以在这里找到由bluez公开的dbus api的描述: https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc

你可以找到bluetoothctl的源代码(一个工具,您可以使用配对,连接,服务发现,关贸总协定属性读&写等)在这里:https://git.kernel.org/cgit/bluetooth/bluez.git/tree/client/main.c

bluetoothctl使用GLib的GDBus(建在C中为Glib绑定dbus),你会发现几乎所有的代码示例。

+0

我可以在openwrt中获得GDBus GLib吗? – abhiarora

+1

我不确定,但是我在openwrt github上发现了这个问题:https://github.com/openwrt/packages/issues/1497 它提到了在openwrt中使用bluetoothctl,这意味着你可以获得GDBus Glib和蓝色的dbus-api。这个问题的日期到2015年,所以我想你可以期待它解决和bluetoothctl工作。 –