Firefly开源社区

标题: 关于git的firmware [打印本页]

作者: hiccchen    时间: 2015-8-20 20:45
标题: 关于git的firmware
在官网的维基上下载git上的代码(git clone https://TeeFirefly@bitbucket.org/T-Firefly/FireBLE.git)发现firmware的工程烧到板子上能广播,但是每次手机都显示timeout interrogating the peripheral.但是之前直接在官网上下载固件又没有问题?还有一个问题就是为什么lightblue上搜到firmware是1 service 但进去却有多个服务(有qpps和proxr)?
作者: hiccchen    时间: 2015-8-20 20:48
补充下,官网上直接下载出场固件的bin烧进去能正常连接,但是git上的会连接超时
作者: 安安    时间: 2015-8-21 15:11
本帖最后由 安安 于 2015-8-21 15:17 编辑

1.lightblue连接失败:这个是由于连接参数设置不当的原因,因为lightblue对连接参数的要求较高。查找并修改如下地方代码
  1. ///GAP Peripheral Preferred Connection Parameter - 8 octets
  2. #define GAP_PPCP_CONN_INTV_MAX                              0x00C8
  3. #define GAP_PPCP_CONN_INTV_MIN                              0x0064
  4. #define GAP_PPCP_SLAVE_LATENCY                              0x0000
  5. #define GAP_PPCP_STO_MULT
复制代码

将GAP_PPCP_CONN_INTV_MAX 和 GAP_PPCP_CONN_INTV_MIN两个参数改小
  1. #define GAP_PPCP_CONN_INTV_MAX                              0x0012
  2. #define GAP_PPCP_CONN_INTV_MIN                              0x0008
复制代码

2.只发现一个服务:这个可以自己去看一下广播设置函数,在广播响应函数中是会把包含的服务都发送出去的。而由于开启了 BLE_QPP_SERVER服务,广播到此服务UUID后就直接return了,所以会造成只有一个服务。你可以尝试修改把所有服务都显示出来。
  1. #if BLE_QPP_SERVER
  2.     if (srv_flag & BLE_QPPS_SERVER_BIT)
  3.     {
  4.         app_env.scanrsp_data[0] = ATT_UUID_128_LEN + 1;
  5.         app_env.scanrsp_data[1] = GAP_AD_TYPE_MORE_128_BIT_UUID;
  6.         memcpy(app_env.scanrsp_data + 2, QPP_SVC_PRIVATE_UUID, ATT_UUID_128_LEN);
  7.         return (ATT_UUID_128_LEN + 2);
  8.     }
  9. #endif
复制代码




作者: hiccchen    时间: 2015-8-21 19:09
搞定啦,谢谢大神:lol




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