CH582 CH573 CH579 定向广播 定向可连接广播事件(ADV_DIRECT_IND)

这个广播是为了快速建立连接。这种报文包含两个地址:广播者地址和发起者的地址。 发起设备收到发给自己的定向广播报文后,可以立刻发送连接请求事件作为回应,并进入连接状态。

定向广播事件有特殊的时序要求。完整的广播事件必须每 3.75ms之内重复一次。这一要求似的扫描设备只需扫描 3.75ms 便可以收到定向广播设备的消息。 如下所示。

 

这么快的发送速度让周围充斥着广播信道, 这使得该区域的其他广播事件无法进行广播。所以,协议规定:

 

也就是定向广播不能持续 1.28s 以上的时间。如果主机没有主动要求停止,或者连接没有建立,控制器都会自动停止广播。 一旦超过1.28s,主机只能使用通用广播让其他设备连接。

        uint8_t adv_event_type = GAP_ADTYPE_ADV_LDC_DIRECT_IND;
        uint8_t Adv_Direct_Addr[B_ADDR_LEN];
        uint8_t Adv_Direct_Type = addr_type;//地址类型

        tmos_memcpy(Adv_Direct_Addr, McaAddr,
                sizeof(Adv_Direct_Addr));//目标地址

        GAPRole_SetParameter( GAPROLE_ADV_DIRECT_ADDR, sizeof(Adv_Direct_Addr),
                Adv_Direct_Addr);
        GAPRole_SetParameter( GAPROLE_ADV_DIRECT_TYPE, sizeof(Adv_Direct_Type),
                &Adv_Direct_Type);
        GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof(adv_event_type),
                &adv_event_type);

设备初始或者修改广播的时候加上上面这些开启定向广播

CH573 CH582 CH579 peripheral通用外设例子讲解三 修改广播包 - debugdabiaoge - 博客园 (cnblogs.com)



 

 

 

 

 

posted @ 2023-02-23 16:37  debugdabiaoge  阅读(343)  评论(0编辑  收藏  举报