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:CC2340R5中的扩展广播

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1471823/cc2340r5-extended-advertisement-in-cc2340r5

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

工具与软件:

您好!

我已为扩展广播添加了新的广播集、因为我无法添加扫描响应数据、并且我已完成以下设置和参数。

当我们开始广播时、但在 BLE_scaner 或任何 BLE 应用上不可见。

请提供我们需要更改堆栈中任何内容的解决方案。

我已经为第二个广播集定义了广播句柄。

SDK 版本:simplelink_lowpower_f3_sdk_8_10_01_02

CCS 版本:12.5

谢谢、此致

Balaji Wankhede

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

    尊敬的 Balaji Wankhede:

    在8.10版本的 Early Access 状态下提供了扩展广告功能。 我建议使用8.40版本、因为该版本的功能通过了蓝牙认证。 关于这一功能、绝大多数智能手机应用不显示扩展广播。 它们仅显示传统广播。 要查看无线传输中发生的情况、我建议使用第二个 LaunchPad 扫描扩展广播或蓝牙 LE 监听器来查看您是否可以发现投诉的扩展广播。

    此致、

    1月

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

    您好 Jan:

    感谢您的答复。

    是的、我们已经进行过尝试、现在它在扩展后的某些应用上显示工作正常。

    我有一个我在该设备中进行编码设置的中央设备、该设备正在连续扫描、但在 BLEAPPUTIL_ADV_REPORT 中、当我们在下面给出的中央设备中进行编码 PHY 设置时、无法看到。

    我附上了一些中央设备的屏幕截图:

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

    您好!

    很高兴听到你现在能看到广告! 在编码扫描器上、广播器是否也使用相同的编码 PHY?

    此致、

    1月

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

    您好 Jan:

    否、为了进行扫描、我们使用的是应接收扩展广播包的另一个器件。 它正在持续扫描、但数据包未显示在中BLEAPPUTIL_ADV_REPORT。 请提供一些对我们有用的技术解决方案。

    扩展广告在移动电话上可见、但在中心设备中、我们无法看到任何类型的广告未获得(它不会收到任何广播包)、而我们进行了之前的设置(在最后回复中提供)

    但是,当我们尝试扫描传统广告,然后我们接收的广告信息娱乐设备的数量,但扫描在扩展(编码)的 PHY 时,没有收到数据包在扫描响应。

    是否缺少设置或需要添加任何事件、请告知我们?

    注意:如果您需要更多信息、请告知我。

    谢谢。此致、

    Balaji Wankhede

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

    您好 Jan:

    这一面是 Sanket。 我是 Balaji 的人。  

    我们在两侧使用了相同的编码 Phy。 在两侧、我们都使用 CC2340控制器。 我们可以在 BLE Scanner (移动应用)上看到扩展的 ADV、但另一侧中央设备无法扫描扩展的 ADV。   BLEAPPUTIL_ADV_REPORT 处的断点未命中。  

    这项任务对于我们解决实现项目里程碑至关重要。  

    注意:这是我们为增加 BLE 范围而进行的完整活动。 我在数据表中看到编码的 BLE 范围将会是之前的两倍甚至更多。

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

    您好!

    您能否分享如何将扫描 PHY 修改为编码?

    此致、

    1月

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

    您好!

    我们已在上一个回复中共享系统配置设置屏幕截图。

    我们要从系统配置设置更改扫描 PHY。

    请检查我们在中央设备中完成的以下设置:

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

    您好!

    我很抱歉、我漏掉了图片已被共享。 这些设置对我来说没问题。 您能否在启用扫描的位置共享代码片段?

    此致、

    1月

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

    您好 Jan:

    感谢您的响应。

    我在此附上代码、我们将进行连续扫描、一个任务是连续运行。
    根据您的要求、我附加了从外围器件接收扫描和广播数据所需的大部分功能。
    我在这里附上代码。 我们在一个任务中执行连续扫描、并且它一直在运行。

    下面附上了在 main_freertos.c 文件中运行的任务。

    //创建的任务类似
    xTaskCreate (vTask1Function、"Task1"、1024、NULL、tskIDLE_priority + 1、 &xTask1Handle);//创建新任务

    void vTask1Function (void * ptr)

    for (;;)

    if (connect_FLAG =>= 0)

    BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) Scan_connect);
    }

    vTaskDelay (pdms_to_ticks (500));
    }
    }

    //为扫描设备添加了新功能
    void Scan_connect (void)

    const BLE4519_concentralScanStartParams Util_Scan =

    /*! 零用于连续扫描*/
    .scanPeriod = 0、// default_scan_period、/*单位为1.28sec *

    /*! 扫描持续时间应大于扫描间隔。 0表示连续扫描。 */
    .scanDuration = 50、// DEFAULT_SCAN_DURATION、/*单位10ms */

    /*! 如果非零、则将生成广播报告列表、并附带@ref gap_evt_scan_disabled。 */
    .maxNumReport = 30 // APP_MAX_NUM_OF_ADV_REPORTS
    };

    BLEAppUtil_scanStart (&centralScanStartParams);
    }
    我已在 aap_central.c 文件中添加了 BLEAPPUTIL_ADV_REPORT 事件处理程序。

    //事件处理程序结构、包含处理程序和事件掩码
    //用于应用程序中央角色模块
    BLE4.4510_t Util_Event centralScanHandler =

    .handlerType = BLEAPPUTIL_GAP_SCAN_TYPE、
    .pEventHandler = Central_Scan 791-Handler、
    .EventMask = BLEAPPUTIL_SCAN_ENABLED |
    BLEAPPUTIL_SCAN_DISABLED |
    BLEAPPUTIL_ADV_REPORT
    };

    案例 BLEAPPUTIL_ADV_REPORT:

    G54 Scan_Evt_Adv Rpt_t advReport;
    内部计数;
    for (cnt = 0;cnt < 6;cnt++)

    dat_buf[cnt]= scanMsg->pBuf->pAdvReport.addr[cnt];
    }
    }
    但是、在此事件中、我们不会收到扩展广播数据(BLEAPPUTIL_ADV_REPORT)。 您能否提供相关解决方案?

    根据您的要求、我附加了从外围设备扫描和接收广播数据所需的大部分功能。

    谢谢。此致

    Balaji Wankhede

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

    你好、Balaji、

    感谢您的耐心等待! 我将研究这个问题,并在明天(2月19日)结束前回复您!

    此致、
    Tarek

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

    你好、Balaji、

    请先帮助我们澄清几点:

    1. 如何配置外设? 共享 SysConfig 配置可能很有用。 根据蓝牙核心规范版本5.3 |第4卷、E 部分第7.8.53节:LE 设置扩展广播参数命令:"如果正在使用扩展广播 PDU 类型(位4 = 0)、则广播不应同时可连接和可扫描"、因此不可能两者都处于同一模式。 您可以具有可扫描的广播(仅扫描响应)或可连接的广播(仅广播数据)广播。 那么、您在使用这两者中的哪一个? 我假设您已根据您的初始问题配置扫描响应。 在任何情况下、考虑到您实际收到报告、这不是重点、但有助于澄清。
    2.  现在关注中央设备、您是否使用 basic_ble 示例作为起始基准? 我们可以先使用主音频任务、而不是创建另一个、我认为它 不是 iCall_register吗? 如果您转至 APP_CENTRAL、则需要修改以下内容(类似于您已拥有的内容):
      1. BLEAPPUTIL_ADV_REPORT 添加到 centralScanHandler。
      2. 在 Central_Scan Handler CB 函数中添加案例 BLEAPPUTIL_ADV_REPORT。 让我们首先切换 LED。
    3. 请增加扫描持续时间。
    4. 如果您使用的是低功耗蓝牙监听器、请检查外围设备是否实际正在广播(您已经使用移动应用程序进行了广播、太好了)。 还请检查中央设备是否实际正在扫描、可以使用监听器执行此操作、或者可以使用 EnergyTrace、您应该能够定期查看扫描时(窗口周期)电流消耗增加的情况。

    让我们知道情况如何。

    BR、

    David。

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

    您好、DevID:

    感谢您的答复。

    我已经按照您在上一个回复中分享的流程进行了操作。

    现在、我将在中央设备上接收扩展广播数据。 但是、问题是当我在任务中执行连续扫描时、在中未检测到外围设备BLEAPPUTIL_ADV_REPORT。 在新创建的任务中执行连续扫描时可能出现什么问题?

    是否有其他方法可以在不使用任务的情况下执行连续扫描?

    xTaskCreate (vTask1Function、"Task1"、1024、NULL、tskIDLE_priority + 1、 &xTask1Handle);

    我正在执行上面创建的任务  

    void vTask1Function (void * ptr)

    for (;;)
     {
     BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) Scan_connect);
    vTaskDelay (pdms_to_ticks (500));

    }
    }

    void Scan_connect (void)

    const BLE4519_concentralScanStartParams Util_Scan =

    /*! 对于持续扫描、为零*/
    .scanPeriod = 0、//default_scan_period、/*单位为1.28sec *

    /*! 扫描持续时间应大于扫描间隔*/
    /*! 零持续扫描。 */
    .scanDuration = 100、//DEFAULT_SCAN_DURATION、/*单位为10ms */

    /*! 如果非零、则广告报告列表将为*/
    /*! 生成并具有@ref GAP_EVT_SCAN_DISABLED。 */
    .maxNumReport = 20 //APP_MAX_NUM_OF_ADV_REPORTS
    };

    BLEAppUtil_scanStart (&centralScanStartParams);
    }

    SDK:simplelink_lowpower_f3_sdk_8_40_00_61
    CCS 版本:12.5

    中央侧器件设置:

    外设侧器件设置:

    请提供回复概览。

    注意:如果您需要更多信息、请在中告知  

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

    你好、Balaji、

    只是为了澄清一下、您是否共享了您正在使用的代码和成功扫描 使用扩展广播的设备的代码? 您还可以增加广告报告的最大数量吗?  

    此致、

    Tarek

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

    您好、Tarek、

    是的、我尝试仅使用编码的 PHY 进行扫描(系统配置设置已在上一个回复中共享)。

    每当我使用新创建并启用持续扫描的任务进行扫描时、我都没有收到任何扩展广播设备。

    但是、当我根据 basic_ble 示例代码使用"按键菜单"回调进行扫描时、在系统配置中应用了相同的设置(与您共享)、我可以在 BLEAPPUTIL_ADV_REPORT 事件中获得扩展广播设备。

    但我们的问题是、我们需要使用编码 PHY 进行连续扫描。

    以下是我们为连续扫描修改的代码:


    void vTask1Function (void * ptr)

    for (;;)

    BLEAppUtil_invokeFunctionNoData ((InvokeFromBLEAppUtilContext_t) Scan_connect);
    vTaskDelay (pdms_to_ticks (500));
    }
    }

    void Scan_connect (void)

    const BLE4519_concentralScanStartParams Util_Scan =

    /*! 对于持续扫描、为零*/
    .scanPeriod = 0、//default_scan_period、/*单位为1.28sec *

    /*! 扫描持续时间应大于扫描间隔*/
    /*! 0用于连续扫描。 */
    .scanDuration = 100、//DEFAULT_SCAN_DURATION、/*单位为10ms */

    /*! 如果非零、则广告报告列表将为*/
    /*! 生成并具有@ref GAP_EVT_SCAN_DISABLED。 */
    .maxNumReport = 30 //APP_MAX_NUM_OF_ADV_REPORTS
    };

    BLEAppUtil_scanStart (&centralScanStartParams);
    }
    我尝试使用 main_freertos.c 中新创建的任务来实现连续扫描、如上所示。

    扫描是连续的、但在 BLEAPPUTIL_ADV_REPORT 事件中没有收到任何扩展广播设备。

    是否有任何方法可以在不使用任务的情况下连续扫描?

    请提供一种解决方案来帮助我们解决此问题。

    谢谢、此致

    Balaji W

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

    你好、Balaji、

    感谢您的耐心等待! 我认为不需要外部任务。 您可以使用   原始任务内的 GapScan_enable 函数、使用代码而不是按钮回调开始扫描。 我所附加的链接说明了该功能的不同配置方法。 我希望这能解决您的问题!

    此致、

    Tarek

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

    您好、Tarek、

    我们已尝试GapScan_enable在主任务中调用、但仍然无法正常工作。 即使我们GapScan_enable在主任务中调用时、扫描也只发生一次、然后需要5-6分钟才能进行下一次扫描。 这种行为给我们带来了困难。

    我们还尝试了使用按钮回调进行扫描、并通过编码 PHY 测试了范围、但我们仍未达到更大的范围、仅在50米左右。

    我认为我们可能缺少一些重要的东西。 您能帮助我们解决这个问题吗?

    谢谢。此致

    Balaji Wankhede

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

    你好、Balaji、

    我在研究这个。 我会尽快回复您。

    此致、

    Tarek

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

    你好、Balaji、

    感谢您的耐心等待! 要实现连续扫描、应使用 GapScan_enable。 但是、请记住、持续时间和周期条目都应为零。 最大报告数不会影响扫描状态。 因此、函数调用将如下所示:

    GapScan_enable(0,0,x)  //Where x is the max number of adv reports
    

    我最后运行了这个函数、如下图所示、扫描是连续的:

    那么我  手动  关闭扫描、以确认将发生更改、如下图所示、扫描停止后、电源关闭:

    此致、

    Tarek

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

    您好、Tarek、

    是的、我们已经按照您分享的上述快照进行了测试。

    感谢您的响应。

    我们就能够连续扫描。

    我们已经尝试了扩展扫描和扩展广告,我们仍然得到相同的范围(即与拉盖西广告相同)。

    根据我认为扩展的观察,我们也没有得到预期的结果。

    我们已尝试 S2和 S8两种情况下的静止范围都是相同的。

    请说明是否有任何其他方法可以使用扩展广告来增加覆盖范围。

    谢谢、此致

    Balaji Wankhede

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

    你好、Balaji、

    您能否提供数据包监听器日志? 我们想要分析和验证正在发生的情况。  

    此致、

    Tarek

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

    是、

    我会检查并告知您。

    你有检查和移动我们得到扩展设备连续和扫描设备也扫描使用编码的 phy 仍然我们得到相同的范围。

    谢谢、此致

    Balaji Wankhede

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

    你好、Balaji、

    我将在结束时运行一个测试、并尽快回复您。 此外、提供数据包监听器也会非常有帮助。

    此致、

    Tarek

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

    你好、Balaji、

    我刚刚在最后运行了测试 我们测试了编码 S2、我能够在清晰的视线内到达预期距离。 如果可能、请提供数据包监听器日志、以便我们尝试解决您的问题。

    此致、

    Tarek