linux蓝牙协议栈bluez(https://github.com/bluez/bluez/tree/master),提供了丰富的蓝牙开发工具和示例。
bluez5主要提供基于HCI和基于DBUS的接口,基于HCI的接口主要用于更细致控制蓝牙硬件模块,而基于DBUS的接口提供大量的蓝牙上层协议,能更好的管理蓝牙。
轻量级开发:不使用glib、dbus,开发周边设备可以借鉴btmgmt.c和btgatt-server.c、btgatt-client.c。
重应用开发:使用glib、dbus开发的话,可以参考gatt-service.c。一般音频、文件传输基于此,提供了丰富接口和上层应用。
ble开发
一般 BLE(低功耗蓝牙)设备的连接流程可以分为以下几个步骤:
启动设备发现:通过 StartDiscovery 方法开始扫描周围的 BLE 设备。 监听设备发现信号:监听 InterfacesAdded 信号,以获取发现的设备对象路径。 停止设备发现:扫描到目标设备后,通过 StopDiscovery 方法停止扫描。 配对设备(可选):如果设备需要配对,可以调用 Pair 方法进行配对。 连接到设备:通过 Connect 方法连接到设备。 发现服务和特征:连接成功后,发现设备上的服务和特征。 操作特征:读取或写入特征,订阅通知等。
参考:
1. 低功耗蓝牙ble开发(一)——bluez介绍及源码分析