微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于CC254x动态修改广播数据的一些疑问。

关于CC254x动态修改广播数据的一些疑问。

时间:10-02 整理:3721RD 点击:

论坛上说使用GAP_UpdateAdvertisingData可以更新广播数据。也提到了在GAPRole_SetParameter中的case GAPROLE_ADVERT_DATA:加上这个函数就可以实现动态更新广播数据。效果如下:

    case GAPROLE_ADVERT_DATA:
      if ( len <= B_MAX_ADV_LEN )
      {
        VOID osal_memset( gapRole_AdvertData, 0, B_MAX_ADV_LEN );
        VOID osal_memcpy( gapRole_AdvertData, pValue, len );
        gapRole_AdvertDataLen = len;
        
        GAP_UpdateAdvertisingData(gapRole_TaskID, TRUE, gapRole_AdvertDataLen, gapRole_AdvertData);
      }
      else
      {
        ret = bleInvalidRange;
      }
      break;

但是,我在同文件里面的gapRole_ProcessGAPMsg函数里面发现有使用GAP_UpdateAdvertisingData函数。其中的两个事件中也使用了更新函数。

GAP_DEVICE_INIT_DONE_EVENT

GAP_ADV_DATA_UPDATE_DONE_EVENT

后者应该就是广播更新事件吧。那不是应该理解为GAPRole_SetParameter只是设置广播数据内容。只有当某一时刻的时候,进入gapRole_ProcessGAPMsg的GAP_ADV_DATA_UPDATE_DONE_EVENT才去更新GAPRole_SetParameter设置的数据吗?

居然没人回复

协议栈都是异步操作的,

GAPRole_SetParameter只是通知底层来更新广播信息,不代表更新完毕

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top