BLE扫描仪断言错误

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
诽谤
离线
最后一次露面:10个月前1年
加入:2019-05-22 13:34
BLE扫描仪断言错误

你好,

我一直在使用SDK 10.0.4.66.2的BLE_MULTI_LINK项目的修改版本,其中我想添加扫描功能。到目前为止,我已经建立了一个通过计时器和回调函数每秒触发的通知,并且我能够让扫描仪运行,但是我的代码从未到达BLE_EVT_GAP_ADC_REPOR案例,即我添加到BLE_APP_NOTIFY_MASK交换机盒。相反,我的扫描仪将运行一段时间,然后我的代码在显示ASSERT_ERROR(0)之后将冻结。我尝试关闭广告,并将扫描仪设置为代码中的各种适用点关闭,但我仍然收到此错误。如果有人对这件事有任何建议,我会非常感激。
以下是我向代码制作的一些添加,以实现我到目前为止所做的内容:

__门静态OS_TIMER SC_SCAN_TIM;//在顶部添加设置1秒计时器

静态void sc_scan_cb(OS_Timer Timer)//我将其添加到具有所有其他预定义函数的部分
{
OS_TASK TAFT =(OS_TASK)OS_TIMER_GET_TIMER_ID(计时器);

os_task_notify(任务,sc_scanner_mask,os_notify_set_bits);
}

//代码我添加到ble_multi_link_task函数
ble_gap_role_set(
GAP_PERITIVELAL_ROLE |Gap_Central_Role |gap_observer_role);//我也在配置文件中将Gap_observer_role设置为1

sc_scan_tim = os_timer_create(“sc_scan”,os_ms_2_ticks(1000),true,
(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);
休息;
//////// //////////////////////////////////////////////////////////////////////////////////////
交换机后但仍然在循环中
//////// //////////////////////////////////////////////////////////////////////////////////////
if(notf&sc_scanner_mask){
ble_error_t状态;
ble_gap_adv_stop();
status = 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(“错误:扫描无法启动(0x%02x)\ r \ n”,
地位);
}
printf(“扫描... \ r \ n”);

}
//////// ////////////////////////////////////////////////////////////////////////////////////////////////////////

如果还有其他任何我可以提供提高我问题的清晰度,请告诉我,我可以很乐意这样做。

非常感谢,

史蒂文

设备:
诽谤
离线
最后一次露面:10个月前1年
加入:2019-05-22 13:34
大家好,

大家好,

作为一个快速更新,我能够通过摆脱stop adv功能来获取assert_error(0)消失。但是,我仍然无法获取代码来到达BLE_EVT_GAP_ADV_REPORT(对我的知识)将被考虑发现的设备。我一直在查看利用扫描仪的其他示例代码,并尝试了许多选项,但仍然无法触发报告事件。如果有人对此有任何建议,我真的很欣赏它:)

非常感谢,

史蒂文

PM_DIALOG.
离线
最后一次露面:10小时前1天
职员
加入:2018-02-08 11:03
嗨史蒂文,

嗨史蒂文,

感谢您在线问题并为延迟表示歉意。我正在努力,我会尽快回复你。我来检查一下。

请问您是否在多链路项目中完成了任何其他修改?

谢谢,PM_DIALOG.

诽谤
离线
最后一次露面:10个月前1年
加入:2019-05-22 13:34
嗨PM,

嗨PM,

谢谢你的回复,我很欣赏它。我忘记在BLE_COMMON.H文件中包含它我包含以下变量sc_scanner_mask的文件:

#define sc_scanner_mask(1 << 1)

非常感谢,

史蒂文

PM_DIALOG.
离线
最后一次露面:10小时前1天
职员
加入:2018-02-08 11:03
嗨Stevenchick,

嗨Stevenchick,

已挂号邮件地址已发送电子邮件。

谢谢,PM_DIALOG.