这篇总结下BLE中GATT相关内容。

在学习了刘权的《BLE4.0 低功耗蓝牙协议总结》一书后,对GATT有了一定了解,这里也对作者提供这么好的讲解表示感谢,下面截图均从书中摘取,如有侵权,请联系我删除,这里写下我的读书笔记。

首先介绍下下面几个名称

  • 属性 Attribute
    规定数据按照一定规则存放,这个规则就是属性。

  • 配置文件Profile
    这就是文件,SIG定义了一些profile,按照我理解就是否个应用场景的描述,比如心率计要有哪些服务、哪些特性、哪些描述符等

  • GATT
    是一个数据库,里面存放着各种数据

  • ATT
    属性协议,规定属性该怎么访问、运输,也就是怎么访问GATT中的数据。

上面和在一起就是GATT数据库中杂乱无章的数据根据属性按照规则排列,ATT就是规定了怎么访问传输这些数据,这些数据就是共同来反映profile这个文件描述某个场景下所有需要的数据。

下面详细说:

  • 属性

    上图就是规定了GATT中的数据要按照上图规则来存放数据。

    1.属性句柄(Attribute Handle)
    通过他可以找到对应属性,并用于区分不同服务中的相同属性。我理解类似是数组下标。

    2.属性类型(Attribute Type)
    是对某个东西取一个数字代号(用uuid来代号),比如心率计,SIG就是用0x180D这个uuid来表示这个这条属性是和心率计有关SIG将uuid进行了范围规定,下面这些uuid都来标识属性类型

    • 0x1800~0x26FF 用于服务类 UUID
    • 0x2700~0x27FF 用于标识计量单位
    • 0x2800~0x28FF 用于区分属性类型
    • 0x2900~0x29FF 用于特性描述
    • 0x2A00~0x7FFF 用于区分特性类型

    3.属性值(Attribute Value)
    属性值是一个 0~512 字节的数据,属性值是给上层应用层使用的,是用户“真正”要使用的数据,属性值可以有一下几类

    • 服务通用唯一识别码(UUID)
    • 单位
    • 属性类型
    • 特性描述符
    • 特性类型

    4.属性许可(Attribute Permissions)
    属性许可是仅仅是对属性值的一种保护,对句柄和类型没作用。

下面这个心率属性数据库是从作者书中截图出来的,我很好说明的其中的关系

2个椭圆是服务中的特性 characteristic,2个椭圆下面是服务中的描述符,这些描述符是对特性的补充说明。可以看出截图部分有3个服务(后面还有一个)0x2800就是标识这一个服务的开始。这么多服务就组成了profile
下面这张图也是在说明这种关系

而下面这张图是把上面图丰富下

BLE中GATT理解相关推荐

  1. BLE中GATT介绍

    本文转载自博客园 1 简介 GATT(Generic Attribute Profile),描述了一种使用ATT的服务框架 该框架定义了服务(Server)和服务属性(characteristic)的 ...

  2. 低功耗蓝牙BLE对应Gatt的UUID

    参考http://blog.csdn.net/zhangjs0322/article/details/39048939  参考http://code.taobao.org/p/watch_demo/d ...

  3. 在实践中深入理解IP协议

    本文为我个人计划撰写的博客专题<在实践中深入理解常见网络协议>中关于IP协议的一篇,有兴趣的朋友可以继续关注我的博客,我将会陆续撰写各种协议的实践分析文章. TCP/IP协议栈其实当然不止 ...

  4. 【BLE】BLE中常用的UUID(标准)

    转发自 https://www.cnblogs.com/bulazhang/p/8450172.html 蓝牙低功耗BLE开发,无论是MCU端还是Android等APP端,都会涉及到一堆的UUID,对 ...

  5. 博客专题计划:《在实践中深入理解常见网络协议》

    为什么要写这个系列的技术博文: 距离学习CCIE的课程已经有近一年的时间,虽然这一年来已经丢下了挺多关于路由交换技术的知识,不过随着这一年时间以来通过对Linux和Python的学习研究和学校相关课程 ...

  6. 干货!任务型对话中语言理解的鲁棒性测试 |清华刘劼西

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 本期AI TIME PhD直播间,我们邀请到了清华大学计算机科学与技术系的硕士生--刘劼西,带来分享--<任务型对话中语言理解的鲁 ...

  7. IOC在墨者革离中的理解

    IOC在墨者革离中的理解 实现墨者革离场景 首先是实现MoAttack public class MoAttack{public void cityGateAsk(){//让演员进场LiuDeHua ...

  8. Android 设计模式之MVC,从一个实例中来理解MVC

    前言 已经有几天没有写过帖子了,主要前一段时间在忙公司的项目,现在闲下来想看一下其他的东西,然后从公司的iOS大神那里了解到了苹果的设计模式是MVC,于是想着自己也来写一下Android这边的MVC. ...

  9. 认知BLE中多个MAC地址类型:Public Device Address、Random Device Address、Non-resolvable Private Address

    1. 前言 BLE设备有多种类型的设备地址,如Public Device Address.Random Device Address.Static Device Address.Private Dev ...

最新文章

  1. Html5之基础-7 HTML列表
  2. elasticsearch 2.2+ index.codec: best_compression启用压缩
  3. UVA 10594 Data Flow
  4. CenterOS6.5 + OneinStack + Moodel3.23
  5. 【kaggle入门题一】Titanic: Machine Learning from Disaster
  6. Spring中,使用工具类无法自动注入service
  7. 一些弹出框的用法例子(二)
  8. rdlc 固定前两列每页都显示_现在的大学生,都不会论文排版了
  9. [SPOJGCJ1C09C] Bribe the Prisoners
  10. 微软发布Visual Studio Mac预览版
  11. PHP 5.3.0以上推荐使用mysqlnd驱动
  12. Android 程序调试
  13. 拓端tecdat|Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化
  14. k8s中资源对象单数、复数、简写的区别
  15. android 入门-git之上传本地代码到github
  16. 【应用案例】CANape支持基于模型的ECU开发
  17. 转载 Ubuntu系统安装Java JDK和HDFView
  18. 【防火墙篇】01. 恢复出厂设置 ❀ Juniper 防火墙
  19. 机器学习-胯下运球之Naive Bayes<朴素贝叶斯法>
  20. 【DKN】(五)attention.py

热门文章

  1. 安装黑群晖找不到局域网电脑_UNRAID 、黑群晖、 穿越派 私有云部署测试
  2. AI+BI,悬在云上的梦想,难以落地的应用
  3. 推荐一个基于 SpringCloud 设计精良的网上商城
  4. 神经网络文本分类技术实践总结
  5. gitlab安装教程、gitlab官网、英文文档
  6. flutter 相机加入mask(遮罩层)
  7. 李云赫天津大学计算机,祝贺创业谷涌现全国自强之星,同济创业谷,陪伴这个世上最有梦想的人...
  8. Winform Panel设置颜色、宽度
  9. 删除word标题前方空格的方法
  10. yaourt 查询时Segmentation fault package-query问题解决