BLE_ST-beacon广播兼容性调整

  uint8_t adv_data[] = {
      /* Advertising data: Flags AD Type */
      0x02, 
      0x01, 
      0x06, 
      /* Advertising data: manufacturer specific data */
      26, //len
      AD_TYPE_MANUFACTURER_SPECIFIC_DATA,  //manufacturer type
      0x4C, 0x00, //Company identifier code (Default is 0x0030 - STMicroelectronics: To be customized for specific identifier)
      0x02,       // ID
      0x15,       //Length of the remaining payload      
      0xFD, 0xA5, 0x06, 0x93, 0xA4, 0xE2, 0x4F, 0xB1, 
      0xAF, 0xCF, 0xC6, 0xEB, 0x07, 0x64, 0x78, 0x25,        //Device UUID (16 Bytes)      
//      0x01, 0x02, // Major number 
//      0x01, 0x02, // Minor number 
      /*Major Value (2 Bytes)*/
      HI_FOUR_UINT8(DEFAULT_BATVAL) | DEFAULT_HI_MAJOR_UINT16,  DEFAULT_LO_MAJOR_UINT16,
      
      /*Minor Value (2 Bytes)*/
      DEFAULT_HI_MINOR_UINT16, DEFAULT_LO_MINOR_UINT16,
      0xC8        //2's complement of the Tx power (-56dB)};      
   }
   

广播数据中默认是0x30 0x00这个是company identifier code ,st默认是0x30 ,但是一般app再扫描广播数据时都会解析此处,由于此处涉及公司非常多,每家都不一样,因为很多app 都是针对自己所使用的来做解析业务,因此,如果再调试beacon中,使用了第三方现成的app来做测试,很有可能会出现有的app能被扫描到,有的app扫描不到的问题,一度怀疑硬件设计问题,甚至是beacon的兼容性问题;的确是兼容性问题导致,很多app搜索不到,这里处理方式也非常简单暴力,改成苹果公司的,0x40, 0x00~~~~~

你可能感兴趣的:(BLE_ST-beacon广播兼容性调整)