2017-01-09 133 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工作。 –