微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541动态修改scanRspData的内容

CC2541动态修改scanRspData的内容

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

我需要在scanRspData里带上电量,所以每隔一段时间要刷新scanRspData的内容。现在的主要问题是,怎么修改,我试过直接调用

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );但没修改过来。我也试过先暂停广播再修改,修改完后开启广播,但这样也不行。是不是专门有个更新的函数?

顺便问下,因为我们对功耗要求比较高,我准备每隔1分钟读一下电量值再放到scanRspData里,这样合理吗?

Weichao,

你需要先停止广播之后,再去修改scanRspData,然后再使能广播。

每隔一分钟读取电量没问题。

Yan,

我试过先停止广播,修改完再开启广播,但是收到的scanRspData还是没有变。

是调用这个函数的吗?GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData )

你进去GAPRole_SetParameter()函数里面看一下,找到这个: 

case GAPROLE_SCAN_RSP_DATA:
      if ( len <= B_MAX_ADV_LEN )
      {
        VOID osal_memset( gapRole_ScanRspData, 0, B_MAX_ADV_LEN );
        VOID osal_memcpy( gapRole_ScanRspData, pValue, len );
        gapRole_ScanRspDataLen = len;
        ret = GAP_UpdateAdvertisingData(gapRole_TaskID,FALSE,gapRole_ScanRspDataLen,gapRole_ScanRspData);
      }
      else
      {
        ret = bleInvalidRange;
      }
      break;

看看有没有

ret = GAP_UpdateAdvertisingData(gapRole_TaskID,FALSE,gapRole_ScanRspDataLen,gapRole_ScanRspData);这条语句
没有的话加上应该就可以了,我动态修改过GAPROLE_ADVERT_DATA,修改GAPROLE_SCAN_RSP_DATA应该也是可以的。
另外,好像不用关闭广播直接修改就行,我尝试过先关闭广播,修改之后再开启广播,好像有问题。

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

网站地图

Top