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

相关文章

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口