如何强制发送广播

RT,原来使用PHY直接发,现在功能升级,使用了外设模式。通过广播发送状态,当状态改变的时候如何强制发送?不然广播间隔较长,要等到下次广播。还有能否动态修改广播长度?如GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData);重新设置


另外582如何广播蓝牙5的大广播包,库里面好像没有ADV_EXT_IND、AUX_ADV_IND、AUX_SYNC_IND以及AUX_CHAIN_IND,称作extended advertising PDUs等

使用从机模式未连接状态下会每隔一段时间往外发送广播包,修改广播间隔:

1.png

动态修改广播内容,首先需要把数组中的数据清零,以防你修改后的包的格式不正确,确保正确可不清,接下来的赋值需要符合包格式。

2.png


  1. 未找到DYNAMIC_CHANGE相关代码,不过可以自己摸索下。

  2. 强制发送,上面只是改变了周期,没法强制发送。就是一个API类似RF_TX一样,强制发送广播

  3. 蓝牙5广播 SYNC_ADC例子找到了,但是里面使用周期广播方式,在第二类广播通道发送。其实我想要的是这种方式,使用蓝牙5大广播,但是还是373839主通道(第二类通道不用了),看蓝牙协议只用把PDU改了0x07,就是SKD里的GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT。然后根据下图格式来发送。因为不知道SDK里是否已经完整,要一点点试很麻烦。因为新的扩展包只需要包含MAC地址,然后我想带上可选的功率选项,是否TGAP_ADV_TX_POWER设置一下就行。1651644219(1).png1651644303(1).png

  4. observer有没有静默监听?就是一直在373839上监听,而不发送扫描请求。原来使用的方式是在39通道RF_RX,这样就大概率不会丢包,但是现在有点想扩展到蓝牙5,因为第二类广播通道监听请求,想试下传统的observer会不会丢包。


3已经解决。最重要的就是强制发送


另外SDK还没有蓝牙5的连接例子。比如主通道广播,第二通道连接的例子


只有登录才能回复,可以选择微信账号登录