蓝牙BLE主机Central讲解二(Observer扫描讲解)
前言:
Observer比Central仅少了建立连接的功能,其他均为一样。
以下针对作为主机时常用参数进行讲解,即在未连接时扫描的参数:扫描时长、扫描间隔、扫描窗口。
修改这些参数可以有效的降低功耗。
参数讲解:
TGAP_DISC_SCAN_INT 是扫描间隔(默认16,单位0.625ms);
TGAP_DISC_SCAN_WIND 是扫描窗口(默认16,单位0.625ms);
TGAP_DISC_SCAN是扫描时长(默认16384,单位0.625ms)。主机扫描时达到扫描时长后会停止扫描。Observer和Central在达到扫描时长后又开启了扫描,所以表现一直都在扫描状态。
DEFAULT_MAX_SCAN_RES是最大扫描相应数量。
扫描时长已提供接口进行修改,如设置为100ms,同时扫描数量配置为20。则在100ms内最多可扫描20个设备。同时进行了过滤,所以搜索到的MAC地址是不相同的。
扫描间隔和扫描窗口使用默认的即可,不需要修改。
理论配置:扫描时长 > 扫描间隔 > 扫描窗口。
实例:
void Observer_Init(){
......
GAP_SetParamValue(TGAP_DISC_SCAN, 800); //配置扫描时长为500ms
GAP_SetParamValue(TGAP_DISC_SCAN_INT, 400); //配置扫描间隔为250ms
GAP_SetParamValue(TGAP_DISC_SCAN_WIND, 20); //配置扫描窗口为12.5ms
}
如上配置,则有效扫描时长为12.5ms,并且会扫描2次,扫描完成即停止。
开始扫描:GAPRole_CentralStartDiscovery
停止扫描:GAPRole_CentralCancelDiscovery
附件:
主机通过按键开始/停止扫描