TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2541动态修改scanRspData的内容

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

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

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

Yan:

Weichao,

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

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

Weichao Fang:

回复 Yan:

Yan,

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

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

Q C:

回复 Weichao Fang:

你进去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应该也是可以的。
另外,好像不用关闭广播直接修改就行,我尝试过先关闭广播,修改之后再开启广播,好像有问题。

zhl cui:

回复 Q C:

你的问题解决了吗, 我的现象是能修改 ,但是修改了相应包后 下次部分手机扫描不到设备了

赞(0)
未经允许不得转载:TI中文支持网 » CC2541动态修改scanRspData的内容
分享到: 更多 (0)