BLE之广播参数与广播间隔等说明_zhaoshuzhaoshu的博客-程序员秘密

技术标签: 参数  广播  BLE  Android & 蓝牙  

版权声明:本文为博主原创文章,转载请注明原文出处。 http://blog.csdn.net/zzfenglin/article/details/51165543


Advertising interval  (广播间隔)

     设备每次广播时,会在3个广播信道上发送相同的报文。这些报文被称为一个广播事件。除了定向报文以外,其他广播事件均可以选择“20ms 10.28s不等的间隔。通常,一个广播中的设备会每一秒广播一次。两个相邻广播事件之间的时间称为广播间隔。


     但是,设备周期性的发送广播会有一个问题:由于设备间的时钟会不同程度的漂移,两个设备可能在很长一段时间同时广播而造成干扰。为防止这一情况的发生,除定向广播之外的其他广播类型,发送时间均会被扰动。实现该扰动的方式为,在上一次广播事件后加入10ms的随机延时。这意味着,即使两个设备广播间隔相同,并在相同信道及时间点上发送造成了冲突,但它们发送下一个广播事件时也会有很大可能不再冲突。

所以,两个相邻的广播事件的之间的时间间隔(T_advEvent)为:


       T_AdvEvent = advInterval + advDelay


      其中,advInterval 必须是“0.625ms的整数倍,范围是“20ms 10.24s之间。对于可扫描非定向广播和不可连接非定向广播这两种广播类型,该值最好不小于100ms,即(1600.625ms)。advDelayLink Layer(链接层)分配的一个伪随机数,它的范围为“10ms

    其它,更加详细的内容,请参考如下网址:

http://blog.csdn.net/zzfenglin/article/details/51165543 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaoshuzhaoshu/article/details/79364159

智能推荐

Golang下mongoDB的自生_id和string的关系_一根烂笔头的博客-程序员秘密

关系直接了当的说,原生的_id 和 string 二者之间不能直接转换。非原生 _id 则因具体而定。 原因mongoDB 生成的 _id 是二进制数据;而不是 golang 的 string ;二进制转换成 string,必定输出乱码字符。如果写入DB时 _id 由用户生成,那么mongoDB保持原样写入DB,用户传入的类型是什么,此 _id 将是什么类型。DB不做任何修改。 m

突破 oppo等手机安装软件后通知权限默认关闭的问题_oppo手机通知使用权_吕晓刚的博客-程序员秘密

先说场景,公司在app上集成推送功能,可是在OPPO手机上一直接收不到推送消息,debug一下发现推送消息可以接受到但是没有吊起通知栏。去设置一看通知栏没给权限。又去oppo开放平台咨询,oppo官方回答如下咋办呢。。。。。。首先想到是不是和运行时权限一样,用到时申请一下呢,便尝试了以下方法。方案一:通过反射检查通知是否打开,没打开便去申请。 package com.ex...

VTK User’s Guide -11th edition 第03章-VTK系统概述(3)_ideallic的博客-程序员秘密

【本节对应原书中的第29页至第39页】3.2创建VTK应用程序本章内容包括利用Tcl,C++,Java和Python四种语言开发VTK应用程序的基本知识。阅读完引言后,你应该了解用你擅长的语言进行VTK开发的相关内容。为了指导你怎么去创建和运行一个简单的VTK程序,接下来内容都会针对不同的编程语言演示怎样使用Callback。用户事件、观察者以及命令模式Callback(又称用

Io 异常: The Network Adapter could not establish the connection 解决方法_陈老铁的博客-程序员秘密

1、IP错误:在设置URL时错误,例如:jdbc:oracle:thin:@192.168.1.80:1521:orcl数据库服务器是否正确:ping 服务器IP是否通畅。ping不通则将URL更改正确。端口号是否正确。进行一下操作:在DOS上键入sqlplus,检查oracle是否开启一切正常则执行下面第2步。2、防火墙如果机器上安装有放火墙,可能是服务器端口号屏蔽而造成的。关闭防火墙后,尝试...

仿射密码的加密解密_hongyaa’,使用仿射加密算法,那么加密的结果是?_当当和嘟嘟的博客-程序员秘密

仿射密码的加解密代码因为加密的为英文字母以及数字,所以模数选择26+10=36.再选一个k1为一个与36互素的数字.再任意选一个k2求除k1在模36下的逆元k3.(欧几里得除法,代码也可实现,这里没写,直接给出)加密为: c=(k1*m+k2)mod36解密为: m=((c-k2)*k3)mod36代码package com.jingfei.Encryptoin;import ...

Selector 实现原理_weixin_30433075的博客-程序员秘密

概述Selector是NIO中实现I/O多路复用的关键类。Selector实现了通过一个线程管理多个Channel,从而管理多个网络连接的目的。Channel代表这一个网络连接通道,我们可以将Channel注册到Selector中以实现Selector对其的管理。一个Channel可以注册到多个不同的Selector中。当Channel注册到Selector后会返回一个Select...

随便推点

iconmoon字体图标的使用方式_qq_39355295的博客-程序员秘密

在日常的前端开发中,我们会用到图标,但是如果想要方便的调节其颜色和大小又不方便,于是开始逐渐使用字体图标,保存格式为.svg格式,这样可以保持自己样式随着字体大小的改变时保证字体不失真。所以开始流行使用字体图标演示,下面是目前比较流行的两种方式:第一种:iconmoon 这是使用的外国的网站,所以网速比较慢:具体使用步骤:(1)打开网址:https://icomoon.io/#home(...

Unity 3D 文件加密下 AES的加密解密使用_暗光之痕的博客-程序员秘密

版本:unity 5.4.1  语言:C# 这本书有点蛋疼,说了配置文件的读取之后,他说了两种算法://OBFS 加密算法private static string OBFS(string str){ int length = str.Length; var array = new char[length]; for(int i = 0; i < array.Le

C语言单目运算符和双目运算符、三目运算符_这是很长很好的一生的博客-程序员秘密

C语言中运算符分为单目,双目和三目顾名思义,就是运算符的操作数的个数单目就是一个操作数,比如++,a++,操作数只有一个a双目就是两个操作数,最熟悉的就是+,a+b,计算a、b的和三目就是三个操作数,?:运算符,比如a?b:c,当a的值为真时,结果是b,否则结果是c。注意点:单目从右向左,双目从左向右自加自减注意事项(1)自加运算符“++”和自减运算符“--”的运算本身是一种赋值运算,其结果是使运算对象的值增1或减1。(2)++、--运算符是单目运算符,运算对象可以是整型变量或字符型变.

Node Java相互使用AES-128-GCM对数据进行加密解密实现_宋峥清的博客-程序员秘密

目录Node代码Java代码Node代码let crypto = require('crypto');//偏移量 16位const iv = "0123456789ABCDEF";//密钥const key = "0123456789ABCDEF";//加密function encodeAes(word) { if (!word) { return '' } if (typeof word != 'string') { word.

推荐文章

热门文章

相关标签