[英]C/C++ BLE read/write example with Bluez
我開始建立一個簡單的BLE網絡,帶有微控制器和覆盆子pi(tardis BLE加密狗)。 作為一個起點,我正在尋找一個簡單的C或C ++示例來讀/寫一個BLE設備,類似於我在命令行上可以做的事情。 到目前為止,我發現的例子非常復雜。 作為一名BLE初學者,我需要一些非常簡單的例子來構建,然后再采用更復雜的設計。 我可以像在下面的gatttool示例中那樣對BLE設備名稱進行硬編碼。
以下是我目前使用Bluez命令行選項的方法。
從命令行我可以使用:
$ sudo hcitool lescan
LE Scan ...
BB:A0:50:02:18:07 MyDevice
接下來,我可以使用gatttool在命令行上連接到設備:
$ sudo gatttol -b BB:A0:50:02:18:07 -I
[BB:A0:50:02:18:07][LE]> connect
Attempting to connect to BB:A0:50:02:18:07
Connection successful
最后,我能夠使用適當的句柄進行讀寫
[BB:A0:50:02:18:07][LE]> char-write-req 000f 0100
Characteristic value was written successfully
[BB:A0:50:02:18:07][LE]> char-write-cmd 0011 4C467A
我用於初步研究並開始使用的一些網站:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c
Bluez(Linux官方藍牙堆棧)已將其API轉移到DBUS 。 雖然在過去,“接受”'fork'bluez代碼來訪問Linux上的BLE支持,現在的方法是使用DBUS。 Bluez DBUS API在此處記錄: https : //git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc
您可以直接與DBUS聯系以獲取藍牙C / C ++應用程序,也可以使用GATT庫作為幫助程序。 第二個可能是初學者的最佳方法(也適用於非初學者,他們更願意保持他們的程序Bluez不可知,例如支持其他操作系統或Bluez pre-DBUS API或使其源更具可讀性)。
其中一個支持現代D-BUS API的GATT庫是gattlib (注意:我是這個庫的作者)。 以下是基於此庫讀取/寫入BLE設備的簡單示例: https : //github.com/labapart/gattlib/blob/master/examples/read_write/read_write.c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.