微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 请问ble怎样设置才能只扫描自己的广播

请问ble怎样设置才能只扫描自己的广播

时间:10-02 整理:3721RD 点击:
怎么在广播中加入一段特定的数据标识这是自己的广播

广播数据除了部分固定的格式,数组最后可以自己定义一个名字,不过广播包总长貌似不能超过31字节。如:

static uint8 advertData[] =
{
// Flags; this sets the device to use limited discoverable
// mode (advertises for 30 seconds at a time) instead of general
// discoverable mode (advertises indefinitely)
0x02, // length of this data
GAP_ADTYPE_FLAGS,
DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,

// service UUID, to notify central devices what services are included
// in this peripheral
0x03, // length of this data
GAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all
LO_UINT16( SIMPLEPROFILE_SERV_UUID ),      //你要只发现自己的广播,可以把这里的UUID改成其他约定好的值,然后在主机中开启过滤广播,这里借用服                                                                                             //务的UUID:SIMPLEPROFILE_SERV_UUID,其实没有必然关系。

HI_UINT16( SIMPLEPROFILE_SERV_UUID ),
0x06, // length of this data
GAP_ADTYPE_LOCAL_NAME_COMPLETE,            //下面的名字也是自己定义的
'L',
'i',
'g',
'h',
't'
};

主机中开启过滤:

if ( DEFAULT_DEV_DISC_BY_SVC_UUID == TRUE )
{
if ( simpleBLEFindSvcUuid( 0xAA55,                //这里设置为0xAA55,就只添加UUID为0xAA55的广播,上面的广播就被过滤掉了,其实这部分都是开源的,完全可以                                                                                  //自己重写过滤规则,指定过滤广播中的某些字节。
pEvent->deviceInfo.pEvtData,
pEvent->deviceInfo.dataLen ) )
{
simpleBLEAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top