scanRspData数据能更新吗?CC2540
在扫描请求之后,有回应一个scanRspData数据。。
我想更改scanRspData里面的值。GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );可以设置,但是如果在之后,我scanRspData值修改了,怎么重新设置?
wengo,
你可以在任何没有BLE连接,并没有处于广播模式的情况下调用GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ) 来修改scan response的内容,然后进行广播。
HI YAN:
我明白了些。。
我现在是在广播模式下,同时,周期性事件中,我调用
GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );
GAP_UpdateAdvTokens();
之后,发现已经修改了scanRspData值,,GAP_UpdateAdvTokens();这个函数是其什么作用?因为在这个同时,如果我使用lightblue之后,连接我的设备,设备就断开连接了,而且,也不广播了。
HI Yan,
我现在流程是这样的,开始广播,,停止广播。调用GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ),通过断点查看,发现了scanRspData的值确实改变了。,,然后再次开始广播。
1 我在手机接收端,发现没有改scanRspData值。。设备开始广播时,接收端开始接收scanRspData值是对的,,设备停止广播时,接收端也没有收到数据,,设备再次开始广播时,接收端还是之前scanRspData里面的值,不是我修改后的值。
2 之前帖子里有说到使用GAP_UpdateAdvTokens();能改变scanRspData值,手机接收端也同时改变了,但是同时会出现一个 ERROR错误(前面帖子提到的状况连接之后不能再次扫描到了),这个又是什么情况?
hi wengo,
除了scan response,还有advertising data你也需要注意一下。你确定你手机上收到的是scan response,而不是advertising data?
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错误。我不能连接设备了,一连接,之后在也找不到设备了。
HI 能帮忙解决吗?
我现在这个问题查看2天代码了。。还是没有头绪。
可能是并没有真正的更改掉scan response的值,,请问已经开始广播后,要更改scan response值的流程是什么样的?
好吧,我明白了,,和更新advertData一样的。。。可以看我另一个帖子,关于advertisingData更新的。