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的区别和联系的更多相关文章

  1. Android BLE API: GATT Notification not received

    When setting the value to the descriptor instead of putting descriptor.setValue(BluetoothGattDescrip ...

  2. 四、BLE(中)

    1.1       GATT Manager GATT MGR模块管理所有的GATT服务,同时也是连接GATT模块与GATT ServiceS模块的桥梁. 1.1.1    主要功能模块 先来看一张该 ...

  3. [蓝牙] 5、Battery Service module

    Detailed Description This module implements the Battery Service with the Battery Level characteristi ...

  4. [蓝牙] 4、Heart Rate Service module

    Detailed Description Heart Rate Service module. This module implements the Heart Rate Service with t ...

  5. Bluetooth ATT介绍

    目录 1 介绍 2 详细内容 2.1 Attribute Type 2.2 Attribute Handle 2.3 Attribute Handle Grouping 2.4 Attribute V ...

  6. iOS 面试总结 一

    iOS 开发工程师之面试总结一 好久没有出去面试了,大概一年的时间都很稳定,最近出去面试感觉心里特别慌,没有了当时的勇气了,其实还是感觉自己的准备不是特别的充分,这是主要原因. 这段时间待得太安逸没了 ...

  7. 据说是百度ios面试题

    百度面试题:   一面:知识点 Objective C runtime library: Objective C的对象模型,Block的底层实现结构,消息发送,消息转发,内存管理 CoreData : ...

  8. ATT GATT Profile

    Bluetooth: ATT and GATT Bluetooth 4.0, which includes the Low Energy specification, brings two new c ...

  9. 百度ios 开发面试题

    百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...

  10. iOS面试3

    转:http://studentdeng.github.io/blog/2014/02/11/baidu-interview/ 百度面试 FEB 11TH, 2014 | COMMENTS 百度移动云 ...

随机推荐

  1. 进程锁(互斥锁)(Python)

    3:# 抢票示例 import json import time from multiprocessing import Process,Lock def search(i): with open(' ...

  2. Windows配置PHP的MongoDB扩展

    环境 Windows 10 PHP 5.6.40/8.1.11 配置 下载MongoDB扩展 下载地址:https://pecl.php.net/package/mongodb 下载PHP版本对应的扩 ...

  3. 解决:docker开启mongo镜像

    首先通过docker pull mongo拉取mongo镜像 (如果带版本,拉取为响应版本,若不带版本则拉取最新版本) 开启 mongodb 容器 可以选择将宿主机的mongo工作目录进行共享,作为d ...

  4. 编译Assimp时出现“warning C4819”的解决方案

      最近又重新捣鼓起了OpenGL, 使用Assimp库加载3D模型,最新(2023/12/9)的版本是5.3.1. 使用cmake编译本是一件简单的事情: cmake . cmake --build ...

  5. npm script 详解,tsc && electron . 直接编译后 运行,非常方便

    最终平时只需要用这个方法就可以了: tsc && electron . ======================================================== ...

  6. Flink CDC实时同步PG数据库到Kafka

    一.安装规划 操作系统 服务器IP 主机名 硬件配置 CentOS7.6 192.168.80.131 hadoop01 内存:2GB,CPU:2核,硬盘:100GB CentOS7.6 192.16 ...

  7. NC13611 树

    题目链接 题目 题目描述 shy有一颗树,树有n个结点.有k种不同颜色的染料给树染色.一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同.请统 ...

  8. STC8H8K64U 的 USB 功能测试(未成功)

    对 STC8H8K64U 的 USB 功能测试, 因为存在很多问题并且未能解释/解决, 就不写到系列里了, 把记录放上来抛砖引玉吧. 代码 测试代码下载地址 http://www.stcmcudata ...

  9. Laravel入坑指南(9)——数据迁移与填充

    当我们开发完成一个(小)项目,发布到线上时,我们需要将本地数据库迁移到服务器上,并且填充初始化数据.而Laravel框架规定了一套完善的数据迁移与填充机制. 在官网中分别介绍了以下四个命令: php ...

  10. mysql-数据类型,类型约束,联合唯一约束,表与表之间的关系,存储引擎---day36

    # ### char varchar(补充) char 字符长度 255个 varchar 字符长度 21845个 # ### part1 数据类型 -时间 date YYYY-MM-DD 年月日(结 ...