Qualcomm技术论坛
直播中

徐敏

7年用户 158经验值
私信 关注
[经验]

QCA4020之BLE服务(1)

0.前言

    本系列主要是为了说明跟蓝牙服务相关的话题。首先以QCA4020板上注册的AIOS为例说明这个问题。



1.查看QCA4020板上已有的服务

     在服务端使用RegisterAIOS注册了AIOS服务之后,那么客户端就可以使用DiscoverServices来查找设备上的已经有的服务,得到的结果如下:


BLE: Service 0x0001 - 0x0001, UUID: 1801
BLE: Service 0x0002 - 0x0014, UUID: 180A
BLE: Service 0x0015 - 0x001D, UUID: 1800
BLE: Service 0x001E - 0x0020, UUID: 1804
BLE: Service 0x0021 - 0x0033, UUID: 1815
   但是怎么知道这些service对应的是哪些具体的服务呢?



2.查找服务

    打开如下网址:


https://www.bluetooth.com/specifications/gatt/services
    注意,通过UUID,可以在网页中的表中查看


Generic Attribute        org.bluetooth.service.generic_attribute        0x1801        GSS
Device Information        org.bluetooth.service.device_information        0x180A        GSS
Generic Access        org.bluetooth.service.generic_access        0x1800        GSS
Tx Power        org.bluetooth.service.tx_power        0x1804        GSS
Automation IO        org.bluetooth.service.automation_io        0x1815        GSS
    从这些值我们可以看出,UUID1815对应的是我们的AIOS。



3.源码

    demo里面是使用DiscoverServices函数来实现GATT服务发现操作的。

    从代码来看,主要是调用了API:qapi_BLE_GATT_Start_service_Discovery来真正实现这个操作。



发现服务操作共有以下几个步骤:

(1)获取连接的设备的信息

(2)调用API qapi_BLE_GATT_Start_service_Discovery在连接设备上获取服务,即连接设备是服务端,当前设备是客户端。

更多回帖

发帖
×
20
完善资料,
赚取积分