nrf51822蓝牙笔记之GAP(通用属性配置文件)解读

2023-12-20 02:58

本文主要是介绍nrf51822蓝牙笔记之GAP(通用属性配置文件)解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该说明书定义了通用属性配置文件,该文件描述了一个使用属性协议的 一个服务框架,该服务框架用来在一对设备间发现服务,读写特征值。

1 介绍
1.1 作用域
通用属性配置文件定义了一个使用属性协议的服务框架,该框架定义了一个服务的流程、格式和它的特性.流程的定义包括发现,读写,通知和指示特性.

2 配置文件概观
通用属性配置文件被应用和其他的配置文件调用,所以客户端才能通过服务传递信息.每个服务包含了许多属性,通用属性配置文件定义了怎样使用属性协议层去发现,读写,并且获得这些属性的标志,就像配置广播的属性.

2.1 协议栈

图2.1展示了被这个配置文件是使用的对等协议

图2.1展示了被这个配置文件是使用的对等协议

2.2 配置和角色
执行这个配置文件的设备可以被定义为客户端和服务器端.
客户端---能够向服务器端发送命令和请求,并且能够接收服务器端发送的应答,指示和通知.
服务器端---与客户端功能相对.

2.3 属性协议
通用属性配置文件需要执行属性协议和属性操作码.

2.3.1 概观
通用属性配置文件使用属性协议来以命令,请求,应答,指示,通知和验证的形式来传递数据。

在一个协议数据单元中,包含以下数据。

操作码包含指定的命令,请求,应答,指示,通知或者验证码和身份鉴别标志.属性参数中包含了命令,请求的数据或者从指示,通知,应答用返回的数据。

属性协议的命令和请求的值存储在服务器端设备的属性中.一个属性由四部分组成,属性句柄,属性类型,属性值,和属性权限。

属性句柄是一个特定属性的索引.
属性类型是一个描述属性值的UUID.
属性值是被属性类型描述和被属性句柄索引的数据.
属性权限是不能通过属性协议读写的部分属性.它被用来定义给定的属性是否具有读写权限.

2.4 通用属性配置文件层级
2.4.1 概观
协议栈的最高层是配置文件,配置文件包含了填充使用案例的一个或多个服务.每一个服务包含许多的特性和其他服务的调用.每一个特性包含一个值并且可能包含该值的可选择信息.服务、特征值、和特征值包含的内容,这些东西包含的数据全部被存储在服务器的属性中。

2.4.2 服务
服务是数据和相关行为的集合(完成特定的功能).在GATT中,服务被服务定义所定义。一个服务定义包含关联服务,强制特性和可选特性。服务或特性中的定义或声明都是由属性完成的。

2.4.3 特性
特征是一个用来描述服务属性和值是如何访问的配置信息和的值是怎样被显示和代表的.在GATT中,a characteristic is defined by its characteristicdefinition. A characteristic definition contains a characteristic declaration,characteristic properties, and a value and may contain descriptors thatdescribe the value or permit configuration of the server with respect to thecharacteristic.

2.5 广播配置
对于LE物理连接,广播配置是当服务器端处于广播模式进程是,客户端向服务器端指示哪个特性值会被在广告数据中别广播的一种方法.

3 服务互操作性需求

3.1 服务定义
一个服务定义必须包含服务的声明,可能包含includedefinitions和特性定义.
服务的声明是一个具有根据<>或者<>中特定属性了类型的属性.

3.2 包含定义
包含定义必须包含一个仅有的包含声明
包含声明是一个具有根据<>中特定属性类型的属性.

3.3 特性定义
特性定义必须包含一个特性声明,一个特性值声明,可能包含特性描述符声明.
以上的声明被包含在独立的属性中.特性值的声明必须紧跟在特性的声明后面.

3.3.1特性声明
特性声明是一个具有根据<>中特定属性类型的属性.

 特性声明中的属性值是只读的

特性声明中的属性值是只读的


一个服务可以有多重的特性定义以相同的特征UUID.

在一个服务定义里面,一些特性是强制的,并且这些特性必须位于任一个可选特性之前,位于包含特性之后.

3.3.1.1 特性性能
特性性能位字段定义了特性值是怎样被使用的,或者特性描述符是怎样被获取的.如过下列表中的一些位被置位,描述的行为将会被允许.

3.3.1.2 特性值属性句柄
特性值属性句柄字段包含了特性值的属性的属性句柄.

3.3.1.3 特性UUID
特性UUID是一个16位或者128位的蓝牙UUID,用来描述特性值的类型.

3.3.2 特性值声明
特性值声明包含了这个特性的值,它是特性声明后的第一个属性.

3.3.3 特性描述符声明
特性描述符用来包含特性值的相关信息.
每一个特性描述符都被一个特性描述符UUID定义.

3.4 通用属性配置文件属性类型概要

4 功能要求
每一个功能都被映射到一个进程或者副进程,这些进程和副进程描述属性协议是怎样被使用来完成这些功能的.

4.1 功能支持和进程映射
下表描述了功能和进程的映射关系,并且描述了进程是可选的还是强制的.


这篇关于nrf51822蓝牙笔记之GAP(通用属性配置文件)解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514568

相关文章

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核