[BLE] Heart Rate Protocol - Sensor

news2025/1/12 13:17:27

写在前面

目前我从网上找到的有关BLE心率协议的博文内容良莠不齐,很难让人根据文章内容来全面理解心率服务;此外SIG网站上有关心率服务的文档比较多,内容比较碎,需要读者从多个文档中将需要的内容拼接起来,因此写下这篇博文,相对全面地整理和总结BLE心率协议的相关内容,目的是让读者通过一篇博文就能够基于GATT写出一个心率服务的应用程序。


一、简介

Heart Rate Protocol(心率协议)是一种基于GATT的标准协议,心率收集设备可以通过心率协议从心率传感器收集设备。
在心率协议中,设备有两种角色:Collector和Sensor。Sensor可以测量心率并将数据发送给Collector;Collector可以从Sensor获取心率数据和其它数据。举例说明就是,通常在心率协议中,你的运动手环是Sensor,而你的手机是Collector。
如果要在Sensor设备上使用心率服务(Heart Rate Service),那设备还要同时支持Device Information Service,DIS中必须包含Manufacturer Name String这个characteristic。如果在Collector上使用心率服务,设备只需要支持Heart Rate Service即可。

二、服务配置

HRS

HRS包含以下characteristics:

Characteristics of Heart Rate Service

Heart Rate Measurement

Heart Rate Measurement characteristic被用于发送心率测量数据。它由4个字段组成:
Payload of Heart Rate Measurement

  • Flag:顾名思义,是一个标志位,占8个bits。其中每个bit都有自己的含义。
    • Heart Rate Value Format bit:这个bit用于声明发送的心率值的数据类型。虽然大部分人的心率都在255 BPM以下,但是心率服务具备支持更高心率值的能力;)。这个bit为0时,Heart Rate Value Format为uint8;为1时,Heart Rate Value Format为uint16;
    • Sensor Contact Detected bit:这个bit用于表示传感器是否探测到了接触,即用来表示传感器的佩戴状态。0表示未佩戴,1表示已佩戴;
    • Sensor Contact Supported bit:这个bit表示传感器是否支持接触探测功能,或者说是佩戴检测功能。0表示不支持,1表示支持;
    • Energy Expended Present bit:这个bit用于表示是否支持能量消耗数据,也就是日常消耗的热量数据。0表示不支持,1表示支持;
    • RR-Intervals Present bit:这个bit用于表示是否支持RR-Interval数据。RR-Interval是指心电数据中两个R峰之间的时间间隔。

Definition of RR-Intervals
Bit field of Flag

  • Heart Rate Measurement Value:心率测量值,单位为BPM;
  • Energy Expended:单位为kilo Joules,千焦耳。由于这个字段的最大值为65535,因此当值超过65535时,应当上传65535给Collector,这样Collector就知道数值已溢出,会重置数据;
  • RR-Interval:这个字段是个uint16数组,单位为1/1024秒。旧数据在前,新数据在后。

Body Sensor Location

顾名思义,这个characteristic表示传感器在身体上的佩戴位置,payload为8个bit,在一次连接中,这个characteristic的值应保持不变。
在这里插入图片描述

Heart Rate Control Point

这个characteristic用来重置上文提到的Energy Expended字段的值。Collector发送0x01时,可以重置。

三、UUID

  • Heart Rate Service:0x180D
  • Heart Rate Measurement Characteristic: 0x2A37
  • Body Sensor Location:0x2A38
  • Heart Rate Control Point:0x2A39

参考资料

Heart Rate Profile 1.0
Heart Rate Service 1.0
Assign Numbers
GATT Specification Supplement

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1641648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【动态规划】路径问题|不同路径I|不同路径II|珠宝的最高价值|下降路径的最小和|最小路径和|

一、不同路径I 62. 不同路径 - 力扣(LeetCode) 💡细节: 1.多开一行和一列(跟一维数组多开一个位置一样),这样方便初始化 2.状态转移方程:注意走一步并不是多一种走的路径&#xff0…

在编程的世界里,我相信每一行代码都是一次对未来的投资

😀前言 突然有感而发也是激励自己互勉 🏠个人主页:尘觉主页 文章目录 在编程的世界里,我相信每一行代码都是一次对未来的投资类似句子编程的本质代码的价值构建可持续的未来结语 在编程的世界里,我相信每一行代码都是一…

数据库基础--MySQL多表查询之外键约束

MySQL多表关系 一对一 顾名思义即一个对应一个的关系,例如身份证号对于每个人来说都是唯一的,即个人信息表与身份证号信息表是一对一的关系。车辆信息表与车牌信息表也是属于一对一的关系。 一对多 即一个表当中的一个字段信息,对应另一张…

【数据库原理及应用】期末复习汇总高校期末真题试卷02

试卷 一、填空题 数据库系统是指计算机系统中引入数据库后的系统,一般由数据库、________、应用系统、数据库管理员和用户构成。当数据库的存储结构发生了改变,由数据库管理员对________映象作相应改变,可以使________保持不变,…

vue快速入门(五十一)历史模式

注释很详细,直接上代码 上一篇 新增内容 历史模式配置方法 默认哈希模式,历史模式与哈希模式在表层的区别是是否有/#/ 其他差异暂不深究 源码 //导入所需模块 import Vue from "vue"; import VueRouter from "vue-router"; import m…

从零开始学AI绘画,万字Stable Diffusion终极教程(一)

【第1期】SD入门 2022年8月,一款叫Stable Diffusion的AI绘画软件开源发布,从此开启了AIGC在图像上的爆火发展时期 率先学会SD的人,已经挖掘出了越来越多AI绘画有趣的玩法 从开始的AI美女、线稿上色、真人漫改、头像壁纸 到后来的AI创意字、AI…

华为eNSP小型园区网络配置(上)

→跟着大佬学习的b站直通车← 目标1:dhcp分配ip地址 目标2:内网用户访问www.yzy.com sw1 # vlan batch 10 # interface Ethernet0/0/1port link-type accessport default vlan 10 # interface Ethernet0/0/2port link-type trunkport trunk allow-pass…

oracle pl/sql 如何让sql windows 显示行号

oracle pl/sql 如何让sql windows 显示行号 下载最新版的pl/sql第一步,在preferences中对sql Windows进行设置,如下所示第二步,在preferences中对User interface进行设置,如下所示结果如下当然,还可以通过右键选择是否…

iptables---防火墙

防火墙介绍 防火墙的作用可以理解为是一堵墙,是一个门,用于保护服务器安全的。 防火墙可以保护服务器的安全,还可以定义各种流量匹配的规则。 防火墙的作用 防火墙具有对服务器很好的保护作用,入侵者必须穿透防火墙的安全防护…

【大模型学习】私有大模型部署(基础知识)

私有大模型 优点 保护内部隐私 缺点 成本昂贵 难以共享 难以更新 大模型底座 基础知识点 知识库 知识库是什么? 知识库的作用是什么? 微调 增强大模型的推理能力 AI Agent 代理,与内部大模型进行交互 开源 and 闭源 是否可以查…

二叉树的实现(详解,数据结构)

目录 一,二叉树需要实现的功能 二,下面是各功能详解 0.思想: 1.创建二叉树结点: 2.通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树 3.二叉树销毁: 4.前序遍历: 5.中序遍历:…

QT5之布局操作

目录 实验之前的前提 局部布局和整体布局定义 快捷工具 水平和垂直布局 水平布局 在对象区域可以看出三个已经被水平布局在一起 在对象区域选中布局,点击工具取消当前布局 可以将两个小局部进行大局部布局 网格布局 弹簧布局 分割器布局 器件对齐边距 也…

Java Map集合(一)

1. Map接口 1.1 Map接口概述 Map接口是一种双列集合。Map的每个元素都包含一个键对象Key和一个值对象Value ,键对象和值对象之间存在对应关系,这种关系称为映射(Mapping)。 Map接口中的元素,可以通过 key 找到 value&…

STD10A230XCB电源模块STD05A230XCB整流模块介绍

STD10A230XCB电源模块STD05A230XCB整流模块介绍,直流屏电源模块STD05A230XCB,整流模块STD10A115XCB,STD20A115XCB,STD10A230X,STD05A230X,直流屏充电模块的关键词: 电力智能高频开关充电模块STD20A230XCB,高…

这是一个简单的照明材料网站,后续还会更新

1、首页效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>爱德照明网站首页</title><style>/*外部样式*/charset "utf-8";*{margin: 0;padding: 0;box-sizing: border-box;}a{text-dec…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…

遭遇“U盘只剩USBC乱码”危机?这里有你需要的解决方案!

当你满心期待地将U盘插入电脑&#xff0c;准备读取或传输文件时&#xff0c;突然发现U盘中的文件名全部变成了乱码&#xff0c;尤其是当这些乱码以“USBC”开头时&#xff0c;你可能会感到惊慌失措。这种情况不仅影响你的工作效率&#xff0c;还可能导致重要数据的丢失。那么&a…

一键解决!Microsoft VB/VC 微软常用运行库全版本整合包组件可选 v240329

01 软件介绍 众多程序的正常运行&#xff0c;依赖于微软的运行库。而运行库包括多种类型&#xff0c;如VB&#xff08;Visual Basic&#xff09;和VC&#xff08;Visual C&#xff09;&#xff0c;并且涵盖了不同的版本。鉴于此&#xff0c;整合版的运行库合集提供了一种高效的…

修改 Windows 服务器远程端口,以阿里云服务器 ECS 为例

一、WinR - mstsc.exe 登录远程服务器 二、WinR - regedit.exe 打开注册表 三、打开注册表 tcp 路径&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp 双击右侧 PortNumber 子健&#xff0c;勾选十进制&a…

每日一题(AL001):A+B Format--字符串处理

找输出的顺序很重要&#xff1a; #include<bits/stdc.h> using namespace std; int main(){int a,b;cin>>a>>b;int sumab;if(sum0) cout<<0;bool ftrue;vector<char> v;if(sum<0) {ffalse; sum-sum;}while(sum>0){char cstatic_cast<c…