ble的notification和indication的区别和联系
Ble服务端传输消息有两个常用手段,notification和indication。那么这两者之间有什么区别呢?
Notification 不需要应答,所以服务端发送的消息,它自己并不知道消息是否发送成功。
Indication 需要客户端应答,每次服务端发送完数据都需要客户端发送应答消息。其中有一点很重要,如果你发送的
indication客户端没有应答,你是不能再次发送indication的
需要注意的是,服务端一开始是无法直接发送Indication和Notification。首先必须是客户端通过往服务端的CCCD特征(clinet characteristic configuration descriptor)
写入值来使能服务端的这两个功能Notification/Indication,这样服务端才能发送。这也是为什么我们在看服务端的profile时候是有cccd特征的原因。
总结一下,Notification是一种不可靠传输,indication则是可靠传输。但是可靠传输意味着传输数据的速率降低,开发ble程序如果对数据可靠性要求不是很高的情况下就使用Notification吧。
参考信息:
1 https://www.nxpic.org.cn/module/forum/thread-622329-1-1.html
ble的notification和indication的区别和联系的更多相关文章
- Android BLE API: GATT Notification not received
When setting the value to the descriptor instead of putting descriptor.setValue(BluetoothGattDescrip ...
- 四、BLE(中)
1.1 GATT Manager GATT MGR模块管理所有的GATT服务,同时也是连接GATT模块与GATT ServiceS模块的桥梁. 1.1.1 主要功能模块 先来看一张该 ...
- [蓝牙] 5、Battery Service module
Detailed Description This module implements the Battery Service with the Battery Level characteristi ...
- [蓝牙] 4、Heart Rate Service module
Detailed Description Heart Rate Service module. This module implements the Heart Rate Service with t ...
- Bluetooth ATT介绍
目录 1 介绍 2 详细内容 2.1 Attribute Type 2.2 Attribute Handle 2.3 Attribute Handle Grouping 2.4 Attribute V ...
- iOS 面试总结 一
iOS 开发工程师之面试总结一 好久没有出去面试了,大概一年的时间都很稳定,最近出去面试感觉心里特别慌,没有了当时的勇气了,其实还是感觉自己的准备不是特别的充分,这是主要原因. 这段时间待得太安逸没了 ...
- 据说是百度ios面试题
百度面试题: 一面:知识点 Objective C runtime library: Objective C的对象模型,Block的底层实现结构,消息发送,消息转发,内存管理 CoreData : ...
- ATT GATT Profile
Bluetooth: ATT and GATT Bluetooth 4.0, which includes the Low Energy specification, brings two new c ...
- 百度ios 开发面试题
百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...
- iOS面试3
转:http://studentdeng.github.io/blog/2014/02/11/baidu-interview/ 百度面试 FEB 11TH, 2014 | COMMENTS 百度移动云 ...
随机推荐
- 【奶奶看了也不会】AI绘画 Mac安装stable-diffusion-webui绘制AI妹子保姆级教程
1.作品图 2.准备工作 目前网上能搜到的stable-diffusion-webui的安装教程都是Window和Mac M1芯片的,而对于因特尔芯片的文章少之又少,这就导致我们还在用老Intel 芯 ...
- 小知识:enable_ddl_logging参数的设置和日志位置变化
业务部门需求,要协助客户DBA查truncate操作历史执行情况. 首先确认数据库已开启enable_ddl_logging, 然后从alert中查找没有记录: 之前11g版本都是记录到alert日志 ...
- 图解3种常见的深度学习网络结构:FC、CNN、RNN
01 全连接网络结构 全连接(FC)网络结构是最基本的神经网络/深度神经网络层,全连接层的每一个节点都与上一层的所有节点相连. 全连接层在早期主要用于对提取的特征进行分类,然而由于全连接层所有的输出与 ...
- Android架构组件LiveData
LiveData LiveData是基于观察者模式创建的,其中,LiveData是被观察者,观察者通过注册方法,监听被观察者的数据变化.LiveData在数据发生变化的时候,会通知观察者. LiveD ...
- 深入 Nginx 之架构篇[转]
前言 最近在读 Nginx 相关的书籍,做一下读书笔记. Nginx 作为业界知名的高性能服务器,被广泛的应用.它的高性能正是由于其优秀的架构设计,其架构主要包括这几点:模块化设计.事件驱动架构.请求 ...
- CF-928(已更新:B C E)
CF-928 排名四千多,目前为止排名最高的一场~ E题我赛时基本上是猜的结论(但是也推了快一小时才想到有这个可能性),因此目前只能放个码在这(⊙﹏⊙) D的话问了学长思路,正在补了0-^-0 --但 ...
- 【framework】Activity启动流程
1 前言 ATMS启动流程 介绍了 ActivityTaskManagerService(ATMS)的启动和初始化流程,本文将介绍 Activity 的启动流程.由于 Activity 启动流程复杂, ...
- Js实用小技巧
Js实用小技巧 这是一份Js实用小技巧,也可以是一份Js挨打小技巧,下面的一系列操作虽然能够在一定程度上使代码更加简洁,但是在缺少注释的情况下会降低可读性,所以需要谨慎使用这些黑魔法. 位元算 取整 ...
- mc命令
mc命令 mc是一个基于字符的目录浏览器和文件管理器,其将熟悉的图形文件管理器和常见的命令行工具联系在一起,mc的设计基于文件管理器中双目录窗格的设计,其中同时显示两个目录的列表,可以执行所有常见的文 ...
- zabbix-server.service failed解决方法
1.问题描述 centos7中安装的zabbix server在重启系统后无法启动了,查看状态报错如下: 2.问题原因 selinux没有关闭! 3.解决 永久关闭selinux, 将SELINUX值 ...