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

相关文章

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本