低功耗蓝牙BlueZ客户端和服务端实现

低功耗蓝牙的客户端和服务端实现,直接从 BlueZ 源代码里抠出来的,挺适合想动手研究 BLE 协议栈的朋友。你可以看到完整的设备扫描、连接、服务发现、GATT 读写逻辑,而且结构清晰,适合直接拿来改。嗯,代码就在`bluez-gatt-master`里,解压完看`examples`目录就行,里面的`gatt-client`和`gatt-server`都还挺实用。

在 Linux 下搞 BLE,用 BlueZ 是绕不过去的。它本身就是蓝牙协议栈的官方实现,支持 BLE 的所有标准流程。你想扫描设备?`btmgmt scan on`或者监听PropertiesChanged信号都行;想连设备?直接调用Device1.Connect就搞定。想自定义 GATT 服务?server 端示例给你列得清清楚楚。

如果你打算在物联网场景里做点低功耗蓝牙开发,这份代码资源还蛮值得看看的。不光能用,还能学到不少 DBus 通信的套路。开发过程中别忘了搭配bluetoothctldbus-monitor调试,配合起来用事半功倍。

zip
bluez-gatt-master.zip 预估大小:41个文件
folder
bluez-gatt-master 文件夹
file
CMakeLists.txt 566B
folder
libbluetooth 文件夹
file
CMakeLists.txt 61B
file
bluetooth.c 48KB
file
hci.c 64KB
file
uuid.c 7KB
folder
includes 文件夹
folder
lib 文件夹
file
bluetooth.h 9KB
file
hci.h 62KB
file
hci_lib.h 10KB
file
uuid.h 7KB
file
l2cap.h 6KB
folder
src 文件夹
folder
shared 文件夹
file
gatt-db.h 9KB
file
queue.h 2KB
file
mainloop.h 2KB
file
io.h 2KB
file
util.h 5KB
file
timeout.h 947B
file
gatt-client.h 5KB
file
gatt-server.h 2KB
file
att-types.h 6KB
file
gatt-helpers.h 4KB
file
att.h 4KB
file
crypto.h 3KB
file
btgatt-server.c 28KB
file
COPYING.LIB 26KB
file
thingy.c 16KB
file
btgatt-client.c 35KB
folder
libshared 文件夹
file
CMakeLists.txt 192B
file
gatt-server.c 39KB
file
queue.c 6KB
file
util.c 32KB
file
att.c 33KB
file
io-mainloop.c 6KB
file
gatt-client.c 74KB
file
mainloop.c 8KB
file
gatt-db.c 41KB
file
gatt-helpers.c 33KB
file
crypto.c 15KB
file
timeout-mainloop.c 2KB
file
.gitignore 437B
file
README.md 205B
file
COPYING 18KB
zip 文件大小:168.17KB