我的广播资料有30bytes
我广播20bytes时可以顺利进入pEvent->deviceInfo.pEvtData[0]==0x2A&& pEvent->deviceInfo.pEvtData[1]==0x01
但是只要广播资料逐渐增加,就会越难进入,增到30bytes就进不去了
请问有解决方法吗??
以下为我的程式
经由
GAPCentralRole_StartDiscovery( DEFAULT_DISCOVERY_MODE,
DEFAULT_DISCOVERY_ACTIVE_SCAN,
DEFAULT_DISCOVERY_WHITE_LIST );
进入
case GAP_DEVICE_INFO_EVENT:
{
if(pEvent->deviceInfo.eventType == 0x04 || pEvent->deviceInfo.eventType == 0x00)
{
if( pEvent->deviceInfo.pEvtData[0]==0x2A&& pEvent->deviceInfo.pEvtData[1]==0x01)
{
P1_7=1;
}
}
} break;
Yan:
shinPC,
广播内容的长度应该不会影响设备的查找。
你的广播包内容的格式是怎么样的?
ShihPC:
回复 Yan:
Yan,以下是我的广播资料static uint8 advertData[] ={ 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 0x1B, // length of this data GAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all LO_UINT16( SIMPLEPROFILE_SERV_UUID ), HI_UINT16( SIMPLEPROFILE_SERV_UUID ), 0x2a,0x01,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x09,0x08,0x07,0x06 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08};我发现我广播数据的长度会影响我扫描的状况广播长度短就能容易扫描到 长度<=20的情况
Yan:
回复 ShihPC:
shihPC,
广播包的格式:
//长度, 一个字节
//类型, 一个字节
//内容,长度减去一个字节
你对一下。
记得,整个所有的各种类型内容加起来不能超过31。
ShihPC:
回复 Yan:
Yan,我有用CC Debugger 看过 确实广播30笔资料只是用另一个蓝芽模组触发扫描发现装置GAPCentralRole_StartDiscovery( DEFAULT_DISCOVERY_MODE, DEFAULT_DISCOVERY_ACTIVE_SCAN, DEFAULT_DISCOVERY_WHITE_LIST );他很难进入 if(pEvent->deviceInfo.eventType == 0x04 || pEvent->deviceInfo.eventType == 0x00)这个判断式
Yan:
回复 ShihPC:
ShihPC,
但是设备每次都能被搜索到吗?
那样就太奇怪了。。。
ShihPC:
回复 Yan:
Yan,设备可以被搜索到只是很难进入需要判断广播资料的判断式