跳转到主要内容

扫描仪

DA14580

4年前

扫描仪

发布的craftwizard0点 1回复
0的问题

嗨。
我想实现BLE扫描器功能。
不会发生gapm_adv_report_ind_handler事件。
我实现的源代码如下所示。
请检查代码。
是否有一个简单的扫描仪样例项目?

EXTERN const struct ke_msg_handler app_default_state[] =

....
(ke_msg_func_t) gapm_adv_report_ind_handler}, {GAPM_ADV_REPORT_IND
...

Int gapm_adv_report_ind_handler(ke_msg_id_t msgid, struct gapm_adv_report_ind *param, ke_task_id_t dest_id, ke_task_id_t src_id)

app_adv_report_ind_func(参数);
返回(KE_MSG_CONSUMED);

空白app_set_dev_config_complete_func(空白)

我们现在处于初始化状态
ke_state_set (TASK_APP APP_DB_INIT);

//在数据库中添加第一个需要的服务
/ *如果(app_db_init ())

//没有服务添加到DB ->开始发布
app_adv_start ();

*/
app_start_scanning ();

返回;

空白app_start_scanning(空白)

arch_printf(“app_start_scanning \ n”);
struct gapm_start_scan_cmd *msg = KE_MSG_ALLOC(gapm_start_scan_cmd, TASK_GAPM, TASK_APP, gapm_start_scan_cmd);
味精- >模式= GAP_OBSERVER_MODE;/ / GAP_GEN_DISCOVERY;
味精- > op。代码= GAPM_SCAN_ACTIVE;/ / GAPM_SCAN_PASSIVE;
味精- > op。addr_src = GAPM_PUBLIC_ADDR;
味精- > filt_policy = SCAN_ALLOW_ADV_ALL;/ / SCAN_ALLOW_ADV_WLST;/ / SCAN_ALLOW_ADV_ALL;
味精- > filter_duplic = SCAN_FILT_DUPLIC_EN;
味精- >间隔= 4000;/ / 10;
味精- >窗口= 4000;/ / 5;
ke_msg_send(味精);
返回;

//当app_start_scanning被调用时,App_scanning_completed_func被调用。
空白app_scanning_completed_func(空白)

arch_printf(“app_scanning_completed_func \ n”);
/ / app_start_scanning ();

Int gapm_cmp_evt_handler(ke_msg_id_t const msgid, struct gapm_cmp_evt const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id)

开关(param - >操作)

案例GAPM_SCAN_ACTIVE:
案例GAPM_SCAN_PASSIVE:

app_scanning_completed_func ();
打破;


4年前

MT_dialog -30点

嗨craftwizard,

在DSPS主机示例中有一个扫描功能,您可以从该项目中检查扫描过程是如何实现的。我没有看到任何错误的扫描功能,除了事实,你的扫描间隔是相同的窗口间隔(我不认为它会导致你任何重大的问题,但扫描窗口应该更小的间隔)。如果广告提示没有出现,确保设备实际上是扫描(检查扫描函数执行在您的转发、使用权力分析器或试图抓住之后,扫描过程中如果有任何GAPM_CMP_EVT扫描procdure——GAPM_SCAN_ACTIVE或被动——返回错误状态)。

由于MT_dialog