Notify 与 Indicate的区别
根据TI BLE1.4.0的介绍,Indicate是有ACK的。
Q1:那么如果我用Notify,是否可能会丢数据呢?
比如我用一个charisticrist 连续notify100个数据,中间是否有可能丢数据?
我实验了很多次,也没有发现有丢数据。
Q2:Indicate怎么使用呢?我看了thermometer的例子,但是感觉他仅仅是在定义
static gattAttribute_t thermometerAttrTbl[] = 时,用了GATT_PROP_INDICATE属性。
但在实际发送时,仍然用的是GATT_Notification啊
Feng Xu3,
Q1:BLE是可以基于link layer层保证空中数据不丢失的,notification和indication都是基于GATT的,取决于你在应用层如何对这些数据处理,如果你对notification的数据处理不及时,是会被后续数据冲击丢失的。
Q2:indication 用的是GATT_Indication().
Hi Y,
非常感谢你的回答。
就是说,使用notify,BLE的link layer本身会保证数据不会丢失,但是在central节点,数据如果不被及时读走,会被冲掉?
我不知道如果我用Notify方式的话,APP那端能不能够及时读走数据,这要如何确定呢?
还是说只有使用indication才能够保证不丢数据?
另外,如果使用read的方式,数据传输速度能够比notify高吗?
谢谢!
Frank
Feng Xu3,
这个完全取决于你发Notification的速度和APP那端的处理方法,两边都是你自己控制的,问题应该不大。
read的方式应该速度比Notification要低。
Hi Y,
那么Indicate与Notify相比,如果APP那端能及时处理,是否Indicate能达到与Notify同样的速率?
谢谢!
Frank
回复 Feng Xu3:
Feng Xu3,
这是个好问题。
这么说吧,如果在连接参数相同的情况下(主要指connection interval),并且APP处理得当,那肯定是Notification快,因为indication要等回复才能发下一个包。
Hi Yan,
请问您说的indication等回复才能发下一个包,是指link layer前一个packet已经发送成功了的前提下,也不会再发下一个packet,而是要等主机端对数据进行应用层的逻辑处理完成,并得到主机端的反馈后才发下一个packet,我理解的意思对吗?
如果对的话,那么write with response是不是也可以同理的反向理解。
我个性签名档的博客地址,《CC2541之notify》、《CC2541之indicate》。
1、博客:http://blog.csdn.net/feilusia
2、香瓜BLE之CC2541:127442605
3、香瓜BLE之CC2640R2F:557278427
4、香瓜单片机之职场交流:450154342
5、《简单粗暴学蓝牙5》下载地址:https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
Notify 与 Indicate的区别相关推荐
- Java中notify和notifyAll的区别 - 何时以及如何使用
Java notify vs notifyAll notify和notifyAll方法之间有什么区别是棘手的Java问题之一! Condition 是个什么玩意? 提几个问题,从问题中去了解去学 ...
- notify 和 notifyAll的区别
6.notify 和 notifyAll的区别 notify方法只唤醒一个等待(对象的)线程并使该线程开始执行.所以如果有多个线程等待一个对象,这个方法只会唤醒其中一个线程,选择哪个线程取决于操作系统 ...
- Notify与notifyall的区别
Notify与notifyall的区别 notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,他们就会去竞争. notify则文 ...
- Java中notify() 和 notifyAll()的区别
等待池:假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁后,进入到了该对象的等待池,等待池中的线程不会去竞争该对象的锁. 锁池:只有获取了对象的锁,线程才能执行对象的 sync ...
- notify和notifyAll的区别,notify死锁问题
具体讲解参照博客区别 下面补充一个例子,来说明,使用notify会产生死锁,但是使用notifyAll不会. 原题为lleetcode 1195 大体意思是:四个线程,调用同一个对象的四个不同方法,然 ...
- notify()和notifyAll()的区别
1.notify()只能唤醒一个wait()线程,然而notifyAll()可以唤醒多个wait()线程: 2.两个都必须在synchronized中使用,过程不释放锁: 3.当每个线程都有特定锁的时 ...
- Java多线程——notify()与notifyAll()的区别
notify(): 唤醒在此对象监视器上等待的单个线程.如果所有线程都在此对象上等待,则会选择唤醒其中一个线程.选择是任意性的,并在对实现做出决定时发生.线程通过调用其中一个 wait 方法,在对象的 ...
- java notify什么意思_Java notify和notifyAll的区别和相同
经常在往上逛,关于在java中notify和notifyAll,经常有人有以下的说法: notify只会通知一个在等待的对象,而notifyAll会通知所有在等待的对象,并且所有对象都会继续运行 并且 ...
- Java并发编程—notify和notifyAll有什么区别?
原文作者:知乎用户 原文地址:https://www.zhihu.com/question/37601861/answer/145545371 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
最新文章
- 阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)...
- 【Spring源码分析系列】bean的加载
- 希尔排序c语言,希尔排序(C/C++实现)
- 配置kali linux
- 数据结构之自建算法库——链栈
- Springsecurity搭建自定义登录页面
- android服务的应用,Android学习指南之十四:Service详解及应用实例
- 重装xp后恢复wubi安装的ubuntu
- NYOJ2-括号配对问题
- 【优化算法】杂草优化算法(IWO)【含Matlab源码 1076期】
- [转载]辐射定标、辐射校正、几何校正的区别
- 营业执照生成_0跑动,3步注册,48小时拿证!金山发出首张全程电子化登记营业执照!...
- 小米max刷鸿蒙,小米Max刷recovery教程 小米Max第三方recovery下载
- 内网渗透思路学习——靶场实战——暗月项目七
- MongoDB应用记录
- 更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是等比例缩放...
- 我们都希望有一部属于自己的电脑。
- 在天翼网关2.0上如何使用自己的路由器
- 基于机器学习的天气数据分析与预测系统
- Quorum NWR