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.

[参考译文] CC2652R7:在 BLE 设置中发挥中心作用所需的协助

Guru**** 2587365 points
Other Parts Discussed in Thread: CC2652R7

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1283681/cc2652r7-assistance-needed-with-central-role-for-ble-set-up

器件型号:CC2652R7

您好!  

在使用 CC2652R7时、我们需要为某些问题提供帮助。  

 目前的问题 是、将 芯片用作核心用途时:

1.扫描设备时仅检测到8台设备。 此外,许多人在列表中注册了两次。 如何将此列表放大以找到我的节点?
2.如何在特征上启用通知/指示?

此致

D·安德森

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

    尊敬的 David:

    感谢您与我们联系。

    1 -默认情况下、最大扫描结果数限制为8 (请参阅 simple_central.h 中的定义 DEFAULT_MAX_SCAN_RES)。 此值可以略微增加(最多27个),但对于繁忙的环境可能不够。
    相反、我建议使用不受限制的扫描并即时处理扫描结果。

    要执行此操作,请确保调用 GapScan_enable ()并将0作为最大结果数:

    GapScan_enable(0, DEFAULT_SCAN_DURATION, 0);

    然后、在接收到事件"SC_EVT_ADV_REPORT"时、检查允许识别您的器件的任何广播信息。

    如果有用、可将 simple_central 中的代码配置为在使用 default_dev_dec_by_SVC_UUID = true 时执行我刚刚描述的操作。 (注意:在这种情况下、广播器的标识是基于广告数据中包含的服务 UUID)。

    2-我建议参考 simple_socket_client 示例(https://github.com/TexasInstruments/ble_examples/blob/simplelink_cc13xx_26xx_sdk-6.40/examples/rtos/LP_CC2651R3SIPA/ble5apps/simple_serial_socket_client/Application/simple_serial_socket_client.c)。 SimpleStreamClient_enableNotifications 函数展示了 您想要的 https://github.com/TexasInstruments/ble_examples/blob/simplelink_cc13xx_26xx_sdk-6.40/source/ti/ble5stack/profiles/simple_serial_stream/simple_stream_profile_client.c#L417内容

    我希望这将有所帮助、

    此致、

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

    高克莱门特

    感谢您的回复。 我和 David 在同一个开发团队工作、我想进一步讨论问题1。 我们现在使用的是无限制扫描、但这似乎是一个与高噪声 BLE 环境相关的问题。 当我们使用 SimpleCentral 在 BLE 流量较低的位置查找目标节点时、它通常会返回我们查找的 SC_EVT_ADV_REPORT。 但是、在我们办公室、相当拥挤的 BLE 环境中运行相同的设置时、尽管距离很近、我们很少从目标节点收到 SC_EVT_ADV_REPORT。

    我们也尝试了不同的 DEFAULT_SCAN_DURATION 设置、但它似乎对结果没有太大影响。 当使用 Android 扫描仪工具时、如 NRF Connect、我们的目标节点会出现。

    是否有任何迹象表明我们可以采取哪些措施来改善这种情况?


    此致、

    马丁

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

    尊敬的 Martin:

    当我们的办公室中运行相同的设置,一个相当拥挤的 BLE 环境时,我们很少从目标节点收到 SC_EVT_ADV_REPORT

    如果尚未完成、则应在"SC_EVT_ADV_REPORT"案例中实现用于识别您要查找的器件的逻辑。 要执行此操作、您可以查看器件地址或广播数据。

    此外,您还可以考虑启用一些筛选(请参阅 https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.01.24/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gap-cc13xx_cc26xx.html#gap-scanner ,尤其是#4)。 即使我在所指的文档中没有提到它、您也可以启用基于 RSSI 的滤波。  

    我希望这将有所帮助、

    此致、

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

    高克莱门特

    我们在"SC_EVT_ADV_REPORT"情况下添加了逻辑、但该事件绝不会来自较低层(堆栈)。 这就是我们的核心问题:在繁忙的 BLE 环境中、堆栈从不报告事件、因此在我们的案例中、在事件级别进行筛选不是解决方案。

    如果我们使用任何其他监听器应用程序(如 NRF Connect)执行扫描、则会在很短的时间内显示30个或更多节点、包括我们的目标节点。 在 TI、我们得到3-4个、扫描期间最多为10-12个"SC_EVT_ADV_REPORT"事件。 这表明存在严重错误的情况。 在 CC2652R7 Launchpad 和我们的定制 PCB 上可以获得相同的结果。

    我不确定是由于堆栈配置不当造成的、还是什么原因会导致此问题。
    我们使用的是 SDK 6.40和7.10、但它们的行为似乎是相同的。

    此致、

    马丁

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

    尊敬的 Martin:

    我在扫描滤波之前提到过(包括添加更严格的滤波器以减少结果数量)。

    但是、问题是否是由于滤波器移除了您感兴趣的器件? 请查看这些筛选条件并进行评估。

    此致、