Firefly开源社区
标题:
请问各位大神,QN920x如何获取当前设备状态?
[打印本页]
作者:
zhang2005
时间:
2015-8-7 15:04
标题:
请问各位大神,QN920x如何获取当前设备状态?
包括在广播,或者在扫描?或者即未广播又未扫描?或者其他状态?像TI的CC2541蓝牙就可以,如下图
BLE固件开发--如何获取当前连接状态.png
(675.34 KB, 下载次数: 454)
下载附件
2015-8-7 15:03 上传
作者:
安安
时间:
2015-8-7 15:17
1.函数ke_state_get(TASK_APP)可以获取到app的当前状态,TASK_APP一共有四种状态,init、idle、adv、scan,论坛早有讨论四种状态的帖子,附上传送门
http://developer.t-firefly.com/thread-1425-1-2.html
。
2.idle是无法区分是否连接成功的,区分连接是否成功的一个方法是判断主服务是否enable,例如:
if(APP_IDLE == ke_state_get(TASK_APP))
{
struct app_proxr_env_tag *app_proxr_env = &app_env.proxr_ev;
if(!app_proxr_env->enabled)
{
// start adv
app_gap_adv_start_req(GAP_GEN_DISCOVERABLE|GAP_UND_CONNECTABLE,
app_env.adv_data, app_set_adv_data(GAP_GEN_DISCOVERABLE),
app_env.scanrsp_data, app_set_scan_rsp_data(app_get_local_service_flag()),
GAP_ADV_FAST_INTV1, GAP_ADV_FAST_INTV2);
#if (QN_DEEP_SLEEP_EN)
// prevent entering into deep sleep mode
sleep_set_pm(PM_SLEEP);
#endif
}
}
复制代码
当然gap层有提供很多方法判断连接是否成功,此法较方便。
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1