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

相关文章

python3 gunicorn配置文件的用法解读

《python3gunicorn配置文件的用法解读》:本文主要介绍python3gunicorn配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python3 gunicorn配置文件配置文件服务启动、重启、关闭启动重启关闭总结python3 gun

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

SpringBoot3使用Jasypt实现加密配置文件

《SpringBoot3使用Jasypt实现加密配置文件》这篇文章主要为大家详细介绍了SpringBoot3如何使用Jasypt实现加密配置文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... 目录一. 使用步骤1. 添加依赖2.配置加密密码3. 加密敏感信息4. 将加密信息存储到配置文件中5