Firefly开源社区

标题: 请问各位大神,QN920x如何获取当前设备状态? [打印本页]

作者: zhang2005    时间: 2015-8-7 15:04
标题: 请问各位大神,QN920x如何获取当前设备状态?
包括在广播,或者在扫描?或者即未广播又未扫描?或者其他状态?像TI的CC2541蓝牙就可以,如下图


作者: 安安    时间: 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,例如:
  1.                 if(APP_IDLE == ke_state_get(TASK_APP))
  2.                 {
  3.                     struct app_proxr_env_tag *app_proxr_env = &app_env.proxr_ev;
  4.                     if(!app_proxr_env->enabled)
  5.                     {
  6.                         // start adv
  7.                         app_gap_adv_start_req(GAP_GEN_DISCOVERABLE|GAP_UND_CONNECTABLE,
  8.                                 app_env.adv_data, app_set_adv_data(GAP_GEN_DISCOVERABLE),
  9.                                 app_env.scanrsp_data, app_set_scan_rsp_data(app_get_local_service_flag()),
  10.                                 GAP_ADV_FAST_INTV1, GAP_ADV_FAST_INTV2);

  11. #if (QN_DEEP_SLEEP_EN)
  12.                         // prevent entering into deep sleep mode
  13.                         sleep_set_pm(PM_SLEEP);
  14. #endif
  15.                     }
  16.                 }
复制代码

当然gap层有提供很多方法判断连接是否成功,此法较方便。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1