ble连接过程建立_九点之蓝牙连接

蓝牙连接

蓝牙连接是如何进入到连接状态呢,首先必须经历前面提到的广播阶段,主端通过扫描到从端的广播来发现这个设备,之后让主端发出连接请求来要求与从端建立连接,便可以进入到连接状态。由于蓝牙连接牵涉的点比较多,所以在这里就是简单的给出蓝牙连接简单模型!从通信模型上来看,BLE连接属于双向通信。较之广播而言,连接的过程则要复杂的多,但是没有关系,这些个复杂的交互过程在如今都已经被芯片供应商们都封装好了,我们需要做的,就是使用它并能够理解一个其中大概的原理就好了。最常用的蓝牙连接模型如下图所示,主端在发出数据后即会进入接收模式等待从端的数据,而从端则反之,这样就完成了一次或多次数据交换,这样一个过程称为一次连接事件connection event。

4a5194532e7d1b8c2e9be70623a3eb25.png

在完成一次连接事件之后即进入到休眠状态idle以节省功耗,在一段时间后双方同时唤醒再交换一次数据,这个时间间隔也称为连接间隔 connection interval。可以看到,因为只能在每一次蓝牙事件发生的时候才能够交互一次数据,所以蓝牙的通信速率实际上是取决于蓝牙连接间隔的长短,间隔越短,可以达到的通信速率也就越快。而当没有实际数据交互的时候,BLE底层也会通过发送空包交互的方式来维系蓝牙连接的存在,当有数据的时候再将数据加载进去即可。此外,蓝牙底层对于数据交互有着严苛的要求,比如当从端发送一包数据至主端后,它会等待主端的回复信息以确认数据已经发送成功,否则会持续发送直到连接断开为止。这个过程也是蓝牙协议底层在处理的,对于应用层来说这些问题都不用关心。除了连接间隔之外,还有两个参数需要关心。一个叫从机时延,从上图最开始可以看到在完成一次连接事件之后,从端进入休眠,并直接跳过了接下来的两次事件,然后再与主端交互一次。这样做,比较适合长时间连接并交互数据不多的设备,无疑更省电!另一个叫连接超时则很好理解,当通信双方从一次连接事件之后,持续一段时间没有交互数据并达到设定时间则会发生连接超时然后通信双方断开。

让每一个物体

有生命!

长按关注446c9a96687d4cd02bb45b326148fac2.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366518.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle GoldenGate OGG管理员手册(较早资料)

第一章 系统实现简述 前言编写本手册的目的是为系统管理员以及相关操作人员提供 Oracle Goldengat 软 件的日常维护和使用的技术参考; 3 ORACLE 第二章 OGG 日常维护操作指南 启动 Goldenagate用 oracle 用户登录生产数据库主机系统进入 OGG 安装目录/ggs&#xf…

华为服务器系统蓝屏,服务器主机蓝屏

服务器主机蓝屏 内容精选换一换云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号。您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移。服务器迁移的常见场景与常用的迁移方式请参考常见的服务器迁移场景。…

多对一映射、一对多映射

Emp员工表 Dept部门表 多对一映射 在查询时,需要获取两张以上关联表的数据,通过关联映射,可以由一个对象获取关联对象的信息,例如:查询一个Emp员工对象,可以 通过关联映射获取员工所在的部门Dept对象信息 …

基于注释的Spring MVC Web应用程序入门

这是使Maven启动Spring 3 MVC项目的最小方法。 首先创建spring-web-annotation/pom.xml文件&#xff0c;并包含Spring依赖项&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…

一道面试题目引发的思考

起因 多列布局是前端一个经典的反复被提及的面试题目&#xff0c;最典型的即两列&#xff0c;左列定宽菜单栏&#xff0c;右列变宽为内容区域。 通常得到的答案无外乎左列浮动定宽&#xff0c;然后右列或浮动&#xff0c;或设置外边距&#xff0c;或绝对定位等等。偶尔会有面试…

uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能

uniApp插件市场有很多友好的插件&#xff0c;今天举一个例子如上图所示&#xff0c;实现上拉刷新&#xff0c;下来加载&#xff0c;右上角点击弹出筛选框&#xff0c;只需要在插件市场搜索刷新选择你想要的效果(也可以下载后自己改动效果)点击导入插件&#xff0c;会自动打开项…

乐高无限的服务器怎么建,乐高无限悬空房子怎么建造 建造方法介绍

乐高无限悬空房子怎么建造?很多玩家对此还不是很清楚&#xff0c;下面给大家带来乐高无限悬空房子建造方法&#xff0c;还不知道怎么建造的朋友一起来看看吧!建造方法悬空房子非常容易搭建&#xff0c;如果我们想要将已经搭建的房子悬空&#xff0c;就只需要将建筑下方的土地挖…

Hibernate学习(一)

搭建环境 1、创建普通的Java工程 2、添加相应的jar包&#xff0c;下载链接&#xff1a;https://files.cnblogs.com/files/AmyZheng/required.rar 第一个实例 1、引用jar包 2、创建数据库和表 DROP TABLE IF EXISTS t_customer ;CREATE TABLE t_customer (id INT(5) PRIMARY KE…

使用Spring Webservices构建SOAP Webservices代理模块

前一段时间&#xff0c;我想看看使用Spring Web Services编写Web服务代理&#xff08;wsproxy&#xff09;有多么容易。 所以&#xff0c;我想我会在Github上分享结果。 可以随意使用它 &#xff08;Apache v2许可证&#xff09;或将其用作自己开发的基础。 本文的其余部分将解…

joc杂志影响因子2019_排名 ‖ 2019年中国体育学期刊影响因子

近日&#xff0c;由中国科学文献计量评价研究中心、清华大学图书馆研制&#xff0c;《中国学术期刊&#xff08;光盘版&#xff09;》电子杂志社有限公司出版的《中国学术期刊影响因子年报》&#xff08;2019版&#xff09;发布。该年报是中国科学文献计量评价研究中心自2002年…

Vue中的Js动画与Velocity.js 的结合

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的Js动画与Velocity.js的结合</title><script src"./vue.js"></script><script src"./velocity.min.js&quo…

服务器端如何开启GZIP压缩功能

我们知道做好负载均衡对网站的正常运行&#xff0c;用户体验相当重要。在负载均衡中有一个必须要做的事情就是给服务器开启GZIP压缩功能&#xff0c;对用户请求的页面进行压缩处理&#xff0c;以达到节省网络带宽&#xff0c;提高网站速度的作用。 GZIP是若干文件压缩程序的简…

在服务器中开虚拟机,可以在云服务器上开虚拟机

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器&#xff0c;帮助用户打造可靠、安全、灵活、高效的应用环境&#xff0c;确保服务持久稳定运行&#xff0c;提升运维效率三年低至5折&#xff0c;多种配置可选了解详情Linux云服…

Confluence 6 MySQL 3.x 字符集编码问题

MySQL 3.x is 已知在大写和小写转换的时候有些问题&#xff08;non-ASCII&#xff09;。 问题诊断 请按照 Troubleshooting Character Encodings 页面中的内容对问题进行诊断。如果大小写字符串编码诊断显示不同&#xff0c;那么有可能是你数据库导致的。一个错误的数据库大小写…

将社交登录添加到Spring MVC Web应用程序:配置

过去&#xff0c;用户使用用户名和密码组合登录。 尽管如今有些人仍然偏爱传统方式&#xff0c;但越来越多的用户希望使用其社交媒体帐户登录。 这就是使Spring Social&#xff08;及其子项目&#xff09;成为Spring项目组合有用的补充的原因。 但是&#xff0c;将Spring Soci…

[leetcode] 35. 搜索插入位置(Java)(二分)

35. 搜索插入位置 二分&#xff0c;太简单&#xff0c;没啥好说的 class Solution {public int searchInsert(int[] nums, int target) {if (nums.length 0) return 0;int i 0, j nums.length;int mid (i j) / 2;while (i < j) {if (nums[mid] target) {return mid;} …

UI设计中颜色的前进色与后退色

暖色调的颜色属于前进色。膨胀色可以使物体的视觉效果变大&#xff0c;而收缩色可以使物体的视觉效果变小。颜色的另外一种效果。有的颜色看起来向上凸出&#xff0c;而有的颜色看起来向下凹陷&#xff0c;其中显得凸出的颜色被称为前进色&#xff0c;而显得凹陷的颜色被称为后…

手型向下 点击一下 福昕_PPT多张缩略图点击放大展示

↑点击上方“菜鸟PPT”关注&#xff0c;教你玩转PPT&#xff01;多张图片单击放大展示&#xff0c;以前做过一个比较复杂的&#xff0c;在同一页PPT里面做&#xff0c;加了很多个“进入”和“退出”的动画&#xff0c;维护起来比较麻烦。今天&#xff0c;菜鸟菌跟大家一起来学习…

6个经典的JavaScript报错分析

代码报错是经常发生的一件事&#xff0c;我们要确定是什么原因造成的&#xff0c;以及如何避免错误。 1. Uncaught TypeError: Cannot read property 该错误说明没有某个属性&#xff0c;一般是该属性前面的值是undefined或者是null的情况会出现。 2. TypeError: ‘undefined…

编写自动调试器以在测试执行期间捕获异常

以前&#xff0c;我曾说过&#xff0c; 您总是想保留一些调试器断点作为例外 。 此帮助可防止代码在不引起注意的情况下腐烂掉-有时掩盖了另一个问题。 如果您认真对待这一点&#xff0c;则最好将此概念扩展到自动化测试中。 但是想出一个全面的解决方案并不简单。 您可以仅从…