蓝牙Mesh中的Heartbeat和Heartbeat Publication

2023-11-10

Heartbeat:

在蓝牙Mesh网络中,Heartbeat(心跳)是一种用于监测设备在线状态和网络连通性的机制。它是由每个设备定期发送的小型消息组成,用于指示设备的存在和活动状态。

Heartbeat的主要目的是确保网络中的设备处于活动状态,并为网络管理提供一些重要的信息。以下是一些关键特点和作用:

  • 在线状态检测:通过发送心跳消息,设备可以告知其他设备它们的存在和活动状态。其他设备可以根据接收到的心跳消息来了解设备的在线状态,以便进行必要的操作或通信。

  • 网络连通性监测:心跳消息还可以用于检测设备之间的网络连通性。设备可以根据是否收到其他设备的心跳消息来判断它们之间的连接状态,如果连续一段时间未收到心跳消息,可以认为设备之间的连接可能中断。

  • 节电优化:心跳消息可以用于优化设备的节能策略。设备可以根据自身的需求和网络状况来调整心跳消息的发送频率,以减少能耗并延长电池寿命。

需要注意的是,Heartbeat并不直接传输数据或控制命令,它仅用于监测设备的在线状态和网络连通性。在蓝牙Mesh网络中,设备之间的实际数据传输和控制是通过消息模型和其他协议实现的。

Heartbaeat的opcode:

和Friend request、Friend offer、Friend Pool等一样的Transport Control message,opcode为0x0A。

Heartbaeat的配置:

心跳行为是使用配置服务器模型(Configuration Server Model)配置的。可以配置必须发送 Heartbeat 消息的地址(通常是 Group Address)、必须发送 Heartbeat 消息的频率以及是无限期发送心跳消息还是限制和指定数量的发送心跳消息。

Heartbeat验证网络可靠性:

心跳消息包含并保持不变,即由心跳发起者设置的初始 TTL。这允许接收者确定消息到达所需的跃点数,从而通过将 TTL 设置为不高于所需值的值来优化他们随后发送到心跳源节点的消息

Heartbeat Publication(心跳发布):

允许设备将自己的状态信息以心跳消息的形式发布到整个网络中。设备可以定期或根据需要发布自己的状态信息,例如设备的电量、传感器数据、可用性等。这些心跳消息可以帮助其他设备了解设备的状态,并根据需要采取相应的措施。

OP:

Config Heartbeat Publication Get 0x80 0x38
Config Heartbeat Publication Set 0x80 0x39
Config Heartbeat Publication Status 0x06
Config Heartbeat Publication Get没有参数。

Config Heartbeat Publication Set参数:

参数 大小 备注
目标地址 2 被设置的地址
计数 1 要发送的心跳消息数
周期 1 发送心跳信息的时间段
TTL 1 将在发送心跳消息时使用的TTL
特征 2 位字段,指示在更改时触发心跳消息的特性
NetKey Index
2
NetKey Index

心跳发布周期日志状态是一个8位值,它控制周期心跳传输控制消息的节奏。该值表示为2(n-1)秒。例如,值0x04的发布周期为8秒,而值0x07的发布周期为64秒。

两者区别:

Heartbeat是指设备定期发送的小型消息,用于指示设备的存在和活动状态,而Heartbeat Publication是指设备将自己的状态信息以心跳消息的形式发布到整个网络中。Heartbeat是设备发送消息的行为,而Heartbeat Publication是设备将自己的状态信息发布到网络中的行为。 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝牙Mesh中的Heartbeat和Heartbeat Publication 的相关文章

  • unity---Mesh网格编程(二)

    目录 1 绘制一个3X3的面 2 代码 unity Mesh网格编程 一 1 绘制一个3X3的面 前面说了mesh的基础知识点 现在绘制一个3X3的面 2 代码 using System Collections using UnityEng
  • 蓝牙Mesh中的Heartbeat和Heartbeat Publication

    Heartbeat 在蓝牙Mesh网络中 Heartbeat 心跳 是一种用于监测设备在线状态和网络连通性的机制 它是由每个设备定期发送的小型消息组成 用于指示设备的存在和活动状态 Heartbeat的主要目的是确保网络中的设备处于活动状态
  • unity 绘制属性雷达图 - 绘制描边(更改uv)

    实现的效果 先绘制一个五边形的mesh 然后在给边缘绘制一圈mesh 对uv进行重新赋值 实现描边效果 第一步 绘制mesh 绘制多边形mesh 首先先绘制一个五边形 mesh绘制要素 顶点 三角形 uv信息 顶点信息 就是勾勒三角形用的几
  • 使用openMVS对样例数据进行重建

    openMVS根据github上的步骤进行编译 注意 如果没有GPU 用不了CUDA的话 那么需要在openMVS目录下找到CmakeLists txt文件 把CUDA设置为OFF SET OpenMVS USE CUDA OFF CACH
  • unity实现简单自动寻路

    unity实现简单自动寻路 1 打开unity创建一个简单的场景 如下图 2 除了场景中的两个对象将所创建的地形设置为静态 3 给主角添加Nav mesh Agent 组件 4 烘焙地图 简单来说就是烘焙自动行走的路径 要注意蓝色区域为烘焙
  • BLE MESH在配网广播中的Service UUID:1827与1828

    Mesh Provisioning UUID 1827 是一种服务的UUID 一般在广播包中中代表设备为未配网设备 也用于给配网器进行识别 在该服务下还有两个UUID 0x2ADB 用于写 0x2ADC 用于上报 在使用GATT配网阶段的数
  • 【Threejs效果:挖空几何体】ThreeBSP实现墙体挖洞

    1 效果如下 2 代码如下 基本思路 1 创建两个mesh 一个墙体 一个窗户 2 然后取墙体和窗户的差集 将差集转换成几何体 3 根据几何体新建mesh 并贴纹理 依赖库有三个 import as THREE from three imp
  • NumPy 中网格的用途是什么?

    目的是什么np meshgrid 我知道它创建了某种用于绘图的坐标网格 但我看不到它的直接好处 官方文档给出了以下示例 但其输出对我来说没有意义 x np arange 5 5 1 y np arange 5 5 1 xx yy np me
  • 团结| mesh.colors 不会为我的自定义网格对象着色

    我在 Unity 中构建了一个自定义金字塔 如下所示 Mesh mesh GetComponent
  • 查询网格内的点 Maya python api

    我试图找出一种计算世界空间点是否位于任意网格内部的方法 如果它不是立方体或球体 我不太确定如何计算它的数学 任何帮助都会很棒 人们可以使用一种简单的光线追踪技巧来测试您是在形状的内部还是外部 事实证明 2D 3D 对象甚至可能更高维度的对象
  • 在使用 CGAL 进行四面体网格划分期间保留面片编号

    Input 我有几个网格 off一起包含一个卷的格式 例如 采取patch 01 off patch 20 off and patch 30 offCGAL 4 11 中提供的examples Mesh 3 data patches 所需输
  • 无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

    我正在尝试跟踪面部表情 例如扬眉 微笑 眨眼等 在 ARKit 中 我可以使用 blendShapes https developer apple com documentation arkit arfaceanchor 2928251 b
  • ImageJ - 如何导入和显示网格?

    如何在 ImageJ 上打开并显示网格 使用 obj stl 或 dxf 格式 我尝试通过 file open 打开文件 但使用3DViewer http rsbweb nih gov ij plugins 3d viewer or the
  • QML 将纹理应用于网格

    我正在尝试将图像纹理应用到 QML Qt 5 6 2 中的网格 我从示例 Shadow Map QML 开始 我想对 GroundPlane 进行纹理处理 材质和效果 qml 类应用于该 GroundPlane 网格 但我看不到如何应用图像
  • LibGDX 网格高度图法线和灯光

    我正在尝试让网格法线和灯光在 LibGDX 项目中工作 我已经有了从高度图纹理像素生成的纹理网格 问题是我无法正确点亮法线 另外 我不能 100 确定我在 TerrainChunk 类中正确设置了法线顶点 这是主类代码 package co
  • 如何计算具有三角形面的网格的质心?

    我想根据以下描述计算网格的新质心 但我不想使用 Blender 的内置函数来计算质心 如所解释的here https blender stackexchange com questions 14294 how to recenter an
  • 如何从kinect fracetrack获取网格?

    如何获取 kinect 面部追踪网格 这是网格 https i stack imgur com aPtJt jpg https i stack imgur com aPtJt jpg 我尝试了多种方法 但无法使其发挥作用 e g http
  • 完成部分网格并使其不漏水

    我正在从 RealSense 相机捕获点云 并使用 Trimesh 库将它们转换为网格 问题是我只能从中得到一个不防水的网格 如何 完成 网格并使其防水 I tried trimesh repair broken faces mesh co
  • CGAL:从网格中读取顶点和三角形

    我只是花了几个小时在 Visual Studio C 中使用 CGAL 来尝试了解网格的工作原理 我想要得到的是对顶点和三角形列表的访问 顶点以 double 3 形式 三角形以 int 3 形式 这是我正在编写的脚本 http doc c
  • 在网格挤出过程中计算 UV 坐标

    我目前正在为平面形状实现网格挤出算法 让我们假设为矩形 当我拉伸这个矩形时 我为 3d 形状创建了四个新边 产生 8 个新三角形 和一个新底部 当我复制所有顶点以使最终的立方体有 24 个顶点时 这种方法效果很好 但我现在想避免这些额外的顶

随机推荐

  • Matlab绘图案例,MATLAB画图大法,附详细代码

    目录 1 使用subplot创建多个子图 2 绘制误差棒图 3 绘制条形堆积图 4 绘制堆积面积图 5 绘制直方图并拟合曲线 6 绘制等高线图 7 绘制光滑的曲线 8 绘制彩虹图 9 绘制带有错误标记的散点图 10 绘制水平堆积条形 11
  • Syncthing 1.1.1 发布,文件持续同步应用

    百度智能云 云生态狂欢季 热门云产品1折起 gt gt gt Syncthing 1 1 1 发布了 Syncthing 是一款持续文件同步应用 可同步多台计算机之间的文件 此版本更新内容包括 5531 根据大小而不是条目刷新数据库 557
  • 莫烦---Tensorflow学习

    加粗样式边学边记录 感谢莫烦大神的教学视频 获益良多 之前已经看完了吴恩达Andrew Ng的视频 但对Tensorflow的使用还是有很多不懂的地方 还是要花些时间好好学学tensorflow和keras 莫烦大神的视频学习地址 Tens
  • css 动态生成动画代码在线工具,非常好用!推荐

    网址 Animista CSS Animations on Demand 这个网站提供了大量的css动画效果 用户可以自定义动画 在线生成动画代码
  • ChatGPT的代码生成是怎么做的?「基于深度学习的代码生成方法」最新研究进展...

    机器学习研究组 代码生成 Code Generation 是指根据自然语言描述生成相关代码片段的任务 在软件开发过程中 常 常会面临大量重复且技术含量较低的代码编写任务 代码生成作为最直接辅助开发人员完成编码的工作受到学术 界和工业界的广泛
  • mybatis框架学习(完整)

    目录 总结jdbc出现的问题 mybatis介绍 mybatis入门程序 占位符 与字符串拼接符 区别 mybatis框架的原理 别名配置与映射文件加载方式 mybatis与hibernate的比较 一 总结jdbc出现的问题 1 准备数据
  • 本机与服务器传输数据

    1 Xftp xftp传输的速度在500kb左右 对于上GB的数据集传输时显得太慢 技巧 可以先本地压缩后再上传 上传后在服务器端用unzip命令解压即可 警告 在使用Xftp传输文件时若与服务器不甚断连 当再次重连后一定要记得整个文件重新
  • 非阻塞的connect使用方式

    connect 函数的调用涉及到3次握手 默认connect函数为阻塞连接状态 通常connect 会阻塞到三次握手的完成和失败 而这个connect阻塞超时时间会依赖于系统 一般为75s到几分钟时间 一种方式可以通过该系统配置 proc
  • 教你如何清理 Docker 存储驱动的磁盘占用空间

    Author rab 有时候你会发现 你的 Docker 业务容器虽然做了数据持久化 且数据持久化的磁盘空间占用并不大 但是 Docker 的 Overlay2 目录占用却很大 我们知道 Overlay2 是 Docker 的存储驱动 也是
  • java 读取文件 和 执行SQL脚本 (支持中文)

    读文件操作应用 执行SQL脚本文件 执行SQL脚本文件 param path throws SQLException throws ClassNotFoundException public void exeSQLScript String
  • 操作系统原理——绪论:操作系统的概念、发展、类型、基本特征、功能、运行环境和内核结构

    目录 一 操作系统的概念 1 计算机系统的概念 2 操作系统的概念 3 为什么计算机系统需要操作系统 二 操作系统的形成与发展 三 操作系统的类型 1 批处理操作系统 Batch OS 2 分时操作系统 3 实时系统 4 嵌入式操作系统 5
  • 一些关于javascript、jQuery使用时的建议

    最新地址请访问 http leeyee github io blog 2011 04 09 javascript jquery user suggests 1 在遍历数组时缓存长度 在遍历数组时应将数组的长度保存在一个变量中 不要在循环中每
  • 熊哥帮忙

    原来那个找不到文件的问题 今天咨询了熊哥 SQL gt oradebug setospid 578038 Oracle pid 3 Unix process pid 578038 image oracle orasrva DIAG SQL
  • 刷脸支付是商业社会在时间效率数据价值的挖掘

    刷脸支付这项网付方式随着时代发展人工智能技术的不断进步代替传统聚合支付方式 开始了最早的商业应用了 而在5G迅速发展的现在刷脸支付也被广泛的运用在生活中 而刷脸支付也将会推动市场发展创造全新的快捷支付 为用户提供便捷 当你线下付款时常会遇到
  • requirements.txt 的格式

    如下文 requirements txt BeautifulSoup 3 2 1 Django 1 7 Glances 2 6 2 GnuPGInterface 0 3 2 LinkChecker 9 3 Markdown 2 6 1 My
  • 新印的钞票如何流入市场?

    原文地址 http zhidao baidu com question 136634468 html 印钞厂一直在印钞票 那市场上的钞票总量一直会增加 这些新印的钞票是怎么流入市场的呢 我看到另一个和我这个相似的问题的回答是 国家通过给公务
  • kali 重置root密码

    kali版本 kali linux 2021 2 但是其他版本也都一样的操作 方法 步骤 第一步 点击开启此虚拟机 打开安装好的kali虚拟机 第二步 进入开机启动页面 按键盘e键进入Kali GNU GRUB页面 进入GNU GRUB页面
  • QTcpSocket::connectToHost内存泄漏的问题

    使用QTcpSocket上网看博客时 发现有篇抄来抄去的博客提到QTcpSocket类的方法connectToHost会泄露内存 即使把调用这个方法的QTcpSocket实例delete掉 内存也不会释放 反复connectToHost会导
  • 树莓派开启 wifi 热点

    树莓派小巧的体型当然不是为了固定放在桌子上 更是为了做成可移动的智能设备 例如智能小车 当树莓派不在室内的 wifi 下时 怎样方便地连接上它呢 于是想要把树莓派变成 wifi 热点 就能用我们的手机或者笔记本连接它了 一 修改 etc n
  • 蓝牙Mesh中的Heartbeat和Heartbeat Publication

    Heartbeat 在蓝牙Mesh网络中 Heartbeat 心跳 是一种用于监测设备在线状态和网络连通性的机制 它是由每个设备定期发送的小型消息组成 用于指示设备的存在和活动状态 Heartbeat的主要目的是确保网络中的设备处于活动状态