nRF51822 Beacon 扫描请求包的设置

Nordic 公司自己做有 iBeacon的板子和 SDK,很少有人拥有这个SDK,我最近在朋友那也拿到了一个,但是还没有时间看。

现在我们用普通的SDK自带的 Beacon 例程来做开发,开发的时相信很多人是这样的:买别人已经做好的产品,拿回来操作几下,用nRF MCP 调试一下,就开始修改SDK了。

我也是这样子的,老实地说,然后就会碰到各种问题。

1、如何在SDK 自带的Beacon上设置 扫描请求包?

  其实有个地方比较关键,就是将m_adv_params.type 写成 BLE_GAP_ADV_TYPE_ADV_IND,不然你怎么设置,MCP 都扫不到 请求包的。

1  memset(&m_adv_params, 0, sizeof(m_adv_params));
2 
3     m_adv_params.type        = BLE_GAP_ADV_TYPE_ADV_IND;
4     m_adv_params.p_peer_addr = NULL;                             
5     m_adv_params.fp           = BLE_GAP_ADV_FP_ANY;
6     m_adv_params.interval   =NON_CONNECTABLE_ADV_INTERVAL;
7     m_adv_params.timeout  =APP_CFG_NON_CONN_ADV_TIMEOUT;

2、为什么iOS 的MCP 扫描不到 advdata.p_manuf_specific_data?

呵呵。这个相信令很多不会开发 APP 的人来说是一个很头疼的事情,搞半天都母鸡抖是怎么回事。

iBeacon要求manuf_specific_data.company_identifier 值是 0x004C, 这样微信摇一摇才能摇得到。这个值是苹果公司的,Nordic 公司的是 0x0059。

iOS 系统 的MCP 会把0x004C进行过滤,所以你如果要用 MCP 或者lightblue其他调试工具来扫描的话,得不到 advdata.p_manuf_specific_data,怎么办呢?

将manuf_specific_data.company_identifier避开 0x004C咯? 可是微信摇一摇又不起作用了,咋办呢?

自己想办法,我只能告诉你,0x004C 是扫不到的。

原文地址:https://www.cnblogs.com/ceibacity/p/5393694.html