This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2541:来自白名单的连接

Guru**** 664280 points
Other Parts Discussed in Thread: CC2541
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1060588/cc2541-connection-from-whitelist

器件型号:CC2541

您好!  

在我的系统(外设)中、我希望仅允许在前5分钟内绑定的设备连接、并禁止新设备连接。

在5分钟内计时器 I 所有这些:

uint8 adv_filter= GAP_FILTER_POLICY_WHITE_CON;
GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &adv_filter);
uint8 WhiteList= TRUE;
GAPBondMgr_SetParameter( GAPBOND_AUTO_SYNC_WL, sizeof( uint8 ), &WhiteList );

但现在发生的情况是、即使是绑定的器件也不允许在5分钟后进行连接。 我以为 GAPBondMgr_SetParameter( GAPBOND_AUTO_SYNC_WL)、sizeof ( uint8 )、白名单);会将绑定条目(其公共地址)添加到白名单。 但这在我的代码中无效。 这是将绑定的设备地址添加到白名单的正确方法吗?

最棒的

瓦伦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    我对延误的答复表示歉意。 我很快会跟进一些意见。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    您能否提供一些背景信息来显示您在何处调用上述代码? 我看到一些相关帖子(链接如下)、请告诉我这些帖子中的任何一个是否解决了该问题:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ammar:

    感谢您的回复。

    我刚才尝试了您使用 白名单[CC2541]-蓝牙论坛- BluetoothRegistered︎- TI E2E 支持论坛提供的器件选择性绑定链接

    case GAPROLE_CONNECTED:
    
    uint8 adv_filter = GAP_FILTER_POLICY_WHITE;
    uint8 remoteBdAddr[B_ADDR_LEN] = {0};
    
    GAPRole_GetParameter(GAPROLE_CONN_BD_ADDR, remoteBdAddr);
    
    // set the white list for advertise and scan
    GAPRole_SetParameter( GAPROLE_ADV_FILTER_POLICY, sizeof( uint8 ), &adv_filter );
    
    HCI_LE_ClearWhiteListCmd();
    HCI_LE_AddWhiteListCmd( HCI_PUBLIC_DEVICE_ADDRESS, remoteBdAddr );

    即使在首次连接到电话后、CC2541 也会向 第二台电话广播(GAP_FILTER_POICE_WHITE)/连接(当我使用 GAP_FILTER_POICE_WHITE 进行配置时)。 是否有方法可以确认白名单上的选择是否成功?

    为了确保这一点、我删除 了 CC2541的所有绑定、并尝试再次连接两部电话。 结果相同。 我是否遗漏了什么?  

    谢谢!

    最棒的

    沃恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    您可以使用  HCI_LE_ReadWhiteListSizeCmd ()命令验证是否已将器件添加到接受列表中。 将设备添加到接受列表时,是否可以确认大小增量?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ammar:

    大小保持为零。 即使在连接后也不会增加。 您能否 在工作台上检查这是否正常工作?

    最棒的

    瓦伦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    您能否说明您使用的是哪个 SDK 版本?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ammar:

    BLE-CC254x-1.5.2.0

    最棒的

    瓦伦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复、我将尝试进行此操作并进行跟进。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    我这边的一个快速更新:我正在等待一些硬件来尝试在我的末尾重现这一点、我现在已经收到了这一点。 我应能在下周初答复我的意见。 同时,我发现下列关于白名单使用和较新手机的文章: https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/321648/cc2540-is-discoverable-but-not-connectable-after-setting-adv-filter-policy-to-white/1428335#1428335 。 因此、您是否认为您可以仅使用 TI 器件作为中央器件测试您的示例、但未启用 RPA?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ammar、

    如果您有机会进行测试、只需检查一下即可。 在上面的链接中、它是一个有点旧的帖子。 并讨论了与 Android 5.0和 BT 4.0不兼容的问题。 但现在 BT 版本已升级,对吧? 因此、我宁愿使用白名单方法、而不是在应用中处理。  

    请分享您的想法。

    最棒的

    瓦伦

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Varun、

    我不确定是这样。 通过查看我们有关蓝牙认证的应用手册、可以看出我们 符合蓝牙5.0标准、但我们仅支持蓝牙4.0功能。 请查看如何 认证您的蓝牙产品应用手册中的表2.2.1 、以了解更多信息。

    您可能必须在使用 RPA 的器件的应用程序中处理此问题。 我对此进行了测试并发现类似的行为(链接的帖子对此进行了解释)。 当我使用我们的器件(另一个 CC2541作为中心器件)时、我看到了上面有关白名单的命令的预期行为。

    注:我已确认您原始帖子中的代码应该是您所需的所有代码(对于使用公共地址的设备)。 如果您遵循此代码、您将看到对 gapbondmgr.c 文件内 HCI_LE_AddWhiteListCmd ()的调用。 绑定完成后、白名单将自动更新。 因此、我建议您在早期执行的直接呼叫已经由 gapbondmgr 处理。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ammar:

    新年快乐! 我希望今年能为你、你的家人和朋友带来所有的幸福和繁荣。

    非常感谢您对其进行测试。

    总之、当使用具有蓝牙5、0白名单功能的中央设备时、CC2541无法使用该功能。 我们需要在应用中处理该问题、对吧?  

    现在、它没有使用我的代码是有道理的。 非常感谢您的澄清、  

    最棒的

    瓦伦