BLE固件开发--更新连接参数

低功耗蓝牙里重要的三个连接参数:Connection Interval,Slave Latency,Supervision Timeout.这三个参数决定了BLE的功耗。

更新连接参数的相关api:

/********************************************************************
 * @fn          GAPRole_SendUpdateParam
 *
 * @brief       Update the parameters of an existing connection
 *
 * @param       minConnInterval - the new min connection interval
 * @param       maxConnInterval - the new max connection interval
 * @param       latency - the new slave latency
 * @param       connTimeout - the new timeout value
 * @param       handleFailure - what to do if the update does not occur.
 *              Method may choose to terminate connection, try again, or take no action
 *
 * @return      SUCCESS, bleNotConnected, or bleInvalidRange
 */
bStatus_t GAPRole_SendUpdateParam( uint16 minConnInterval, uint16 maxConnInterval,
                                   uint16 latency, uint16 connTimeout, uint8 handleFailure )

ios app连接时,apple公司有自己的规范,这三个参数的设置必须在其规范内才可生效:

● Interval Max * (Slave Latency + 1) ≤ 2 seconds

● Interval Min ≥ 20 ms

● Interval Min + 20 ms ≤ Interval Max Slave Latency ≤ 4

● connSupervisionTimeout ≤ 6 seconds

● Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout

时间: 2024-12-05 19:50:55

BLE固件开发--更新连接参数的相关文章

低功耗蓝牙BLE之连接事件、连接参数和更新方法

转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件是指主设备和从设备之间相互发送数据包的过程.连接事件的进行始终位于一个频率,每个数据包会在上个数据包发完之后等待 150μs 再发送. 连接间隔决定了主设备与从设备的交互间隔:它是指两个连续的连接事件开始处的时间距离,可以是7.5ms ~ 4s内的任意值,但必须为 1.25ms 的整数倍.要确定从设

连接参数

连接参数由发起者在连接时指定,包括以下参数: 连接间隔--BLE连接使用了一种调频机制.设备在指定时间指定通道上发送和接收数据,随后在新的通道上.BLE协议栈的链路层处理通道的转换.两个设备之间收发数据的过程是一个连接事件.如果没有应用数据发送或者接收,设备交换链路层数据以保持连接.连接间隔就是两个连接事件的时间间隔,以1.25ms为单位,范围从6(7.5ms)到3200(4s).连接间隔的大小影响设备的功耗. 从机延时--这个参数让从机能跳过几次连接事件.如果设备没有数据发送,它能跳过连接事件

【转】蓝牙ble app开发(三) -- 抓包

原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble app开发(二) -- 关键概念,连接参数,连接请求 中已经详细描述就不再熬述了固件基于cc2540  cc2541 1.环境 需要一个抓包器几十块钱, USBdongle 装Packet Sniffer软件进行抓包. 环境搭建可以参考:http://blog.csdn.net/mzy202/artic

固件开发环境验证试验,检验重制固件能否正常工作

上集介绍: 昨天已经把固件开发的环境Keil基本搞好了,而且利用CCD1随机附带的固件程序C文件加上Suite 3.4.7提供的INC和LIB,并对其中不契合的地方稍加修改,最后编译成功,获得了HEX文件,比CCD1附带的HEX文件小了一点点.(不契合原因:老的fx2regs.h文件中没有对端口ABCD(E不能按位访问)的每一位进行定义,所以CCD1的txmaster.c文件开头部分以"sbit PD0 = IOD ^ 0;"的形式对所使用的端口的位进行了定义.当更换为新版本Suite

php微信开发之带参数二维码的使用

最近做微信PC端网页微信相关功能的开发,从一个新手的角度来说,微信公众号的文档还是不好理解的,网上找的帖子大都也都基本上是复制微信公众平台上给的文档,开发微信带参数二维码过程中还是遇到不少坑的,在此把我的开发过程比较详细的记录下,希望对大家有所帮助. 我本次开发使用的是认证服务号. 1 接入首先进入微信公众号 -> 基本配置 下面是基本配置的页面,在URL中填写服务器地址,这个地址就是接受微信推送事件的一个接口,我是使用thinkPHP框架开发的程序,在其中一个Module(Decoration

android开发 更新升级安装到一半自动闪退

如题:android开发 更新升级安装到一半自动闪退,,,解决办法,如下(红色为我新增的代码) /**     * 安装APK文件     */    private void installApk()    {        File apkfile = new File(mSavePath, mHashMap.get("name")); //apkfile  获取已经下载好的待安装apk文件        if (!apkfile.exists())        {       

固件远程更新之STARTUPE2原语(fpga控制flash)

作者:九章子 来源:CSDN 原文:https://blog.csdn.net/jiuzhangzi/article/details/79471365 有的项目需要远程更新固件,更新完成后断电.重启即可.那远程更新是如何实现的呢?用的最多的应该是以太网或者自定义的局域网为主,当然还可以使用pcie.串口之类的,像xilinx还有golden image,以防止远程更新失败启动不起来,它主要是flash存有两个启动文件,正常情况下启动默认的,当默认的被损坏,就从备用的启动.本文章主要讲解的是STA

通过Maven配置测试环境和开发环境连接不同的数据库

通过Maven配置测试环境和开发环境连接不同的数据库 作者及来源: 通灵宝玉 - 博客园    收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com 摘要: 通过Maven配置测试环境和开发环境连接不同的数据库 "通过Maven配置测试环境和开发环境连接不同的数据库":关键词:通过 maven 配置 测试 环境 开发 环境 连接 不同 其他数据库 通过maven配置测试环境和开发环境连接不同的其他数据库 操作上分3个步骤 1.在数据持久层的po

项目实战_Python.子进程/协程在固件检测更新升级程序中的正确姿势?

项目简介: 说明: 主要用于对接OA审批流程后自动下载固件生成更新后自动上传,具体实现代码请阅读代码 项目思路: 项目结构: firmwareupload/ ├── app │   ├── conf │   │   ├── config.py │   │   └── __init__.py │   ├── core │   │   ├── __init__.py │   │   ├── main.py │   │   └── task.py │   ├── __init__.py │   └──