主题中讨论的其他器件:SysConfig
工具与软件:
您好!
我已为扩展广播添加了新的广播集、因为我无法添加扫描响应数据、并且我已完成以下设置和参数。
当我们开始广播时、但在 BLE_scaner 或任何 BLE 应用上不可见。
请提供我们需要更改堆栈中任何内容的解决方案。
我已经为第二个广播集定义了广播句柄。
SDK 版本:simplelink_lowpower_f3_sdk_8_10_01_02
CCS 版本:12.5
谢谢、此致
Balaji Wankhede
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.
工具与软件:
您好!
我已为扩展广播添加了新的广播集、因为我无法添加扫描响应数据、并且我已完成以下设置和参数。
当我们开始广播时、但在 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 时,没有收到数据包在扫描响应。
是否缺少设置或需要添加任何事件、请告知我们?
注意:如果您需要更多信息、请告知我。
谢谢。此致、
Balaji Wankhede
您好 Jan:
这一面是 Sanket。 我是 Balaji 的人。
我们在两侧使用了相同的编码 Phy。 在两侧、我们都使用 CC2340控制器。 我们可以在 BLE Scanner (移动应用)上看到扩展的 ADV、但另一侧中央设备无法扫描扩展的 ADV。 BLEAPPUTIL_ADV_REPORT 处的断点未命中。
这项任务对于我们解决实现项目里程碑至关重要。
注意:这是我们为增加 BLE 范围而进行的完整活动。 我在数据表中看到编码的 BLE 范围将会是之前的两倍甚至更多。
您好 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 (¢ralScanStartParams);
}
我已在 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、
请先帮助我们澄清几点:
让我们知道情况如何。
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 (¢ralScanStartParams);
}
SDK:simplelink_lowpower_f3_sdk_8_40_00_61
CCS 版本:12.5
中央侧器件设置:
外设侧器件设置:
请提供回复概览。
注意:如果您需要更多信息、请在中告知
您好、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 (¢ralScanStartParams);
}
我尝试使用 main_freertos.c 中新创建的任务来实现连续扫描、如上所示。
扫描是连续的、但在 BLEAPPUTIL_ADV_REPORT 事件中没有收到任何扩展广播设备。
是否有任何方法可以在不使用任务的情况下连续扫描?
请提供一种解决方案来帮助我们解决此问题。
谢谢、此致
Balaji W
您好、Tarek、
我们已尝试GapScan_enable
在主任务中调用、但仍然无法正常工作。 即使我们GapScan_enable
在主任务中调用时、扫描也只发生一次、然后需要5-6分钟才能进行下一次扫描。 这种行为给我们带来了困难。
我们还尝试了使用按钮回调进行扫描、并通过编码 PHY 测试了范围、但我们仍未达到更大的范围、仅在50米左右。
我认为我们可能缺少一些重要的东西。 您能帮助我们解决这个问题吗?
谢谢。此致
Balaji Wankhede
你好、Balaji、
感谢您的耐心等待! 要实现连续扫描、应使用 GapScan_enable。 但是、请记住、持续时间和周期条目都应为零。 最大报告数不会影响扫描状态。 因此、函数调用将如下所示:
GapScan_enable(0,0,x) //Where x is the max number of adv reports
我最后运行了这个函数、如下图所示、扫描是连续的:
那么我 手动 关闭扫描、以确认将发生更改、如下图所示、扫描停止后、电源关闭:
此致、
Tarek
您好、Tarek、
是的、我们已经按照您分享的上述快照进行了测试。
感谢您的响应。
我们就能够连续扫描。
我们已经尝试了扩展扫描和扩展广告,我们仍然得到相同的范围(即与拉盖西广告相同)。
根据我认为扩展的观察,我们也没有得到预期的结果。
我们已尝试 S2和 S8两种情况下的静止范围都是相同的。
请说明是否有任何其他方法可以使用扩展广告来增加覆盖范围。
谢谢、此致
Balaji Wankhede