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.

[参考译文] CC2340R5:配对连接期间出现奇怪的链路 db 状态标志值。

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1437623/cc2340r5-strange-link-db-state-flags-value-during-pairing-connect

器件型号:CC2340R5
主题中讨论的其他器件:SysConfig

工具与软件:

我们在外设端使用蓝牙配对使用密钥进入算法时遇到了问题。 该工程是 simplelink_lowpower_f3_sdk_8_10_01_02中的示例基本 BLE。

我们在代码中设置债券管理器如下所示。 简而言之,我们禁用了绑定,并抱怨我们的 IO 功能是仅显示。

   uint8_t 配对模式= GAPBOND_PAIRING_MODE_INITIALIZE;

   uint8_t scMode = GAPBOND_SECURE_CONNECTION_ONLY;

   uint8_t MITM = true;

   uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY;

   uint8_t 绑定= false;

 

   GAPB454.R Mgr_Set assieter (GAPBOND_Bonding_enabled、sizeof (uint8_t)、&bonding);

   GAPB454.R Mgr_Set 451eter (GAPBOND_IO_CAPABILITY、sizeof (uint8_t)、&ioCap);

   GAPB452.PAMR Mgr_Set (GAPBOND_PAIRING_MODE、sizeof (uint8_t)、&pairMode);

   GAPB454.R Mgr_Set 451eter (GAPBOND_MITM_PROTECTION、sizeof (uint8_t)、&MITM);

  GAPB454.R Mgr_Set 451eter (GAPBOND_SECURE_CONNECTION、sizeof (uint8_t)、&scMode);

通过这些设置、我们可以在连接输出设备时看到中央侧(iPhone)弹出 PIN 输入窗口。 然后我们输入正确的 PIN、这是我们在外设侧设置的默认 PIN (123456)。  我观察到 Mgr_Process 在 BondMgr.c 中定义的 GAPB387APMSg()中收到的 GAP_ENTIATION_COMPLETE_EVENT 外设代码、我们从该代码读回监视窗口中的 stateFlags。

我们得到的 stateFlags 等于0x37、这会使我们感到困惑、因为0x37意味着 LINK_CONCED | LINK_ATCHED | LINK_BOUND | LINK_SECURE_CONNECTIONS | LINK_ENCRITTED。 但如上所述,我们禁用了与 GAPBARDICRACDIATEER Mgr_Set ()的绑定。  在 iPhone 方面、我们观察到下次手机再次尝试连接我们的设备时、仍会再次弹出 PIN 图。  因此,从我们的配置和 iPhone 的行为,我们认为在场景中没有 Bond ,但从 LINKDB stateFlags , Bond 标志在 ON。  哪一侧是正确的信息、为什么会发生这种不匹配?

我们禁用绑定的原因是,当我们没有这样做时,我们的 Pairing_pairStateHandler()可以看到 pMsgData->status 等于8而不是0。 当我们禁用绑定时,至少我们可以在同一 Pairing_pairStateHandler()中看到 pMsgData->state == 0(成功)。

请帮助我们解决这个问题。 提前感谢。

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

    您好!

    感谢您联系我们。 这似乎不在预料之中。 您能否确认 Android 设备上是否出现此行为? 我们最近发布了8.20 SDK、您是否还可以检查较新版本中是否存在该行为?  新 SDK 中包含许多修复和改进、因此此行为可能不再存在。

    此致、

    1月

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

    您好!

    我曾尝试使用8.20 SDK、与8.10 SDK 具有相同的行为。

    Android 设备的价值与 iPhone 相同。

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

    您好!

    感谢您进行测试。 要进行确认、您是通过 SysConfig 还是通过在代码中调用这些 API 来设置绑定配置? 如果是通过调用 API、那么您能否分享调用 API 的位置?

    此致、

    1月

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

    您好、Jan:

    我将 app_pairing.c 中的这些 API 称为 bellow pic

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

    您好!

    我懂了。 感谢您的确认。 您能否尝试注释掉这些行、而不是通过 SysConfig 设置该配置?

    此致、

    1月

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

    您好、Jan:

    我已经尝试通过 SysConfig 对这些行进行注释和设置、但我在  GAP3873 Mgr_Set 里仍然得到相同的值0x37。  

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

    您好!

    感谢您进行测试。 我对禁用绑定时报告0x37值的原因有点困惑。 收到验证事件后、您是否可以尝试 使用连接句柄调用 linkDB_Bonded()? 这将确认 gapbondmgr 是否将连接标记为绑定。

    此致、

    1月

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

    您好、Jan:

    绑定设置为 false 时。

    我调用 Connection_Conn handler BLEAPPUTIL_LINK_ESTABED_EVENT 中的 linkDB_Bonded()、得到结果0。

    并 在  Pairing_pairStateHandler BLEAPPUTIL_PAIRING_STATE_COMPLETE 处调用 linkDB_Bonded()得到了结果1。

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

    您好!

    明白了。 我能够重现您看到的行为。 我会向我们的研发团队报告、尽快解决这个问题。 同时、我将尝试通过存储完成 bond_save 事件的连接来跟踪实际绑定器件。 如果您的设备永远不允许绑定、那么您应该能够忽略绑定标志。

    此致、

    1月