跳转到主要内容

例子希望私人/随机地址解析

DA1468x

6个月前

发布的andrewhh150点 15日回复
0的问题

你好,

我使用DA14683和PRO开发工具包

SDK 1.0.14.1081

SmartSnippits工作室v1.6.3.918

使用工具链捆绑了SmartSnippits工作室

请给我一个例子,使用私有地址解析DA14683 ?我在尝试使用私有地址在下面的zip文件中解析。为我的“中央”设备,我测试macOS的联盟与联盟连接无线上网卡。

修改的“百时美施贵宝”(债券管理服务)的例子,nRF连接和nRF电子狗将成功和债券与DA14683和我能看到债券管理服务的特点。但MAC地址将公共静态。

我的代码修改后,DA14683 MAC地址将“RandomPrivateResolvable”,但成键不再功能和nRF连接不再显示了“债券管理服务”。我想我已经修改代码不正确。有一个例子显示正确的方法来实现随机可解析地址?我的目标是防止被动跟踪设备。

注:我不确定如何在ble_gap_address_set使用第二个参数。可接受的值是什么?评论说“随机地址更新时间10 ms的步骤——最低是150年代栈”。这是否意味着最低是“15”或“150”?我随意选择了150年。

附件 大小
截图的变更和修改代码 123.42 KB
nRF连接 1005.04 KB

6个月前

PM_Dialog

嗨andrewhh,

谢谢你的问题,延迟道歉。让我看看,我会很快回到你身边。

谢谢,PM_Dialog

6个月前

PM_Dialog

嗨andrewhh,

对不起我回复晚。我进行了几项测试,ble_adv和百时美施贵宝SDK和BD地址是私人可分解的,似乎是每个renew_dur改变。请见下面的我的反馈和一些小的变化:

1。设置在custom_config_qspi dg_configBLE_PRIVACY_1_2。h:

#定义dg_configBLE_PRIVACY_1_2 (1)

2。使own_address1随着全球:

/ *设置BLE地址使用LE“私人可解析”隐私v1.2 * / own_address_t own_address1 = {.addr_type = PRIVATE_CNTL .addr = {0}};

3所示。bms_task:

空白bms_task (void * params) {…。print_bonded_devices ();ble_error_t状态;状态= ble_gap_address_set (&own_address1 0 x00ff);如果状态! = BLE_STATUS_OK {printf (" % s:失败了。= % d \ r \ n”状态,__func__,状态);}/ *设置广告数据,开始广告* / ble_gap_adv_data_set (adv_data sizeof (adv_data), 0, NULL);ble_gap_adv_start (GAP_CONN_MODE_UNDIRECTED);…。}

注意:关于ble_gap_address_set()和renew_dur论点,最小恢复时间是150秒和10 ms的价值在于步骤。

因此,最小值将会是:150 * 1000/10 = 15000 (= 0 x3a98十六进制)

值低于15000将被忽略和更新时间150秒(最小恢复时间)。如果您设置0 x00ff新的价值,BD地址将每150秒更新一次。

百时美施贵宝的例子和上面的代码片段我得到以下结果:

最初的BD地址:44:aa: 4 d: b0: c1: ef

150秒后再次BD地址:40:07:6:d7: 08年:2 b

正如你所看到的BD地址是私人可解析。从附件图片(最初的帖子),似乎BD也是私人可解析。请检查BD正在更新后150秒,因为您正在使用一个更新值低于最小值。

谢谢,PM_Dialog

5个月前

andrewhh 150点

我执行你的代码更改,他们没有解决我的问题。我看到我的第一篇文章描述相同的行为。债券管理服务(BMS)是无处可寻。结合似乎成功当我从联盟启动键电子狗“中央”设备,但DA14683 MAC地址并不能阻止改变,暗示没有身份解决密钥(惹恼)转移。和DA14683继续产生配对请求当我nRF电子狗“中央”设备连接到它,这意味着键实际上并没有成功。你能把bms_task。c和主要。c文件,你用来制作演示工作吗?我附上我的。

附件 大小
bms_task-and-main-c.zip 7.88 KB

5个月前

andrewhh 150点

我已经创建了一个视频显示错误的问题https://youtu.be/bhIUNgt19uo

5个月前

PM_Dialog

嗨andrewhh,

谢谢你的视频,非常有助于更好地理解这个问题。最后,我能复制。百时美施贵宝消失了在使用PRA非常奇怪。

我将检查这个内部和送还给你。

谢谢,PM_Dialog

5个月前

andrewhh 150点

嗨PM_Dialog,

在这个问题上有任何进展了吗?

5个月前

PM_Dialog

嗨andrewhh,

抱歉延迟,但我们已经升级这张票我们团队内部检查出来。工作正在进行中,并试图调查问题的根源。

我们将回到你一旦有进一步反馈。

谢谢,PM_Dialog

接受答案!

5个月前

PM_Dialog

嗨andrewhh,

在这个问题上我们有更新…我们试图调查这真的,不能表明这个问题的根本原因,但有一个变通方法:

如果地址集合函数——ble_gap_address_set BLE前()——应用程序注册——ble_registerapp()——然后BMS服务仍暴露。

ble_peripheral_start ();/ *设置BLE地址使用LE“私人可解析”隐私v1.2 * / own_address_t own_address1 = {.addr_type = PRIVATE_CNTL .addr = {0}};ble_error_t状态;状态= ble_gap_address_set (&own_address1, 150);如果状态! = BLE_STATUS_OK {printf (" % s:失败了。= % d \ r \ n”状态,__func__,状态);}/ *注册任务保佑框架接收保佑事件通知* / ble_register_app ();

而保税看起来BD地址并没有改变在移动应用,但如果你看看广告与另一个电话您可以看到BD地址变化在预定义的时间间隔和“保税”电话没有re-bonding仍然可以连接。

请测试方法,让我们知道。

谢谢,PM_Dialog

5个月前

andrewhh 150点

我已经测试了债券管理服务演示在桌面,iOS和Android。

  • iPhone XS, iOS 14.4.2 nRF连接:iOS仍然保税
  • macOS nRF连接v3.6.1:债券,但不保持保税。
  • 星系S5 Android 6.0.1中nRF连接4.22.3:Android仍然保税,保税时相同的MAC地址

我认为这是成功的。我现在将试图添加焊接设备的固件。我要试着把债券管理服务和按钮,因为我有一个自定义服务,我已经可以使用删除键信息。

4个月前

PM_Dialog

嗨andrewhh,

谢谢你的回复。你能请让我们知道如果你需要进一步的支持在这个论坛上票吗?

谢谢,PM_Dialog

4个月前

andrewhh 150点

是的,我需要进一步的支持。保佑我的MAC地址设备改变每15 - 30秒。但这就是函数表示:

* \参数[在]地址指针地址设置* \参数[在]renew_dur随机地址更新时间在10 ms的六个步骤-最低是150年代通过堆栈* * \返回结果代码* / ble_error_t ble_gap_address_set (const own_address_t *地址,uint16_t renew_dur);

我试着设置“renew_dur”= 150。我的地址更改每隔15 - 30

“renew_dur”= 15000产生相同的结果

我认为最低是150年代,而不是15 - 30。

我想要的地址改变每15分钟。我估计15分钟= (10 ms) * 90000。但90000年并不适合在一个无符号的价值16位整数。

它看起来像一个文档的错误和错误代码。这是正确的吗?可以给我地址如何改变每15米?与一个地址变化每15秒,扫描和连接到DA14683很容易发生故障,因为当我看到DA14683,我只有几秒钟之前点击“连接”按钮更改地址。

4个月前

PM_Dialog

嗨andrewhh,

谢谢你的跟进问题。让我看看这内部和我将送还给你。

问候,PM_Dialog

4个月前

PM_Dialog

嗨andrewhh,

我用下面的代码片段在ble_adv和百时美施贵宝SDK的例子。

状态= ble_gap_address_set (&own_address1, 15000);/ / 150秒* 1000/10 = 15000

然而,我不能复制这种行为:BD地址改变每150秒- 150秒* 1000/10 = 15000。

你能测试一遍?bd地址并没有改变每15秒当“renew_dur”= 15000

至于renew_dur,马克斯值应该被传递的值作为输入0 xffff进行and计算在12月(65.535),所以马克斯更新时间约10分钟。所以,这是不可能改变BD地址每15分钟。

谢谢,PM_Dialog

4个月前

andrewhh 150点

我测试了一遍eval董事会,你是正确的。BLE地址更改每150秒。

在我自己的程序中,地址变化更频繁,因为我相信我比150年代更频繁启动和停止广告。

4个月前

PM_Dialog

嗨andrewhh,

谢谢你的测试。如果广告不停止/启动频繁,BD地址应该改变这个配置:每150秒

状态= ble_gap_address_set (&own_address1, 15000);

你能请让我们知道如果你需要进一步的支持在这张票吗?

谢谢,PM_Dialog