waferhit 发表于 2018-9-21 13:15:52

蓝牙动态广播的问题(nrf52832平台)

需求:要做动态广播(可连接),要求每分钟广播一次,每次广播持续10s。

拟采用方法:用定时器去控制,每分钟的第50s开始广播,第60s结束广播。

问题:为使程序更加可靠健壮,执行启动广播sd_ble_gap_adv_start或结束广播sd_ble_gap_adv_stop语句之前应该加什么限制吗(比如做些if判断)?

比如会不会出现这种情况:在广播10s快结束的时刻,主机扫描到了从机,发出扫描请求,这个时候连接尚未建立,此时应10s到点了,直接结束广播,会导致连接建立失败吗?

附广播参数如下:

#define APP_ADV_FAST_INTERVAL         40                                          
#define APP_ADV_SLOW_INTERVAL         2000   
#define APP_ADV_FAST_TIMEOUT            0                                       
#define APP_ADV_SLOW_TIMEOUT            0                                       
#define ADV_INTERVAL_FAST_PERIOD      30

    m_adv_params.type      = BLE_GAP_ADV_TYPE_ADV_IND;
    m_adv_params.p_peer_addr = NULL;                           // Undirected advertisement
    m_adv_params.fp          = BLE_GAP_ADV_FP_ANY;
    m_adv_params.interval    = APP_ADV_SLOW_INTERVAL;
    m_adv_params.timeout   = APP_ADV_SLOW_TIMEOUT;

dreambox 发表于 2018-9-21 14:17:18

如果是还未建立连接就已经停止广播是连接不上的,你用使用有限广播,广播超时设置为10S,广播会超时停止,收到广播停止消息后,切换广播内容,再次广播
页: [1]
查看完整版本: 蓝牙动态广播的问题(nrf52832平台)