CN / EN
CN / EN

写技术文章

技术分享 | GR551X 蓝牙连接后开启主动扫描示例说明

Ping

汇顶员工
2021-12-19 22:29:05

在设备被连接后,可以通过开启广播主动连接其它设备,本文基于 ble_app_hrs_rscs_relay例程介绍在连接后如何设置扫描的相关参数,以及扫描后如何连接并注册调用相关逻辑业务。

SDK相关例程如下,可以参考《GR551x HRS RSCS Relay示例手册》文档说明。

Master: SDK_Folder\projects\ble\ble_multi_role\ble_app_hrs_rscs_relay

Slave: SDK_Folder\projects\ble\ ble_peripheral\ble_app_hrs


1. 设置扫描参数

在uesr_app.c中设置扫描参数,其中scan mode需要设置为observer模式,扫描间隔等参数可根据需要修改。


2. 开启扫描

应用层收到命令(HRRCPS_EVT_SCAN_HRS)后,开启扫描(ble_gap_scan_start)。


3. 停止扫描

扫描到目标设备后,注册处理函数(app_adv_report_handler),通过UUID等信息判断到目标设备后,停止扫描(ble_gap_scan_stop),获取设备地址等信息。


4. 连接至目标设备

停止扫描后,注册函数(app_scan_stop_handler),向扫描到的设备发起连接。


5. 发现相关服务

连接设备后,需要注册函数(app_connected_handler)来发现相关服务。


6. 执行应用层相关指令

服务发现成功后,即可注册相关应用处理函数。


7. 业务层实现方法

扫描连接后,发现相关服务的函数需要在profile中实现,以本示例工程的hrs服务发现为例,发起连接后调用hrs_c_disc_srvc_start来发现hrs服务。


本示例工程中,发现服务后,将会调用hrs_c_evt_process函数来实现命令发送与返回,例如6小节示例代码中HRS_C_EVT_DISCOVERY_COMPLETE发现服务成功后发送对应command id使能hrs设备。

hrs_c.c中定义了相关服务的UUID逻辑处理和数据解析函数, 用户可以参考att_uuid_t的结构定义私有的UUID列表,以实现私有服务的数据解析。

2收藏

1赞成

您的评论
我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注