【Qt笔记】Qt蓝牙的基本设计思路

主体

名称 作用 类型
discoveryAgent 扫描设备用的实例 QBluetoothDeviceDiscoveryAgent
controller BLE连接示例,负责发现服务,连接设备 QLowEnergyController
service BLE服务示例,负责连接服务 QLowEnergyService

基本流程

  • 扫描设备(开始,出错,完成,取消)
  • 连接设备(选择设备,通过设备地址找到特定设备,连接)
  • 扫描设备提供的服务(开始,完成,取消)
  • 连接设备(连上,断开,错误)
  • 连接服务(选择服务,通过UUID找到特定服务,连接)
    P.S. 如果连接服务成功的话service的值会自动变成服务器提供的service
  • 扫描服务提供的数据(判断,发现数据)

需要处理的事件

这些事件是由用户发出的

事件 对于蓝牙进程的处理 调用方法
开始扫描设备 开启设备扫描进程 discoveryAgent->start(QBluetoothDeviceDiscoveryAgent::LowEnergyMethod);
结束扫描设备 判断并关闭设备扫描进程 if (discoveryAgent->isActive()) discoveryAgent->stop();
开始扫描服务 设置扫描进程 controller = QLowEnergyController::createCentral(currentDevice.getDevice(), this);,注意,currentDevice.getDevice()就是远程设备!
设置连接时的本机地址为随机还是不随机 设置地址类型 controller->setRemoteAddressType(QLowEnergyController::RandomAddress(PublicAddress));

这些事件是由Qt的蓝牙服务发出的

事件名 发起的信号 处理
发现设备 QBluetoothDeviceDiscoveryAgent::deviceDiscovered 添加设备
设备扫描错误 QBluetoothDeviceDiscoveryAgent::errorOccurred 告知发生错误
设备扫描完成 QBluetoothDeviceDiscoveryAgent::finished 扫描结束
设备扫描取消 QBluetoothDeviceDiscoveryAgent::canceled 扫描结束
设备连接成功 QLowEnergyController::connected 告知设备连接成功
设备连接错误 QLowEnergyController::errorOccurred 告知发生错误
设备连接断开 QLowEnergyController::disconnected 告知设备连接断开
发现服务 QLowEnergyController::serviceDiscovered 添加发现的服务
服务扫描完成 QLowEnergyController::discoveryFinished 告知服务扫描完成
服务连接成功 QLowEnergyService::stateChanged 添加服务数据

【Qt笔记】Qt蓝牙的基本设计思路
https://学习.fun/ml-note/qt-bluetooth/
Author
Stephen Zeng
Posted on
November 10, 2024
Licensed under