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 6.0 CS DKC]*SDK 版本:9.11.00.18。 为什么只有在绑定成功后才能立即成功执行移交功能、而且在任何其他时间都无法成功运行?

Guru**** 2577335 points
Other Parts Discussed in Thread: LP-EM-CC2745R10-Q1, CC2745R10-Q1, SYSCONFIG, CC2340R5

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1554435/cc2745p10-q1-ble-6-0-cs-dkc-sdk-version-9-11-00-18-why-can-the-handover-function-only-be-successfully-executed-immediately-after-the-binding-is-successful-and-cannot-be-successfully-run-at-any-other-time

器件型号:CC2745P10-Q1
Thread 中讨论的其他器件:LP-EM-CC2745R10-Q1CC2745R10-Q1SysConfig、CC2340R5

工具/软件:

TI、您好:

我们将使用 SDK 9.11.0.18 版实现连接切换功能、其中两个 CC2745R10 器件用作服务节点和候选节点、并将移动电话用作对等节点。 服务节点数据通过 CAN 传输到候选节点。  

软件和硬件环境:SDK 9.11.0.18、2 * LP-EM-CC2745R10-Q1 板、1 * 电话

当我在绑定后立即启动移交功能时,它可以成功运行,但如果它在绑定后不能立即运行,则该功能无法成功运行。 候选节点将在连接后立即断开连接。  只有在绑定后才能立即运行移交功能、才能成功执行移交功能吗? 如果它在绑定后等待几秒钟、它将不会成功。

顺便说一下、SDK 的新版本何时发布?

谢谢

James

2025.08.18

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

    您好、James、  

    1.您是否在 CC2745R10-Q1 节点上使用多个天线?

    2.您能为每个 CC2745R10-Q1 节点提供 SysConfig 文件吗?

    3.通过 CAN 总线将数据从服务节点传输到候选节点需要多长时间?  

    4.您是否观察到服务节点和电话之间的连接在几秒钟后结束? 或者连接后连接是否稳定?  

    我将在末端进行一些测试、看看是否可以观察到这个问题。  

    谢谢、
    Isaac

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

    您好、James、  

    对延迟深表歉意。 我一直在使用您发送的配置进行测试。 您能否说明、连接是否稳定、连接直接连接到服务节点后或连接移交完成后?

    对于我的测试、我不使用 CAN、而是使用 SDK 中提供的 python 演示。 结果如下:  

    1、同样的结果也成功完成了连接交接。 我的 SysConfig 与您的 SysConfig 非常相似。 我查找的主要配置是 bondPairing 配置。   

    2.我能够连接,如果我保持 bondPairing 来启动配对,配对失败。 我收到的配对状态为 0x08、这表示配对失败、但原因未明确。  

    3.我能够连接到 CC2340R5 对等节点、保持连接、成功执行连接切换、然后保持连接。 我使用此设置没有问题。 我连续测试了 10 次、没有出现任何问题。  

    今天我没有时间检查 CC2340R5 扫描和 CC2745R10-Q1 服务/候选节点广播。 我将在下周查看。 此外、我计划下周再调试第二次测试。  

    您能否说明“立即“是多久? 这是在建立连接后大约 1 秒内吗? 当我测试第二个测试时、连接保持不变、直到发起配对并随后失败。  

    对延迟詹姆斯的道歉。 我将完成一些额外的故障排除、并在下周运行星期三 (08/22) 之前的最后一个测试设置。  

    谢谢、
    Isaac

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

    您好、Isaac:

    感谢您的答复。

    1.稳定连接是指对等节点和候选节点之间的连接、在移交完成后保持稳定。

    2.在最后一种情况下,您不需要对其进行测试。 我重新测试了它、如果您将候选节点设置为不启动配对、则移交将成功、并且在移交后连接将保持稳定。

    如以下日志所示、当报告 BLEAPPUTIL_HANDOFF_START_EVENT_CODE 事件时、连接状态会立即更改为“已终止“。

    [15:10:59.950] Handover_CAN_Data  is complete 
    [15:10:59.950] Handover_StartCN------------
    [15:10:59.960] Conn status: Established
    [15:10:59.960] RSSI:-127 
    [15:11:00.004] 
    [15:11:00.224] BLEAPPUTIL_HANDOVER_START_CANDIDATE_EVENT_CODE
    [15:11:00.229] Conn status: Terminated
    [15:11:00.229] BOOT UP!!!

    4.希望您能为我提供第三种 情况的 Python 代码、以便我可以进行测试。 我只能偶尔成功地完成交接。

    谢谢

    James

    2025.08.25

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

    您好、James、  

    我懂了。 我想澄清您暗示的连接。 我建议将配对配置更改为等待配对、而不是启动配对。 很高兴看到您发现了这一点。  

    如果您将候选节点的配对配置更改为等待配对、则第三项测试也应该起作用。 我的测试比您的测试更基本。 建立连接后切换电路板 LED、然后连接端接后。 我已经使用附加的 python 脚本进行测试。 我修改了连接切换脚本以进行扫描而不是广播。 请注意、当我运行测试时、连接将在连接切换完成后无限期地保持连接。 设置如下:  

    CC2745R10-Q1 服务节点:启动配对、扫描  

    CC2745R10-Q1 候选节点:等待配对

    CC2340R5 对等节点:等待配对、广播器

    添加节点还具有 2 条天线路径。  

    e2e.ti.com/.../ble_5F00_device_5F00_connection_5F00_handover_5F00_scanning_5F00_connector.py

    如果您能使第三个案例正常工作、请告诉我。 我将需要更多时间来启用针对第四个案例的测试。  

    谢谢、

    Isaac

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

    您好、Isaac:

    1.感谢您提供用于测试的 Python 代码。 我在 SDK 9.11.0.18 上测试了 Python 代码、移交功能正常工作。 我还在 SDK 9.12.0.19 上测试了 Python 代码、无论是使用手机还是将 CC2340R53 作为对等节点、切换功能都正常工作。

    2.将 Python 代码移植到 C 代码并使用 CAN 传输参数时,如果我用手机作为对等节点,切换功能就会成功运行。 但是、当使用 CC2340R53 作为对等节点时、切换功能很少成功、偶尔只能运行一次。

    3.我们需要在交车后启用信道探测功能,但目前在交车后无法进行配对,因此无法激活信道探测功能。 是否有任何方法可以实现这一目标?

    谢谢

    James

    2025.09.01.

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

    您好、James、  

    您是否已确认通过 CAN 发送的连接移交数据的有效性? 这是否与连接切换正常时通过 python 脚本发送的数据匹配? 您是否进一步调试了 C 代码?  

    您能否确定发送的连接移交数据是否有效? 嵌入式 C 实施在传输数据时或在连接移交过程中似乎有所遗漏。 此外、您在候选节点端收到什么状态用于配对? 如果您在进一步调试时发现任何问题、请告诉我。  

    谢谢、
    Isaac

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

    您好、Isaac:

    感谢您的及时回复。

    我目前正在 SDK 9.12.0.19 上进行测试。 我已经验证了传输数据的有效性、新 SDK 9.12.0.19 中的数据长度已从原始 268 字节更改为 300 字节。 此外、当使用手机作为对等节点时、我的代码中的切换功能可以正常工作。

    我重新调试了 TI 的 Python 代码、发现在使用 CC2340R53 作为对等节点时、实际上并未实现切换函数。 我还调试了候选节点、并观察到在移交过程中、候选节点连接到对等节点、但随后连接立即断开。 之后、对等节点立即重新连接到服务节点。 这让人产生了对等节点已成功完成移交的错觉、但实际上、它在整个时间内都保持与服务节点的连接。

    谢谢

    James

    2025.09.03.

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

    您好、James、  

    我在进行一些额外的调试时测试了几次。 我明白你在说什么。 有时、候选节点保持与 CC2340R53 对等节点的连接、有时服务节点无法连接、有时候选节点断开连接、服务节点保持连接。  

    我正在努力调试此问题、但需要更多时间。 在此期间有几个问题:  

    1.您为 CAN 传输所用的时间、最大失败连接事件和候选节点端的时间偏差设置了什么值?  

    2.当您对 CC2340R53 对等节点说“移交功能未实际实现“时、您的意思是什么? 我可以观察到 CC2340R53 对等节点在某些情况下连接完成后仍与候选节点保持连接。  

    同样、我明天将继续调试。 我希望能在 Next 星期一之前获得更多信息 (09/08)。 感谢您的耐心。  

    谢谢、

    Isaac

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

    您好、Isaac:

    1.以下是我在候选节点端设置的参数:

                cnParams_fii.timeDelta = 65000;
                cnParams_fii.timeDeltaErr = 0;
                cnParams_fii.maxFailedConnEvents = 10;
                cnParams_fii.txBurstRatio = 0;
                cnParams_fii.pHandoverData = Handover_CN_Data;

    2.我的意思是 Python 代码偶尔可以实现成功的切换,但大多数情况下,它会重新连接回服务节点。 此结果与我使用 C 代码进行的测试一致。 交接只是偶尔成功—之前,我一直认为 Python 代码将始终实现成功的交接。

    谢谢

    James

    2025.09.04.

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

    您好、James、  

    使用 CC2340R5 作为对等节点时、我仍在调试连接切换演示。  

    我对使用的参数有一些后续问题。 首先、您是否确认在服务节点和候选节点之间传输数据所花费的时间是 65000 us? SDK 中的开箱即用演示将 timeDelta 设置为 65000、因此我想知道您是否刚刚使用了该值。  

    其次、您是否尝试计算 timeDelta (timeDeltaErr) 的误差? 最好的方法是测量节点之间传输数据所需的 10-20 次时间。 然后取 timeDelta 值与观察到的实际时间差的平均值。  

    此外、从服务节点和/或候选节点的角度来看、使用 CC2340R5 作为对等节点并不重要。 他们关心的只是通过电流连接。 CC2340R5 不需要支持连接切换、即可在服务节点和候选节点之间进行连接。  

    同样、我仍在调试此问题、但我认为根是 timeDelta 和 timeDeltaErr 值。  

    谢谢、

    Isaac

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

    您好、Isaac:

    1.我根据您的方法计算数据传输时间,数据如下:

    次数 时间 (ms) 次数 时间 (ms) 次数 时间 (ms) 次数 时间 (ms)
    1. 54 6. 55 11. 51. 16 50
    2. 57 7. 56 12 52 17 54
    3. 51. 8. 57 13 59 18 51.
    4. 59 9. 54 14 42 19 56
    5. 54 10. 54 15 60 20 58
    一般般 54.2. 差异平均值 2.89

    下面是我修改后的参数设置

                cnParams_fii.timeDelta = 54000;
                cnParams_fii.timeDeltaErr = 2890;
                cnParams_fii.maxFailedConnEvents = 30;
                cnParams_fii.txBurstRatio = 0;
                cnParams_fii.pHandoverData = Handover_CN_Data;

    经过这种修订后、成功移交的数目有所增加、但不能保证每次移交都能取得成功。

    谢谢

    James

    2025.09.10.

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

    您好、Isaac:

    最近是否有关于此问题的任何更新?

    另一个问题是、在交付成功后、候选节点无法与关键节点配对。 因此、无法启用 CS 功能、并且当发送 CS 命令时、协议栈不会响应。

    谢谢

    James

    2025.09.24

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

    您好、James、  

    对延迟极长的回复表示歉意。  

    我已经在我这边复制了问题、但还没到进一步调试的时间。  

    如果您将候选节点设置为发起配对的配对模式、则在传递连接后配对是否成功?  

    谢谢、

    Isaac

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

    您好、Isaac:

    感谢您的答复。

    将候选节点设置为的值  发起配对的配对模式 、连接完成后、配对仍然不成功。

    蓝牙协议栈将发送“星型配对“消息、但不会发送“配对成功“消息。

    谢谢

    James

    2025.10.08