Firefly开源社区

请问各位大神,QN920x如何获取当前设备状态?

15

积分

0

威望

0

贡献

游客

积分
15
发表于 2015-8-7 15:04:32     
包括在广播,或者在扫描?或者即未广播又未扫描?或者其他状态?像TI的CC2541蓝牙就可以,如下图
BLE固件开发--如何获取当前连接状态.png
回复

使用道具 举报

399

积分

0

威望

0

贡献

注册会员

Rank: 8Rank: 8

积分
399
QQ
发表于 2015-8-7 15:17:29     
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层有提供很多方法判断连接是否成功,此法较方便。
没个性,不签名!
回复

使用道具 举报

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表