如何动态修改广播中的内容
大家好,
请问广播中的数据能不能在初始化结束后被修改?如果可以需要注意哪些方面?
我直接把scanRspData[]中的数据修改了,但是并没有被广播出去,请问该怎么修改代码,来实现广播中的数据可以动态修改?
谢谢
从名字上就该知道,scanRspData[]是扫描回应数据,不是广播数据。这两个数据都可以动态修改,但是要注意协议栈版本,1.4.0以前版本需要在GAPRole_SetParameter原型中相应位置手动添加GAP_UpdateAdvertisingData函数,具体请参考1.4.0版本,祝成功。
Hi zhi he:
这两个函数都可以修改:
HCI_LE_SetAdvDataCmd; GAP_UpdateAdvertisingData;
我是把9150的数据处理后500ms广播一次,已经成功了;有什么问题可以q我
广播包内容必须先停止广播才能修改
您的QQ是多少,需要请教您问题。
我还是没做成功。 我吧我的做法贴出来,希望您指点一下:
我首先在初始化的时候,使用
// Set the GAP Role Parameters
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_enable );
GAPRole_SetParameter( GAPROLE_ADVERT_OFF_TIME, sizeof( uint16 ), &gapRole_AdvertOffTime );
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );//广播数据
然后,在cc2540串口收到数据后,需要更改广播内容,此时,我的操作是:
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_temp_enable );//先关闭广播,对内容进行修改。
tempCount++;
tempCount %= 250;
advertData[advertDataLength - 1] = tempCount; //这里就是更改广播包的内容。
HCI_LE_SetAdvDataCmd(advertDataLength,advertData);
GAP_UpdateAdvertisingData( sensorTag_TaskID, TRUE, advertDataLength, advertData );
initial_advertising_temp_enable = TRUE;
GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), &initial_advertising_temp_enable );
但是广播内容依然没有变化。
问题在什么地方?
谢谢
Hi zhi he :
我的qq是2974219722;
按照你下面的做法应该是可以修改的呀,你是自己写的android广播扫描吗,还是用254x写的广播扫描?
我在android手机上装了一个“BLE Reader” APP.该APP能够监听到所有的广播。我已经加你QQ。
我看文档以及测试发现,每次我连接后广播出去的数据会被更新一下。没有连接时,数据时不会更新的。
另外参数GAPROLE_PARAM_UPDATE_ENABLE,就是设置在连接时更改参数的。不知道你是怎么测试到广播出去的数据发生了变化?
Hi zhi he:
我是自己写的扫描程序,然后就打印具体的太观察;“BLE Reader”的那个app看起来不清楚需要修改的数据;
你可以改很多试试看,有没有变动,比如说自加等等的,先试通广播动态修改是没有问题的,然后在把你的修改数据
加上去!