第14节_BLE协议ATT层
下面这个图是BLE协议各层跟医院的各个科室的类比图:
跟医院类比,ATT层就是化验室,通过它可以得到各种检查结果──属性。这些检查结果之间有什么联系,它们组合起来体现了什么,化验室是不知道的,这些得由上层来负责。
通过ATT层可以读写对端设备的属性,但是属性之间有什么联系、各个属性怎么组合起来提供服务,由上层GATT负责。
读写对端设备的属性,就是ATT的关键词。
一、属性(Attribute)
属性结构如下:
属性就是一个值,
有那么多属性,这是哪一个属性?用Handle来表示;
这个属性是什么类型?是心跳、还是电量?用UUID来表示。
UUID可以用16位、32位、128位来表示(在BLE中只使用16位或128位),有一个转换公式:
即把32位UUID的低96位去掉,就得到32位的UUID;如果32位UUID的高16位全是0,那么它的低16位就是“16位的UUID”:
UUID可以取蓝牙组织规定的值,也可以自己定义。这些规定的值可参考以下链接:
https://www.jianshu.com/p/08f76e4fd811 // 整理了所有的UUID,存为GATT_UUID.pdf
https://www.bluetooth.com/specifications/assigned-numbers/
https://www.bluetooth.com/specifications/assigned-numbers/service-discovery/
https://www.bluetooth.com/specifications/gatt/declarations/
二、属性的读写
ATT层负责去获得对端设备的属性,去读写对端设备的属性,如何读取对端设备的属性呢?有下面6中操作
ATT层涉及两个角色:client、server。server这边提供属性,client可以从server这边读写属性
三、ATT层的数据格式
ATT层构造好数据后,由下层的L2CAP发给对端设备。L2CAP层是收发室,它怎么知道这些数据是发给对端设备的ATT层?
对于ATT层的数据,L2CAP层会设置chinnel ID为4:
最新文章
- iOS相册中图片按照时间排序
- 解析json实例
- 支持DISTINCT的通用分页存储过程(SQL2005)
- MySQL innotop实时监测工具
- tomcat 设置session 时间
- hdu 4614 Vases and Flowers (二分 线段树)
- hdu 3790 (最短路径问题dijkstra)
- Guacamole 介绍
- LInux基础命令分类
- 使用simhash库来进行网页去重
- Python Tornado初学笔记之表单与模板(一)
- Everything at Once
- 在PHP中使用CURL,“撩”服务器只需几行
- JavaEE 之 文件上传
- 深拷贝 浅拷贝 python
- Java多线程系列4 线程交互(wait和notify方法)
- 用python读写excel的强大工具:openpyxl
- Atcoder Grand-014 Writeup
- jquery自动获取项目url路径
- USBDM BDM Interface for Freescale Microcontroller -- Hardware
热门文章
- 第一周-调用weka算法进行数据挖掘
- 2019 SDN上机第六次作业
- 在线程内关闭thread handle,导致server crash
- [LOJ 2134][UOJ 132][BZOJ 4200][NOI 2015]小园丁与老司机
- Chrome保存整个网页为图片
- ubuntu 16.04 上编译和安装C++机器学习工具包mlpack并编写mlpack-config.cmake | tutorial to compile and install mplack on ubuntu 16.04
- Mysql相关问题-----1045 Access denied for user 'root'@'localhost' (using password: YES)报错
- net core中引用GDAL
- C#通过PInvoke调用c++函数的备忘录
- List的Clear方法与RemoveAll方法用法小结