在ble_app_security项目定义USER_CFG_PRIV_GEN_RSLV_RND,保证金后无法连接。

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们将在未来几天修复错误/优化搜索和标记。
28个职位/ 0个新职位
最后发表
丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
在ble_app_security项目定义USER_CFG_PRIV_GEN_RSLV_RND,保证金后无法连接。

你好,先生,

我们希望我们的设备有随机地址,发现ble_app_security引入了这个函数。

但我发现:

如果我定义USER_CFG_PRIV_GEN_STATIC_RND,地址只保留在这个生命周期,甚至我绑定的设备,之后设备关闭,地址变更。
如果我定义USER_CFG_PRIV_GEN_RSLV_RND,在绑定设备后,地址被保留,但我不能连接到它。

为什么会发生?有什么问题吗?

丹尼尔

设备:
PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

如果我从您在线程中提到的理解正确的话,那么当您定义USER_CFG_PRIV_GEN_STATIC_RND时,您可以连接您的设备,然后BD就会更改。您的问题是当您拒绝USER_CFG_PRIV_GEN_RSLV_RND时,对吗?这个定义是生成可解析的私有随机BD地址。可解析私有地址(Resolvable Private Address, RPA)是与IRK和prand一起生成的,是随机生成的。请阅读BLE规范以获得关于RPA的更多信息。请注意,如果定义了USER_CFG_PRIV_GEN_RSLV_RND,则应该不定义USER_CFG_PRIV_GEN_STATIC_RND。我试图复制您的问题,并且定义了USER_CFG_PRIV_GEN_STATIC_RND,但是我能够将DA14580 Pro-DK与移动BLE应用程序连接起来。当设备与移动应用断开连接时,我刷新应用中的BLE设备列表,我可以用不同的BD地址重新连接。请问您是否使用了SKD的ble_app_security,或者您做了任何配置?另外,请问您是否需要配置带RPA的旅游设备? Please, try to refresh the list of the BLE devices from the application and make sure that the BD is changed.

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
我只是希望我的设备有

我只是希望我的设备有随机地址,绑定后地址可以保留。

我试过2的方法来产生ble_app_security项目随机地址。

一个是定义USER_CFG_PRIV_GEN_STATIC_RND和取消定义USER_CFG_PRIV_GEN_RSLV_RND,
它可以生成随机地址并保留该地址,但在设备重启后,地址发生了变化。
即使我绑定的设备,设备重启也更改地址。
所以我认为这种方法不是我想要的。

另一个是define USER_CFG_PRIV_GEN_RSLV_RND和undefine USER_CFG_PRIV_GEN_STATIC_RND。
它可以生成随机地址,地址的变化在150秒内定义在user_config。
我绑定设备后,地址停止改变,重启不改变地址。
但我把它连接起来后,它就不能连接了。
还有什么需要配置的吗?

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

很抱歉,但我感到有点困惑着你试图完成什么?你想拥有随机BD地址,但该地址不会在重新启动之后是否会改变?如果定义了USER_CFG_PRIV_GEN_STATIC_RND,然后在user_config.h头文件中user_adv_conf结构的addr_src项目将被配置为GAPM_GEN_STATIC_RND_ADDR。所以,如果你检查app_easy_gap_undirected_advertise_start_create_msg()函数,该generate_static_random_address()将被触发每次启动广告和BD地址将被改变的时间。你能pleas3e澄清你想实现的东西,如果你希望你的设备有专用静态随机BD地址或可解析BD地址?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

是的,我想有随机的蓝牙地址,但该地址并不会在重新启动后进行更改。

静态随机BD地址和可解析BD地址都可以。

但我想在立柱4,
重启甚至我债券之后静态随机BD地址将发生变化,
可解析的BD地址在150s后会改变,bond后不会改变。

所以我觉得解析BD地址达到我的要求,但为什么不能结合后进行连接?

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

正如我在之前的文章中提到的,随机的BD地址将在重启后改变。对于您的实现,一个可能的解决方案是将随机的BD地址存储到SPI Flash或OTP中,因此在重新启动或断电后,您应该从那里读取它。如果你想只在重启后而不是断电后保留它,你可以将它存储在保留RAM中。另外,要注意BD地址遵循标准格式,它是根据BLE规范的。有关其格式的更多信息,请阅读BLE规范。关于可解析的BD地址,您的意思是连接后,您断开了与对端设备的连接,无法再次连接?我这边测试过了,我可以连接到可解析的BD地址配置。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

好的,我会尝试将随机的BD地址存储到SPI Flash中。

关于可解析的BD地址,我的意思是绑定后,我连接然后断开对端设备,我无法再次连接。

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

请尝试刷新从应用程序面板可用的BLE装置的列表。如果您发现其中任何上述答案有用请标志之一所接受。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

关于可解析的BD地址,我还是不知道。

粘合后,连接,然后断开。设备可以发现,但无法连接。
连接之后,债券,然后断开。设备可以发现,但无法连接了。

就好像它只能连接一次。

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

您无法重新连接的最可能的原因是,您正在使用的BLE应用程序可能已经兑现了您的绑定设备。请您尝试从BLE应用程序中刷新可用设备列表,并确保该设备没有缓存,刷新后BD地址发生了更改。我试着从我的侧面和我能够重新连接后的连接程序。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

我使用“nrf connect”,但仍然不能连接。

Android上还有其他BLE应用推荐吗?

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

建议您对移动应用BLE针对Android将是“BLE扫描仪”.我从我的侧面测试,我能够重新连接。如果您使用SDK(版本5.0.4)的默认ble_app_security示例,并且如果您在user_config.h头文件中定义了USER_CFG_PRIV_GEN_RSLV_RND宏,您应该能够重新连接,因为BD地址被更改了。另外,我建议您从应用程序的“Near By”面板中刷新可用的BLE设备,并确保更改了BD地址。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

使用BLE扫描仪,bond后我找不到我的设备。

是的,我只修改了#undef USER_CFG_PRIV_GEN_RSLV_RND为#define USER_CFG_PRIV_GEN_RSLV_RND。

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

我使用Pro-Dk和SDK5.0.4进行了测试,但我无法复制你的问题。你在哪个SKD工作?你有没有刷新"附近"面板?我强烈建议您运行固件进入调试模式,以检查代码是否卡在Watchdog或Hardfault处理程序。此外,尝试使用SmartSnippets工具箱,以确保您的设备在断开连接后仍在广告。请您澄清一下,您使用的是DA14580定制板还是我们的任何开发板?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

我使用了一个定制板与1M winbond闪光。

是的,我使用调试模式,但Keil没有显示任何错误。

如果我使用自定义板,我可以使用SmartSnippets工具箱,以确保我的设备仍然广告后bond?

所有的问题都在债券之后。我使用Android系统默认功能,输入'123456'绑定我的设备,会出现任何错误吗?

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

请确保您使用的SPI Flash是由位于DA1458x_SDK\5.0.4\utilities\flash_programmer文件夹路径的Flash程序员支持的。否则,您应该将这个SPI Flash由您自己添加到Flash程序员。你能让我知道你是否想用SmartSnippets工具箱刻录SPI Flash吗?我建议你看看faq,在开发工具包和参考设计部分,有一个问题“如何使用开发工具包(基本或专业)编写自定义板”。

https://support.dialog-semiconductor.com/guide/faq-dev-kits-ref-designs

此外,您还可以检查SDK的ble_app_security示例中的user_app_disconnect()回调函数。这个回调将在断开连接时触发,因此您将看到断开连接后的设备通过执行user_app_adv_start()函数重新启动广告。您是否可以添加一个断点到user_app_adv_start()放置在user_app_disconnect和运行您的代码在开发模式?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨,PM_Dialog,

嗨,PM_Dialog,

是的,我用我的w25x10cl设备上。附件是存储在SPI闪存粘结分贝。

而我看到的代码进入了user_app_adv_start(),所以我重新启动我的手机蓝牙功能,那么该设备可以fonud。

但仍不能连接到它。

难道这可能是我断开后,虽然我是债券,这意味着地址保存到SPI闪存,地址仍是后断开变化?然后,因为地址错误的,它不能连接。

附件:
PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

拜托你没有SPI闪存运行它,并让我知道结果?我试图复制您的问题,但仍我能够与矿要么不重新SPI闪存。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

我将user_config中的代码更改为#undef USER_CFG_APP_BOND_DB_USE_SPI_FLASH。

该装置的作用是相同的。接合后,它不能连接。我删除键后,就可以连接。

丹尼尔

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

由于BD地址已更改,您应该能够重新连接。可能,绑定的BD地址是从你的智能手机缓存的,这就是为什么你可以重新连接,如果你删除绑定设备。另外,您的问题的一个可能原因是您的智能手机不支持可解析的BD地址。你能不能用另一款手机(有和没有SPI flash)检查一下?如果您发现其中任何上述答案有用请标志之一所接受。

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

是的,我与其他手机试图在我发现这个问题,但他们的所有行为一样。

我尝试了另一种方法:

我设置了2个断点,一个在user_app_connection中,叫它A,另一个在user_app_disconnect中,叫它B,然后我开始我的操作。

首先用我的手机绑定芯片,A触发,然后我输入123456,按OK,现在就可以绑定了。然后我关掉手机的蓝牙功能,B会触发。
然后我打开BLE扫描仪尝试连接到它,可以将芯片fonud在不久显示了标签。我按下连接按钮,
一个没有触发。

所以也许这就是我无法连接到它的原因?为什么它会发生吗?

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

也许,这是从智能手机侧面的一个问题,因为我仍然是无法复制你的问题。可以请你分享的配置/定义您在SDK的默认ble_app_sleepmode例如,以再次尝试复制你用相同的配置,发出您正在使用由?只有具有解析BD地址你是不是能够重新连接?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

是的,只有可解析的BD地址,我无法连接后绑定和断开。也许我应该用苹果手机试试?

附件是我使用的项目。请尝一尝。

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

我测试你的项目,在临-DK和一个带SPI闪存的工作,但我仍无法复制您的问题。能否请您删除断后“历史记录”面板中的设备,然后尝试重新连接?能否请您测试您的项目到临DK?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

在删除了历史之后,我还是无法连接它。

我没有亲dk.....

我想我只能把随机静态地址保存到SPI flash来实现我的目标。

谢谢你!

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

是的请尝试存储静态随机BD地址SPI闪存。你想要什么功能样实现?

谢谢,PM_DIALOG.

丹尼尔59.
离线
最后见到:1年9个月前
加入:2016-01-08 04:34
嗨pm_dialog,

嗨pm_dialog,

我只是希望我们的设备有随机地址。

在知道存储静态随机BD地址到SPI flash可以实现我的目标后,我想弄清楚为什么可解析一个不能。

感谢您对我的问题的意见。

PM_DIALOG.
离线
最后见到:1天3小时前
工作人员
加入:2018-02-08 11:03
嗨daniel59,

嗨daniel59,

在您的情况下,我建议您使用USER_CFG_PRIV_GEN_STATIC_RND定义并将BD地址存储到SPI Flash中。我不需要使用可分解的BD地址,

谢谢,PM_DIALOG.