当前位置: 首页 > news >正文

蓝牙低功耗基3-蓝牙低功耗中的数据交4

概述在本课程中我们将更深入地探讨通用属性配置文件(GATT)及其底层属性协议(ATT)。我们将学习如何通过不同的GATT操作来在两个相互连接的蓝牙LE设备之间表示并交换数据。同时我们还将考察蓝牙LE中的重要概念如服务及特性。在本课的理论部分我们将深入探讨GATT和ATT、属性表结构以及可用于数据交换的GATT操作(如读取和写入)。我们将构建一个完整的蓝牙LE外围设备配置文件该配置文件同时使用标准及自定义蓝牙LE服务特征。在本课程的第1个练习中我们将学习如何从零开始构建LED按钮服务并着重于GATT的读写操作。第2个练习中我们将完成LBS服务并涵盖GATT的通知与指示功能。最后一个练习将涉及北欧UART服务(NUS)以及如何添加由标准蓝牙LE定义的服务。目标理解通用属性配置文件(GATT)和属性协议(ATT)的作用学习GATT如何用于在蓝牙LE连接中表示和交换数据检查蓝牙低功耗(BluetoothLE)外设设备的属性表掌握如何创建GATT服务和特征值了解nRF Connect SDK中可用的标准蓝牙LE服务通过动手练习创建和添加自定义及标准的BluetoothLE服务和特征值通过使用GATTAPI(读取、写入、无响应写入、通知、指示)进行实践练习GATT operations正如我们所看到的GATT层定义了由属性构成的服务和功能特性这些属性被存储在GATT服务器中。在本课程中我们将探讨蓝牙LE中的数据交换过程即指服务器与客户端之间为获取属性信息并依照属性权限规则交换其值而执行的操作。服务器既可以直接将数据发送给客户端也可以由客户端从服务器获取数据。然而为了让客户端知晓应向服务器提出何种请求它必须了解GATT服务器所提供的服务与特性。因此客户端需在连接初期进行服务发现操作以了解服务器所提供的服务与特性而后再执行任何旨在获取这些服务的操作。定义服务发现:GATT客户端在GATT服务器托管的属性表中发现服务和特征的过程。数据访问请记住这里的通信是基于一种客户机-服务器架构的。服务器持有数据既可以将其直接发送给客户端;也可以由客户端从服务器获取数据。因此GATT操作被划分为客户端发起的操作和服务器发起的操作。客户端发起的操作由客户端发起的操作属于GATT协议中的操作类型即客户端向GATT服务器请求数据。客户端可以请求读取或写入某个属性而在进行写入操作时客户端还可选择是否接收来自服务器的确认信息。我们将在本课的练习1中更详细地研究这些操作。Read如果客户端希望读取GATT服务器上某个属性中存储的特定值则客户端向服务器发送一个读取请求。服务器通过返回该属性的值来响应此请求。Write如果客户端希望将某个值写入某个属性它便会发送一个写入请求并同时提供与目标属性格式相匹配的数据。如果服务器接受这一写入操作便会以确认信息作为回应。Write without response如果此操作被启用客户端便可在无需等待服务器确认的情况下向某个属性写入数据。这是一种非确认性写入操作适用于需要快速数据交换的场景。Server-initiated operationsGATT操作的另一种类型是服务器发起的操作即服务器直接向客户端发送信息而无需首先接收请求。在此情况下服务器可以采取通知或提示的方式。我们将在本课的练习2中更详细地探讨服务器发起的操作。Notify通知操作被服务器用于自动将某个属性的值推送给客户端而无需客户端主动请求。例如这可用于向客户端更新最近已发生变化的某个传感器读数信息。通知不需要客户端的确认回复。Indicate与“通知”操作类似“指示”功能也会直接将属性值推送至客户端。但在此情况下需要得到客户端的确认。由于存在确认要求因此每个连接时段内你只能发送一次“指示”消息这意味着“指示”的发送速度比通知”要慢尽管这些操作是由服务器发起的但客户端必须首先通过订阅该特性并启用通知或指示功能来使其生效。这一点将在后续主题中进一步阐述届时我们将讨论客户端特性配置描述符的相关内容。Services and characteristics正如在前述主题中讨论到的那样ATT层定义了属性以及数据如何在客户端和服务器之间进行暴露的方式。因此GATT的主要功能之一便是对存储在GATT服务器中的属性进行层级结构化的处理将其转化为标准化的实体(服务项和特性)从而在不同蓝牙LE设备之间实现无缝的互操作性。AttributesATT层定义了数据在服务器数据库中如何被存储和访问的方式。数据以被称为属性(Attributes)的数据结构形式进行存储。属性是ATT和GATT层所共同依赖的核心数据单元。属性既包含用户数据也包含描述属性本身、其类型、安全权限等元数据。发生在ATT服务器与客户端之间或GATT服务器与客户端之间的数据交换均以属性的形式进行。当仅讨论属性时它们通常被表述为存储在ATT服务器中。然而正如我们将在本课程中进一步探讨的那样当我们开始将属性分类为服务特征时我们便将这种数据结构称为GATT服务器一个属性由4个数据块组成:Handle::由栈分配的用于标识属性表中特定属性的一项16位唯一索引。属性可通过其处理项进行寻址。可以将其视为属性表中的行号尽管处理项并不一定具有顺序性。Type (UUID):通用唯一标识符(UUID)它表明了属性的类型。例如如果该属性声明了一项特性那么这一信息将反映在其类型字段中因为该字段将包含一个专门用于表示声明一项特性的UUID。Permissions:处理该属性所需的保护级别(加密和/或授权)并注明其是否为可读和/或可写Value:实际用户数据(例如传感器读数)被存储在属性中。此字段可接受任何数据类型。它能够容纳心率监测器值(每分钟心跳数)、温度读数甚至字符串等信息。它还可以存储关于另一个属性的信息(元数据)正如本课程稍后将要讲解的那样。Universally unique ID (UUID)UUID是你在蓝牙低功耗(BluetoothLE)世界中会经常看到的一个缩写。它是一个用于标识属性并告诉我们其重要性的唯一编号。UUID有两种类型
http://www.gsyq.cn/news/1373541.html

相关文章:

  • 保姆级教程:在Ubuntu 18.04上用RTX 3060复现ICCV 2021的PMF点云分割模型
  • OpenSUSE 15.6操作系统在VMware Workstation中安装配置
  • Windows电脑C盘告急?手把手教你将Ollama模型安装到其他盘符(附环境变量配置详解)
  • 2026年Q2浙江防水堵漏怎么选:嘉善防水补漏公司/桐乡防水补漏公司/海宁防水补漏公司/海盐防水补漏公司/防水补漏工程/选择指南 - 优质品牌商家
  • 2026抖店转让优质平台推荐指南:天猫店铺转让的正规平台、抖店转让平台哪家口碑最好、正规的跨境网店转让平台、淘宝店铺转让平台有哪些选择指南 - 优质品牌商家
  • AI与精益创业结合驱动产品创新的方法论
  • Keil RTX5迁移调试问题与RTOS组件使用指南
  • 保姆级避坑指南:在Ubuntu 20.04上从零部署OpenPCDet+PointPillars到ROS(含TensorRT 8.5加速)
  • 避坑指南:麒麟系统安装.NET Core SDK和Avalonia UI的常见错误与解决
  • 2026年5月新消息:果筐机厂家综合实力盘点,宁波华维机械为何值得关注? - 2026年企业推荐榜
  • 别再手动开终端了!用这个Shell脚本,5分钟搞定Ubuntu 22.04的个性化工作区
  • 除了Ctrl+Alt+A,国产系统(UOS/麒麟/NFS)还有哪些隐藏的截图姿势?
  • Windows Server 2019/2022部署Filebrowser踩坑实录:从下载到NSSM服务化,一篇讲透所有配置细节
  • 计算机工程投稿经历(2026年5月份录用)
  • 2026提升营销业务能力的关键方法:从“流量操盘手”进阶为“数据增长官”
  • CAXA 查找替换
  • https://pypi.tuna.tsinghua.edu.cn/simple/
  • 2026年,如何精准追踪品牌在AI搜索中的声量波动?
  • 拯救你的FeaturePlot:一招让阳性表达细胞点‘浮’到最前面的排序技巧
  • 2026优质光敏三极管厂家推荐榜单:红外线接收头/红外线发射管/光敏三极管/贴片式红外线接收器/红外线接收器/选择指南 - 优质品牌商家
  • 离线能用吗?语音输入准不准?多任务切换卡不卡?ChatGPT移动端真实体验全拆解,拒绝厂商话术
  • Postgresql基础实践教程(六)
  • Claude Code × 开发者范式变革
  • 将代理与决策相连接 Connecting Agents to Decisions —— The Palantir Ontology
  • 成都热轧H型钢今日报价 实时钢材行情走势现货价格查询首选盛世钢联 - 四川盛世钢联营销中心
  • Arm A-profile架构扩展:特性解析与应用实践
  • 2026西南排气道漏烟治理标杆名录:卫生间串味漏烟、卫生间漏烟、厨房串味漏烟、外墙装饰线条、客厅漏烟、工程定制线条选择指南 - 优质品牌商家
  • 从临床医疗说起:当一种科学理论走到边界的时候
  • 2026最新免费图片去水印保姆级教程!这5种方法一次学会,第三种零门槛秒出图
  • 物理生物学研究报告【20260015】