**demo:SimpleBLEPeripheral
壹***修改了兩個地方,第壹個是動態修改廣播數據,需要調用GAP_UpdateAdvertisingData。另外壹個是在按鍵中添加了修改advertData,詳情如下:
1、peripheral.c,GAPRole_SetParameter函數GAPROLE_ADVERT_DATA部分
if ( len <= B_MAX_ADV_LEN )
{
VOID osal_memset( gapRole_AdvertData, 0, B_MAX_ADV_LEN );
VOID osal_memcpy( gapRole_AdvertData, pValue, len );
gapRole_AdvertDataLen = len;
GAP_UpdateAdvertisingData( gapRole_TaskID,TRUE, gapRole_AdvertDataLen, gapRole_AdvertData );
}
2、simpleBLEPeripheral.c文件中key處理片段(廣播數據我有重新定義過)
advertData[5]=count;
advertData[6]=count;
advertData[7]=count;
GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );
測試現象:
程序上電運行後,正常啟動和廣播,LCD上顯示正在廣播,Packetsniffer抓包,廣播內容為原數據。
然後觸發按鍵,動態修改advertData 後,出現GAPROLE_ERROR錯誤,LCD上打印ERROR,但是此錯誤並未影響其他行為,Packetsniffer抓包看,廣播數據已經被成功修改,另外該SimpleBLEPeripheral任然可以被正常的連接、通信,只是每次修改廣播內容後,均會出現GAPROLE_ERROR錯誤。