app_easy_gap_advertise_stop.

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

你好支持团队,

我想了解SDK是如何工作的。

使用示例ble_app_barebone。

我想有2个状态运行设备:

州0:广告
第1州:什么都不做

为了实现这一目标,我以这种方式修改了上述项目:
在功能adv_data_update_timer_cb() - 定时器的回调:我基于内部计数器切换状态
当计数器达到预期值,我改变状态,并要求停止进阶:

mystatus是一个全局变量

uint8_t myStatus __attribute __((部分( “retention_mem_area0”),zero_init));// @保持存储器uint8_t NB __attribute __((部分( “retention_mem_area0”),zero_init));// @保持存储器静态无效adv_data_update_timer_cb(){NB ++;如果(NB == 2){myStatus = 1;// evite LA relance app_easy_gap_advertise_stop();}否则如果(NB> = 4){myStatus = 0;NB = 0;} //如果mnd_data_index具有MSB集合,制造商数据被存储在扫描响应uint8_t * mnf_data_storage =(mnf_data_index&0x80的)?stored_scan_rsp_data:stored_adv_data;//更新制造商数据mnf_data_update(); // Update the selected fields of the advertising data (manufacturer data) memcpy(mnf_data_storage + (mnf_data_index & 0x7F), &mnf_data, sizeof(struct mnf_specific_data_ad_structure)); // Update advertising data on the fly app_easy_gap_update_adv_data(stored_adv_data, stored_adv_data_len, stored_scan_rsp_data, stored_scan_rsp_data_len); // Restart timer for the next advertising update app_adv_data_update_timer_used = app_easy_timer(APP_ADV_DATA_UPDATE_TO, adv_data_update_timer_cb); }

比user_app_adv_start我不叫app_easy_gap_undirected_advertise_start时myStatus == 1

空隙user_app_adv_start(无效){// arch_printf( “user_app_adv_start”);/ * SB * / //安排下一个广告数据更新app_adv_data_update_timer_used = app_easy_timer(APP_ADV_DATA_UPDATE_TO,adv_data_update_timer_cb);/ * SB * /如果(myStatus == 1){回报;}结构gapm_start_advertise_cmd * CMD;CMD = app_easy_gap_undirected_advertise_get_active();//制造商数据添加到初始的广告或扫描响应数据,如果有足够的空间app_add_ad_struct(CMD,&mnf_data,的sizeof(结构mnf_specific_data_ad_structure),1);app_easy_gap_undircated_advertise_start();}

结果不出我所料,因为它在NMI_HandlerC完成。

你能帮助我理解我做错了什么

谢谢

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

嗨ohmi,

当你停止广告时,user_app_adv_undirect_complete()回调函数被触发。如果选中此功能的源代码,user_app_adv_start()将被触发,那么设备将重新刊登广告。请以调试模式运行你的代码,你会看到“状态”等于GAP_ERR_CANCELED(= 0×44)。所以,当user_app_adv_start将再次被触发,myStatus变量等于1,且“收益”将被执行。这样做的结果是,代码卡,看门狗超时,你会得到一个NMI。如果删除,如果(myStatus == 1){回报;},停止广告后,user_app_adv_start()将被正确excecuted和设备将重新启动广告。有一个在SDK命名ble_app_sleepmode例如,在设备启动广告,时间停止广告的预定量之后,进入延长休眠模式,当您按下开关按钮的设备唤醒并重新启动广告的例子。如果你是新手,我们的产品和我们的SDK,我建议你看一下雷电竞官网登录下面的文件,这将有助于您了解我们的API和SDK的架构。

请,读UM-B-080文档的支柱5(睡眠模式)部分。另外,我强烈建议你看看我们的教程和我们从我们的支持网页的软件实例。

//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/smartbond-da14585-and-da14586

谢谢,PM_DIALOG.

ohmi.
离线
最后一次露面:2年3个月前
加入:2019年3月28日08:21
是的,我的新手既您

是的,我的新手既您的产品和SDK。雷电竞官网登录
我试图通过UM-B-080/079了解SDK,但很难进入。
所以感谢链接到政党成员,我会通过他们去。

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

嗨ohmi,

我建议您阅读UM-B-080/079,运行和调试所有SDK的示例然后阅读教程。如果您有任何其他问题或问题,请创建另一个论坛线程。谢谢你接受我的答案。

谢谢,PM_DIALOG.

ohmi.
离线
最后一次露面:2年3个月前
加入:2019年3月28日08:21
嗨支持,

嗨支持,

我通过实例去了,但我发现教程更有益(尤其是一个讨论的睡眠模式)。
我设法在短时间内发送广告,而不是在重新启动广告之前睡一段时间。

感谢您的指导。