Firefly开源社区

打印 上一主题 下一主题

广播数据

53

积分

0

威望

0

贡献

游客

积分
53

广播数据

发表于 2015-5-20 17:19:07      浏览:6621 | 回复:5        打印      只看该作者   [复制链接] 楼主
由于苹果APP无法读到设备广播时的MAC地址,所以想在广播的时候在暴露一次MAC地址,如果把MAC地址添加到广播数据里面呢?
回复

使用道具 举报

31

积分

0

威望

0

贡献

游客

积分
31
发表于 2015-5-20 17:52:26        只看该作者  沙发
uint8_t app_set_adv_data(uint16_t disc_mode) 修改改函数,把你的MAC地址在这里跟着写进去。个人看法,不知道对不对
回复

使用道具 举报

53

积分

0

威望

0

贡献

游客

积分
53
发表于 2015-5-21 09:26:21        只看该作者  板凳
wyq165 发表于 2015-5-20 17:52
uint8_t app_set_adv_data(uint16_t disc_mode) 修改改函数,把你的MAC地址在这里跟着写进去。个人看法,不 ...

最好是像这样,添加到manufature data后面,但这个芯片广播的时候好像没看到manufature data


回复

使用道具 举报

151

积分

0

威望

0

贡献

技术小白

积分
151
发表于 2015-5-21 11:13:06        只看该作者  地板
2楼说得基本对,在广播数据添加,但是格式上有要求,具体得看蓝牙spec v4.0
贴上我的一段代码,应该能帮上
  1.                 app_env.adv_data[len+0] = 0x07;
  2.                 app_env.adv_data[len+1] = 0xFF;               
  3.                 get_mac_addr(&app_env.adv_data[len+2]);
  4.                
  5.                 len += 8;
复制代码
回复

使用道具 举报

53

积分

0

威望

0

贡献

游客

积分
53
发表于 2015-5-21 11:54:19        只看该作者  5#
FireBLE_blue 发表于 2015-5-21 11:13
2楼说得基本对,在广播数据添加,但是格式上有要求,具体得看蓝牙spec v4.0
贴上我的一段代码,应该能帮上 ...

get_mac_addr是你自己实现的吗,咋我放里面报错呢?
回复

使用道具 举报

151

积分

0

威望

0

贡献

技术小白

积分
151
发表于 2015-5-22 09:31:38        只看该作者  6#
是的,具体实现如下:
  1. void get_mac_addr(uint8_t *p_mac_addr)
  2. {       
  3.         uint8_t mac_addr[6];
  4.         nvds_tag_len_t add_lenth = 6;
  5.         if (NVDS_OK != nvds_get(NVDS_TAG_BD_ADDRESS, &add_lenth, mac_addr))
  6.         {
  7.                  // NVDS is empty, use default name
  8.                                 p_mac_addr[0] = 0x08;
  9.                                 p_mac_addr[1] = 0x7C;
  10.                                 p_mac_addr[2] = 0xBE;
  11.                                 p_mac_addr[3] = 0x00;
  12.                                 p_mac_addr[4] = 0x00;
  13.                                 p_mac_addr[5] = 0x00;
  14.         }
  15.         else
  16.         {
  17.                 for ( uint8_t i = 6; i >0;)
  18.                 {       
  19.                         i--;
  20.                         p_mac_addr[5-i]= mac_addr[i];
  21.                 }
  22.         }
  23. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表