广播资料太大 无法判断pEvent->deviceInfo.pEvtData ?
我的广播资料有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;
shinPC,
广播内容的长度应该不会影响设备的查找。
你的广播包内容的格式是怎么样的?
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的情况
shihPC,
广播包的格式:
//长度, 一个字节
//类型, 一个字节
//内容,长度减去一个字节
你对一下。
记得,整个所有的各种类型内容加起来不能超过31。
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)
这个判断式
ShihPC,
但是设备每次都能被搜索到吗?
那样就太奇怪了。。。
Yan,
设备可以被搜索到
只是很难进入需要判断广播资料的判断式