This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

广播资料太大 无法判断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,

    设备可以被搜索到

    只是很难进入需要判断广播资料的判断式