在ble_app_security项目中定义USER_CFG_PRIV_GEN_RSLV_RND, bond后不能连接。

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support..我们会在接下来的几天修复bug /优化搜索和标记。
28篇帖子/ 0新
最后一篇
daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
在ble_app_security项目中定义USER_CFG_PRIV_GEN_RSLV_RND, bond后不能连接。

你好先生,

我们希望我们的设备具有随机地址,发现ble_app_security介绍此功能。

但我发现:

如果我定义USER_CFG_PRIV_GEN_STATIC_RND,地址只在这个生命周期中保持,即使我绑定设备,在设备关闭后,地址改变。
如果我定义user_cfg_priv_gen_rslv_rnd,则绑定设备后,保留地址,但无法连接到它。

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

丹尼尔

设备:
PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

如果我从线程中提到的内容正确地理解,当您定义了user_cfg_priv_gen_static_rnd时,可以连接设备,BD更改。你的问题是当你拒绝user_cfg_priv_gen_rslv_rnd时,这是正确的吗?此定义是生成已解析的私有随机BD地址。已解析的私有地址(RPA)是用IRK和PRAND生成的,即随机生成。请阅读BLE规范,以获取有关RPA的更多信息。请注意,如果定义user_cfg_priv_gen_rslv_rnd,则应离开user_cfg_priv_gen_static_rnd未定义。我试图复制您的问题,我定义了user_cfg_priv_gen_static_rnd,但我能够用移动ble应用程序连接da14580 pro-dk。当设备与移动应用程序断开连接时,我从应用程序中刷新BLE设备的列表,我可以用不同的BD地址再次连接。如果您正在使用SKD的BLE_APP_SECURY,请您澄清一下SKD的BLE_APP_SECURY吗?此外,如果您想使用RPA配置旅游设备,请您告诉我吗? Please, try to refresh the list of the BLE devices from the application and make sure that the BD is changed.

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入: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,
它可以生成随机地址,并且在User_config中定义的150s中的地址更改。
绑定设备后,地址停止更改,重新启动也不会更改地址。
但是在我绑定之后,它无法连接。
我还需要什么需要配置吗?

PM_Dialog
离线
最后看到:3天1小时前
职员
加入: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地址将被更改。请您澄清您正在尝试实现什么,以及您是否希望您的设备具有私有静态随机BD地址或可解析BD地址?

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

是的,我想要随机的BD地址,但是这个地址在重启后不会改变。

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

但我试过四号支柱
静态随机BD地址将在重启后改变,即使我绑定它,
已解析的BD地址将在150秒后改变,并且在债券后不会改变。

所以我认为resolvable BD address符合我的要求,为什么bond后无法连接?

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

正如我在我之前的帖子中已提及的那样,重新启动后将更改随机BD地址。实现您的实现的可能解决方案是将随机的BD地址存储到SPI闪存或进入OTP中,因此在重启或关闭电源后,您应该从那里读取它。如果您想在重新启动之后才能保持它而不是关闭电源后,您可以将其存储为保留RAM。此外,请注意,标准格式的BD地址,它根据BLE规格。有关其格式的更多信息,请阅读BLE规格。关于所解析的BD地址,您的意思是在连接之后,您断开与对等设备的连接,您无法再次连接?我从我身边进行了测试,我能够连接可解变的BD地址配置。

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

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

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

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

请尝试从应用程序面板刷新可用BLE设备列表。如果你发现上面的任何一个答案有用,请标记其中一个为接受。

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

关于可解析的BD地址,我仍然不能搞清楚。

连接后,连接,然后断开。可以找到设备,但无法连接。
连接后,粘接,然后断开。可以找到设备,但无法连接。

行为只能连接一次。

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

您无法重新连接的最可能原因是您正在使用的BLE应用程序可能会兑现您的保税设备。请尝试从BLE应用程序刷新可用设备列表,并确保设备未缓存,并且在刷新后,BD地址已更改?我从我身边试过,我能够在绑定程序后重新连接。

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

我使用“nrf connect”,但仍然无法连接。

您是否建议您在Android上推荐任何其他BLE应用程序吗?

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

一个推荐的android移动BLE应用程序将是“祝福扫描仪”.我从我身边测试,我能够重新连接。如果使用SDK(版本5.0.4)的默认BLE_APP_SECURY示例,并且如果在USER_CONFIG.H标题文件中定义user_cfg_priv_gen_rslv_rnd宏,则应该能够重新连接,因为BD地址已更改。此外,我建议您刷新可用的BLE设备在应用程序的应用程序中形成“接近”,并确保更改了BD地址。

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

使用“BLE扫描仪”,我无法在粘合后找到我的设备。

是的,我只会将#undef user_cfg_priv_gen_rslv_rnd更改为#define user_cfg_priv_gen_rslv_rnd。

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

我使用Pro-DK和SDK5.0.4从我的身边测试,但我无法复制您的问题。你在努力的哪个SKD?您是否尝试刷新“接近”面板?我非常建议您将固件运行到调试模式中,以检查代码是否已卡在看门狗或硬盘处理程序中。此外,尝试使用SmartSnippets Toolbox,以确保在断开连接后仍然仍然是宣传的。如果您使用具有DA14580或我们的任何开发板的任何开发板,请澄清您是否可以澄清

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

我正在使用带1M的Winbond Flash的自定义板。

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

如果我正在使用自定义板,我可以使用SmartSnippets Toolbox,确保我的设备在债券后仍在广告?

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

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

请确保您正在使用的SPI闪存从SDK的DA1458x_sdk \ 5.0.4 \ Utilities \ flash_prickmer文件夹路径中的闪存程序员支持。否则,您应该将此SPI闪光灯添加到Flash程序员中。如果您想使用SmartSnippets Toolbox刻录SPI Flash,请您告诉我吗?我建议您看看常见问题解答,在开发套件和参考设计部分中,有一个问题“如何使用开发套件(基本或Pro)”编程自定义板。

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

此外,您可以检查SDK的BLE_APP_SECURY示例的USER_APP_DISCONNECT()回调函数。断开连接后将触发此回调,因此您将通过执行user_app_adv_start()函数,查看断开连接后的设备重新启动。您能否将断点添加到user_app_adisconnect中的user_app_add_start()中,并在开发模式下运行代码?

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨,PM_Dialog,

嗨,PM_Dialog,

是的,我在我的设备上使用w25x10cl。附件是存储在spi flash中的bond db。

我看到代码进入user_app_adv_start(),所以我重启手机上的蓝牙功能,然后设备就可以找到了。

但还是无法连接到它。

这可能是在我断开它之后,尽管我绑定它,这意味着地址被保存到SPI Flash中,地址仍然在断开后更改?然后因为错误的地址,它不能连接。

附件:
PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

你能在没有SPI Flash的情况下运行它并让我知道结果吗?我试图复制你的问题,但我仍然能够重新连接矿石没有SPI Flash。

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

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

设备的作用是相同的。粘接后不能连接。当我删除键合之后,它就可以连接了。

丹尼尔

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

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

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

是的,当我发现这个问题时,我试着用其他手机,但它们都是一样的。

我尝试了另一种方式:

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

第一个粘贴芯片带我的手机,触发,然后我输入123456,然后按OK,现在Thay键合。然后我关闭手机上的蓝牙功能,b触发。
然后我打开BLE扫描仪,试图连接到它,芯片可以fonud和显示在附近的标签。我按下连接键,
一个没有触发。

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

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

也许,这是智能手机的问题,因为我仍然无法复制你的问题。你能不能分享一下你在SDK的缺省ble_app_sleepmode示例中所做的配置/定义,以便再次尝试用你正在使用的相同配置复制你的问题?只有一个可解析的BD地址你不能重新连接?

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

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

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

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

我测试了你的项目,工作在Pro-DK和一个附加的SPI Flash,但仍然不能复制你的问题。请在断开连接后将设备从“历史记录”面板中删除,然后尝试重新连接。你能在Pro-DK上测试你的项目吗?

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

在删除历史记录后,我仍然无法在绑定后连接到它。

我没有pro-dk .....

我想我只能将随机的静态地址省给SPI Flash来实现我的目标。

谢谢你。

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

是的,请尝试存储静态随机BD地址到SPI flash。您希望实现什么样的功能?

谢谢,PM_Dialog

daniel59
离线
最后看到:1年8个月前
加入:2016-01-08 04:34
嗨PM_Dialog,

嗨PM_Dialog,

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

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

谢谢你对我的问题提出的意见。

PM_Dialog
离线
最后看到:3天1小时前
职员
加入:2018-02-08 11:03
嗨Daniel59,

嗨Daniel59,

在您案例中,我建议您使用user_cfg_priv_gen_static_rnd定义并将BD地址存储到SPI闪存中。我不必使用可解决的BD地址,

谢谢,PM_Dialog