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~~~~~
网友评论