项目简介
本项目基于C++编程语言,借助Bunget库实现了一个蓝牙低功耗(BTLE)的GATT服务器。此项目可在多种设备(如C.H.I.P Board、R - PI、Nano - Pi等)上运行,能帮助开发者轻松创建GAP/GATT服务器,规避使用Bluez和Bleno时出现的问题。
项目的主要特性和功能
- 跨平台支持:能在x86、R - PI、Nano - Pi和CHIP等多种设备上运行。
- 简化开发:提供抽象类和方法用于创建GATT服务、特性(READ/WRITE/NOTIFICATIONS),无需使用Bluez。
- 特定功能支持:支持GATT服务特性、描述符或信标,特性具备读写、指示、通知等功能。
- 资源管理:Bunget库会停止蓝牙服务,避免资源占用。
安装使用步骤
依赖安装
bash
sudo apt-get update
sudo apt-get install bluez # (needed for hciconfig utility for now)
sudo apt-get install cmake
sudo apt-get install g++
sudo apt-get install rfkill
sudo apt-get install libcrypto++-dev
sudo apt-get install uuid-dev
sudo apt-get install cmake
sudo apt-get install build-essential
项目编译
bash
cd bunget
cmake .
make
运行前准备
- 禁用或卸载蓝牙服务:
bash sudo service bluetooth stop sudo update-rc.d -f bluetooth remove
- 若有桌面环境,停止任何蓝牙管理器进程,可使用以下命令查找并终止相关进程:
bash ps ax | grep blu sudo kill -9 <进程ID>
运行项目
bash
cd src/bin
sudo ./bunget <hci设备编号>
例如,若设备编号为0,则执行:
bash
sudo ./bunget 0
注意事项
- 不同的BTLE加密狗可能需要调整接收和发送数据的时间间隔,可在
main
函数中调整相关参数。 - 广告间隔建议从512毫秒开始,避免设置过低导致hci套接字溢出。
- 仅支持使用16位UUID创建服务,最多支持8个服务和8个特性,且同一运行单元中不要混合使用16字节和128字节的UUID。
- 信标广告仅支持128位UUID。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】