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

scanRspData数据能更新吗?CC2540

在扫描请求之后,有回应一个scanRspData数据。。

我想更改scanRspData里面的值。GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );可以设置,但是如果在之后,我scanRspData值修改了,怎么重新设置??

Yan:

wengo,

你可以在任何没有BLE连接,并没有处于广播模式的情况下调用GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ) 来修改scan response的内容,然后进行广播。

wengo wu:

回复 Yan:

HI YAN:

我明白了些。。

我现在是在广播模式下,同时,周期性事件中,我调用

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );GAP_UpdateAdvTokens();

之后,发现已经修改了scanRspData值,,GAP_UpdateAdvTokens();这个函数是其什么作用?因为在这个同时,如果我使用lightblue之后,连接我的设备,设备就断开连接了,而且,也不广播了。

wengo wu:

回复 Yan:

HI Yan,

我现在流程是这样的,开始广播,,停止广播。调用GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ),通过断点查看,发现了scanRspData的值确实改变了。,,然后再次开始广播。

1  我在手机接收端,发现没有改scanRspData值。。设备开始广播时,接收端开始接收scanRspData值是对的,,设备停止广播时,接收端也没有收到数据,,设备再次开始广播时,接收端还是之前scanRspData里面的值,不是我修改后的值。

2  之前帖子里有说到使用GAP_UpdateAdvTokens();能改变scanRspData值,手机接收端也同时改变了,但是同时会出现一个 ERROR错误(前面帖子提到的状况连接之后不能再次扫描到了),这个又是什么情况?

Yan:

回复 wengo wu:

hi wengo,

除了scan response,还有advertising data你也需要注意一下。你确定你手机上收到的是scan response,而不是advertising data?

wengo wu:

回复 Yan:

GAP_UpdateAdvertisingData( gapRole_TaskID,TRUE, 30, gapRole_AdvertData );这个是修改advertising data。我已经确定了。

我现在使用

GAPRole_GetParameter(GAPROLE_SCAN_RSP_DATA, scanRspDataSD); 取修改后数据放在scanRspDataSD

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );设置scanRspDataSD值

取出来的scanRspDataSD ==  新设置的scanRspData。但是这样手机端收不到修改后的值,一直是修改前的值。。

只要我在GAPRole_SetParameter这个后面加上:GAP_UpdateAdvTokens();,手机端立刻就收到的是修改后的值,我用的是IOS系统读取的,手机用iphone5。。。所以是不是有什么不一样??

现在问题是,用了GAP_UpdateAdvTokens();后,在串口中调试,看到进入GAPROLE_ERROR:中有ERROR错误。我不能连接设备了,一连接,之后在也找不到设备了。

wengo wu:

回复 Yan:

HI  能帮忙解决吗?

我现在这个问题查看2天代码了。。还是没有头绪。

可能是并没有真正的更改掉scan response的值,,请问已经开始广播后,要更改scan response值的流程是什么样的?

赞(0)
未经允许不得转载:TI中文支持网 » scanRspData数据能更新吗?CC2540
分享到: 更多 (0)