BLE扫描器断言错误

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
5个职位/ 0个新职位
最后发表
stevenchick
离线
最后看到:2年2个月前
加入:2019-05-22 34
BLE扫描器断言错误

你好,

我一直在工作一个修改版本的ble_multi_link项目从SDK 10.0.4.66.2,我想添加一个扫描功能。到目前为止,我已经设置了一个由计时器和回调函数每秒钟触发一次的通知,并且我能够让扫描器运行,但是我的代码从来没有达到我添加到BLE_APP_NOTIFY_MASK开关案例中的BLE_EVT_GAP_ADV_REPORT案例。相反,我的扫描器将运行一定的时间,然后我的代码将冻结在显示ASSERT_ERROR(0)之后。我尝试过关闭广告,也设置扫描仪在代码的不同适用点关闭,但我仍然收到这个错误。如果有人对这个问题有什么建议,我将非常感谢。
以下是我对代码做的一些添加,以实现我到目前为止所做的:

__RETAINED static OS_TIMER sc_scan_tim;//添加在顶部设置1秒计时器

static void sc_scan_cb(OS_TIMER timer) //我在其他预定义函数中添加了这个函数

OS_TASK task = (OS_TASK)OS_TIMER_GET_TIMER_ID(timer);

OS_TASK_NOTIFY(任务、SC_SCANNER_MASK OS_NOTIFY_SET_BITS);

//添加到ble_multi_link_task函数的代码
ble_gap_role_set (
Gap_peripheral_role | gap_central_role | gap_observer_role);//我还在配置文件中将GAP_OBSERVER_ROLE设置为1

os_ms_ticks (1000), true,执行命令OS_TIMER_CREATE("SC_SCAN", os_ms_ticks (1000)),
(void *) OS_GET_CURRENT_TASK(), sc_scan_cb;使用实例

OS_TIMER_START (sc_scan_tim OS_TIMER_FOREVER);
////////////////////////////////////////////////////////////////

在BLE_APP_NOTIFY_MASK开关案例中
//////////////////////////////////////////
案例BLE_EVT_GAP_ADV_REPORT:
handle_evt_gap_adv_report (
(ble_evt_gap_adv_report_t *) hdr);
打破;
//////////////////////////////////////////////////////////
在switch case之后,但仍然在for循环中
//////////////////////////////////////////////////////////
if (notif & scanner_mask) {
ble_error_t状态;
ble_gap_adv_stop ();
状态= ble_gap_scan_start (GAP_SCAN_PASSIVE,
GAP_SCAN_OBSERVER_MODE,
BLE_SCAN_INTERVAL_FROM_MS (2.5),
BLE_SCAN_WINDOW_FROM_MS (0.625),
假,假);
if (status != BLE_STATUS_OK) {
printf("ERROR: scan can not be started (0x%02X)\r\n",
状态);

printf("扫描…\ r \ n”);


////////////////////////////////////////////////////////////////////////////

如果有任何我可以提供的,以改善我的问题的清晰度,请让我知道,我可以乐意这样做。

非常感谢,

史蒂文

设备:
stevenchick
离线
最后看到:2年2个月前
加入:2019-05-22 34
你好,

你好,

作为一个快速更新,我能够通过消除stop adv函数来让ASSERT_ERROR(0)消失。然而,我仍然无法获得代码,以到达BLE_EVT_GAP_ADV_REPORT,在那里(据我所知)一个设备将被认为发现。我一直在研究其他一些使用扫描仪的示例代码,并尝试了许多选项,但仍然不能触发报告事件。如果有人对此有什么建议,我将非常感谢:)

非常感谢,

史蒂文

PM_Dialog
离线
最后看到:6天13小时前
工作人员
加入:2018-02-08 11:03
嗨,史蒂文,

嗨,史蒂文,

感谢您的在线问题,并为延误道歉。我正在做这个,我会尽快给你回复。让我检查一下。

请问您是否在Multi-link项目中做过其他修改?

谢谢,PM_Dialog

stevenchick
离线
最后看到:2年2个月前
加入:2019-05-22 34
嗨点,

嗨点,

谢谢你的回复,我很感激。我忘记在ble_common.h文件中包含变量SC_SCANNER_MASK:

#define SC_SCANNER_MASK (1 << 1)

非常感谢,

史蒂文

PM_Dialog
离线
最后看到:6天13小时前
工作人员
加入:2018-02-08 11:03
嗨stevenchick,

嗨stevenchick,

一封电子邮件已发送到你的注册邮箱地址。

谢谢,PM_Dialog