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.

[参考译文] CC2745P10-Q1:如何实现自定义 BLE 绑定流程

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1530597/cc2745p10-q1-how-to-implement-a-custom-ble-bonding-process

器件型号:CC2745P10-Q1
主题:SysConfig 中讨论的其他器件

工具/软件:

尊敬的 TI:

我目前正在使用 Android 手机系统的蓝牙与 TI CC2745 芯片来开发 BLE 6 解决方案。 此解决方案包括实现一项功能、在首次连接期间、系统会提示用户确认是否允许该器件下次自动连接到 TI CC2745。 这涉及 BLE 设备配对、绑定和白名单操作。

具体来说:当手机首次将蓝牙连接到 TI CC2745 时、在收到连接通知后、TI CC2745 会通过 CAN 发送一条消息、提示用户确认是否允许与该设备绑定并将其添加到白名单。
如果 TI CC2745 收到用户的确认、则会绑定设备并将其添加到白名单。 下次、手机的蓝牙就会自动连接到 TI CC2745。
如果用户的响应为负、则不允许设备绑定和白名单。

此外、如果绑定的设备数量超过允许的最大限制、则需要先删除现有绑定的设备并将其从白名单中删除、然后才能添加新设备。

我引用了以下链接 CC2745P10-Q1:将自定义功能添加到绑定过程 — 蓝牙论坛- BluetoothRegistered︎ — TI E2E 支持论坛、但方法似乎不正确:从手机启动第一次连接时、手机上会弹出一个弹出窗口、要求用户输入 PIN。 在 TI CC2745 的一侧(在 syscfg 中取消选中绑定标志)、我们获得 BLEAPPUTIL_LINK_INSTABLE_EVENT 并通知用户等待确认。 ​​但是、在用户确认时、配对过程似乎已完成(手机已绑定​​并已连接)。 随后尝试呼叫 GAPBonds Mgr_Pair 会导致设备​​未​​绑定(电话下次无法自动重新连接)。

请告知 TI CC2745 需要采取哪些措施来实现所需的功能。

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

    您好:

    SysConfig 中设置的配对模式是什么?

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    在 SysConfig 中将配对模式设置为“等待配对请求“  

    我还将配对模式设置为“发起配对请求“并进行测试、它在调用 GAPBonds Mgr_Pair 后仍然看到无法绑定设备 

    注意:使用的 SKD 版本为“simplelink_lowpower_f3_SDK_9_11_00_18"</s>“

    谢谢你

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

    您好:

    为了进行澄清、配对模式已设置为“等待配对请求“、但 TI 器件仍会发出配对请求?

    一些其他问题:

    TI 器件是核心角色还是外设角色?

    您能否提供一个 Ellisys 关于空中发生的情况的日志?

    您在哪里致电  GAPBonds Mgr_Pair

    在配对/绑定之前、您是否已读取任何经过身份验证/加密的特征?

    您正在使用哪种电话?

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    感谢您的及时回复。

    1. TI 器件角色为“外设+中央器件“

    2.抱歉,我没有 Ellisys 设备,但 WCH BLE 分析仪, WCH 日志对您来说合适吗?

    WCH 日志查看器:  HTTPS:// wch.cn/downloads/WCH_BLEAnalyzer_zip.html

    3.  在收到用户的正确认 CAN 消息时、我调用 GAPBonds Mgr_Pair 在 BLEAPPUTIL_LINK_INSTABLE_EVENT 事件之后。

      

    4、不能,但当手机启动连接时,移动设备上会出现一个弹出窗口,要求输入 PIN 码。 即使用户没有输入 PIN 码、2745 也会收到已建立的事件。

    5.我用 Android 手机测试(例如. OnePlus Ace 2V-android15、Xiao Mi Mix 4-android12)

    注意:

    我的目标流程如下:

    1、启动第一个连接;

    2. 2745 收到连接事件并通过 CAN 将信息发送给用户;

    3、用户确认并回复信息,将其发回 2745;

    4.如果用户回复确认,则 2745 站点将执行设备绑定,并将其添加到白名单中。 输入正确的 PIN 码后,绑定成功;

    5、如果用户拒绝回复,则 2745 站点将不执行设备绑定和白名单操作,手机将无法绑定;

    6.如果绑定成功,重启手机的蓝牙可以自动连接到 2745 BLE。 如果绑定不成功、则无法自动连接。

    谢谢你

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

    您好:

    感谢您对流程的全面解释和概述。 我相信我现在明白了这个问题。 我明天将查看日志。

    一些评论:

    [引述 userid=“658984" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1530597/cc2745p10-q1-how-to-implement-a-custom-ble-bonding-process/5890619 #5890619“]

    2. 2745 收到连接事件并通过 CAN 将信息发送给用户;

    3.用户确认并回复信息,将其发送回 2745

    [/报价]

    只是想在这里澄清一下、手机是发送配对请求的设备吗? 我想确保 CC27xx 不发送请求、因为在这种情况下不应该发送请求。  

    我将复制您的流程、看看我是否在我的身边看到了问题、并由 EOD 星期三提供更新。 具体而言、我将执行以下操作:

    1.将手机连接到 CC27xx(以外围设备角色)

    2.设备连接后,我会让手机启动配对/绑定。

    3.让 CC27xx 确认/拒绝请求。

    4.如果确认,请绑定设备并将手机添加到白名单

    5.否则,绑定失败。

    这听起来对您来说是正确的吗?

    5. 如果用户回复“拒绝“、则 2745 站点将不会执行设备绑定和白名单操作、并且移动电话将无法绑定

    我想指出的是、虽然设备已配对并绑定、但它们不会自动连接。 这需要单独实现。

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    感谢您的支持。

       NIMA 说:

       我将复制您的流程、看看我是否在我的身边看到了问题、并由 EOD 星期三提供更新。 具体而言、我将执行以下操作:

      1.将手机连接到 CC27xx(以外围设备角色)

      2.设备连接后,我会让手机启动配对/绑定。

      3.让 CC27xx 确认/拒绝请求。

      4.如果确认,请绑定设备并将手机添加到白名单

      5.否则,绑定失败。

      这听起来对您来说是正确的吗?

    答:是的,对我来说是对的。

      NIMA 说:

      我想指出的是、虽然设备已配对并绑定、但它们不会自动连接。 这需要单独实现。

    答:是的,我已经验证了这个功能。 该过程是在端口 2745 添加 HID 服务、绑定后它可以自动连接。

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

    嗨、Nima、

    为您提供的其他信息:

    在我的当前环境中(在 syscfg 中取消选中绑定标志)正如我在上面提到的 、当手机启动连接时、移动设备上会出现一个弹出窗口、要求输入 PIN 码:

    1. 如果立即输入 PIN 码、 则让 CC27xx 确认请求并调用“GAPBonds Mgr_Pair “、它将无法绑定器件

    2 如果 让 CC27xx 确认请求并在配对超时之前先调用“GAPBond",“,则、则在电话端输入 Mgr_Pair 代码、2475 可以成功绑定设备(配对状态:已保存绑定)  

    此外、绑定成功完成并保存后、我尝试调用 以下 API 来删除绑定记录、但失败并返回 0x34。 您能否告诉我哪些接口可用于删除绑定记录和白名单记录?

    非常感谢您的配合。

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

    您好:

    很抱歉耽误您的时间。 我没有忘记这个问题、我正在重现这个问题。  

    不过、在尝试实施该过程以及提供的信息过程中、我还有一些问题:

    1.  外设 (cc27xx)  是发起配对。 因此、连接电话后、您正在请求配对 方程 ?  

    2.用户应确认/拒绝外围设备(即 CC27xx )上的配对正确吗? 不应该发生这种情况  解决方案  是否已发送配对请求?  

    根据我的理解、您上面概述的内容如下:

      1.连接电话(中央)和 CC27xx(外设)。

      2.  器件连接后、CC27xx 会立即请求配对。 (这会导致电话上弹出窗口,要求在连接时输入 PIN)。

      3.然后提示用户是否要在 CC27xx 上进行配对(确认/拒绝)。

      4.如果他们确认,他们需要在电话上输入 PIN 码。

    但是、为什么不在初始连接时提示用户是否要配对  发出配对请求之前、会发生什么情况?

    例如:

      1.连接电话(中央)和 CC27xx(外设)。

      2. CC27xx 会提示用户是否需要进行配对/绑定。

      3、如果是、CC27xx 会向手机发送配对请求。

      4、从 CC27xx 到手机的用户输入针脚。

      5.否则,采取一些操作(即终止连接,继续而不绑定,仅配对... 等)

    以上内容将删除与必须在 SMP 超时期间内确认/拒绝用户相关的任何时间。

    [引述 userid=“658984" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1530597/cc2745p10-q1-how-to-implement-a-custom-ble-bonding-process/5890619 #5890619“]

    3.  在收到用户的正确认 CAN 消息时、我调用 GAPBonds Mgr_Pair 在 BLEAPPUTIL_LINK_INSTABLE_EVENT 事件之后。

      

    [/报价]

    此外、我还想查看 BLEAPPUTIL_LINK_RESIDEND_EVENT 中的代码、因为我通过该日志中看到了以下内容:

    是在用户确认消息之前和建立链路之后已开始配对。 这似乎与您期望的顺序不匹配。

    [引述 userid=“658984" url="“ url="~“~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1530597/cc2745p10-q1-how-to-implement-a-custom-ble-bonding-process/5890619 #5890619“]

    1、启动第一个连接;

    2. 2745 收到连接事件并通过 CAN 将信息发送给用户;

    3、用户确认并回复信息,将其发回 2745;

    4.如果用户回复确认,则 2745 站点将执行设备绑定,并将其添加到白名单中。 输入正确的 PIN 码后,绑定成功;

    [/报价]

    您是否    在 BLEAPPUTIL_LINK_INSTABLE_EVENT 中调用了 gapBonds Mgr_Req 和 gap Enable_Bonding?  

    此外、在成功完成并保存绑定后、我尝试调用 以下 API 来删除绑定记录、但失败并返回 0x34。 您能否告诉我哪些接口可用于删除装订和白名单记录?

    0x34 表示未找到绑定。 可能是地址类型不正确。

    此致、

    Nima Behmanesh

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

    嗨、Nima、

    感谢您的反馈。

       NIMA 说:

      1.  外设 (cc27xx)  是发起配对。 因此、连接电话后、您正在请求配对  方程 ?  

    否、当我使用手机连接到时  外设 (cc27xx) 、它将立即自行启动配对。 我只想在用户确认后请求配对。

      NIMA 说:

       2.用户应确认/拒绝外围设备(即 CC27xx )上的配对正确吗? 不应该发生这种情况  解决方案  是否已发送配对请求?  

    是的、正确。 在发送配对请求之前、用户在外围设备上确认/拒绝配对。   

    我使用了 SDK simplelink_lowpower_f3_SDK_9_11_00_18 中的 car_node 示例代码、如所示 在一起      在设备连接后、CC27xx 会立即请求配对、似乎您提到了“。 (这会导致电话上出现弹出窗口,要求在连接时输入 PIN)。“  是 car_node 示例中的原始过程。 需要更改它、以便符合预期的流程(如果用户想要配对,则提示用户  发出配对请求之前、先从外设发出配对请求  )。

      NIMA 说:

      是在用户确认消息之前和建立链路之后已开始配对。  这似乎与您期望的顺序不匹配

    是的、在用户确认消息之前和建立链路之后已开始配对。 请参阅[2] 登录页面。

     1.我调用 CAN API (processBleBondMsg) 以在 BLEAPPUTIL_LINK_INSTABLE_EVENT 中将消息发送给用户:

       

    2.致电  Gap Enable_Bonding 和  GapBonds Mgr_Req 对  在 CAN 任务中、一旦收到用户的确认消息

    我们知道、当前的问题是、 连接电话后、配对会立即开始。 您是否希望帮助检查并展示如何在 syscfg 中防止 连接手机后立即开始配对、以便我可以在用户确认后请求配对并按照您提到的流程操作:

      例如:

        1.连接电话(中央)和 CC27xx(外设)。

        2. CC27xx 会提示用户是否需要进行配对/绑定。

        3、如果是、CC27xx 会向手机发送配对请求。

        4、从 CC27xx 到手机的用户输入针脚。

        5.否则,采取一些操作(即终止连接,继续而不绑定,仅配对... 等)

    谢谢你  

    Yang

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

    您好:

    我认为我们应该将其转换为电话/转接电子邮件。 我已联系您的 TI 代表来设置通信。

    此致、

    Nima Behmanesh  

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

    你好、Nima、

    感谢您的支持。

    经过内部讨论、我们确认、我们可以首先考虑使用另一种方法、而不是修改复杂的配对控制过程。 也就是说、在器件绑定后、我们会要求用户确认(在 27xx 侧)。 如果用户拒绝、绑定记录将被删除、而不会添加到白名单中。 如果用户同意、将保留装订记录、 新添加白名单。

    谢谢你  

    Yang

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

    您好:

    这听起来是一个很好的解决方案。 这样、您就不会因为缺少用户输入而面临配对超时的风险。  

    如果您遇到任何问题、请告诉我。

    此致、

    Nima Behmanesh

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

    你好、Nima、

    感谢您发送编修

    如果我遇到任何问题、我将 在此处更新并  再次要求您提供帮助。

    谢谢你

    Yang