Ble Mesh的Heatbeat(心跳)&地址&Model(模型)

2023-10-26

心跳

将节点配置为定期发送称为心跳消息的消息。

Heartbeat 消息的目的:

1、表示该节点仍然处于活动状态。

2、允许根据传递 Heartbeat 消息所需的跳数确定其与接收者的距离。

Heartbaeat的opcode:

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

Heartbaeat的配置:

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

Heartbeat验证网络可靠性:

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

地址

蓝牙网状网络使用各种地址类型的系统来识别单个元素或元素集。

单播地址

单播地址标识节点的单个特定元素。Provisioner管理单播地址的分配,并确保在网络中不分配重复地址。

组地址

组地址是表示一个或多个 元素的多播地址。组地址要么由蓝牙 SIG 定义,称为 SIG 固定组地址,要么是动态分配的。最多允许 256 个 SIG 固定组地址,在撰写本文时,仅定义了 4 个。这些被命名为 All-proxy、All-friends、All-relays 和 All-nodes。

网状网络中最多可以有 16383 个组地址。

虚拟地址

虚拟地址是可以分配给一个或多个 元素的地址,跨越一个或多个 节点。它采用 128 位 UUID 值的形式,任何 元素 都可以与之关联,并且很像标签。

网状网络中可能有多达 70 万亿个虚拟地址。

未分配的地址

这是一种特殊的地址类型,值为 0x0000。它的使用表明 元素 尚未配置或已分配单播地址。

发布地址

用作发布消息的目的地的地址称为发布地址。发布地址可以是单播地址、预先配置的组地址或虚拟地址。

模型

模型定义了一组 状态、 状态转换、 状态绑定、 消息 和其他相关行为。节点 中 的 元素 必须支持一个或多个模型,并且模型或模型定义了 元素 所具有的功能。蓝牙 SIG 定义了许多模型,其中许多被故意定位为“通用”模型,在广泛的设备类型中具有潜在的实用性。

蓝牙网状网络中的所有通信都是使用 消息完成的,消息定义为模型规范的一部分。

有两种类型的模型;服务器和客户端。

一个模型可以扩展另一个模型。不扩展其他模型的模型称为“根模型”。不允许通过添加或删除行为来更改模型。对新需求的正确回应是扩展现有模型。

最好通过考虑示例来理解模型的概念。

最简单的通用模型是通用 OnOff 服务器模型。它定义了一个单独的 State,称为 Generic OnOff,它的值可能是 0x00 表示 Off 或 0x01 表示 On。该模型定义了四种类型的 Message。这四个 消息 是:

通用 OnOff 获取
通用 OnOff 集
通用 OnOff 设置未确认
通用开关状态
Generic OnOff Get  Message被 支持 Generic OnOff Server Model 的Element接收时  ,会导致 Element 回复 Generic OnOff Status  Message ,该消息报告 Generic OnOff State的当前值 。

Generic OnOff Set  Message被 支持 Generic OnOff 服务器模型的Element接收时  ,会导致 Generic OnOff  State的值 发生变化,并且可以预期包含该 Element的物理设备 将反映这种 状态 值以某种预期方式发生的变化(例如打开或关闭灯)。Generic OnOff Set 被称为 Acknowledged Message  ,这意味着它需要来自 Element的响应。在 Generic OnOff Set 的情况下,预期的响应是 Generic OnOff Status  Message。

Generic OnOff Set Unacknowledged  Message与 Generic OnOff Set Message 具有相同的语义,  只是它不需要 元素 以状态 消息进行响应。

通用 OnOff 状态 消息 可以由元素发送 以 报告 其 OnOff 状态。这是一个 未确认的消息, 因为接收它的元素 不需要响应 。

蓝牙 SIG 定义的模型称为 SIG 模型。供应商也可以定义自己的模型,这些模型被称为供应商模型。

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

Ble Mesh的Heatbeat(心跳)&地址&Model(模型) 的相关文章

  • Unity 初识Mesh绘制面(一)

    Unity中渲染出的3D物体组成内容 首先我们先在Unity3D中创建一个Cube 在Inspector可以看到其中含有MeshFilter MeshRenderer组件 由此可见如果你想要展示一个3D游戏物体 它必须拥有两个组件 Mesh
  • 基于Prompt的MLM文本分类

    简介 常规NLP做文本分类时常用Transfer Learning的方式 在预训练bert上加一个分类层 哪个输出节点概率最大则划分到哪一类别 而基于Prompt的MLM文本分类是将文本分类任务转化为MLM Masked Language
  • BLE MESH组网(五)配置BLE MESH

    BLE MESH 五 配置BLE MESH 前言 概述 配置协议 供应程序 信标 邀请 交换公钥 前言 2017 年 5 月 全球最臭名昭著的勒索软件 WannaCry 在全球范围内积极攻击计算机 劫持用户数据索要赎金 这次攻击影响了 15
  • 汇编符号语言

    CSDN话题挑战赛第1期 活动详情地址 第1期话题PK赛 参赛话题 汇编知识分享 话题描述 我们的计算机知识就像一座金字塔 底层是数学 上面是数字电路 然后是汇编 再往上是操作系统 网络 数据库 高级编程语言 框架等等 我们不可能精通这个金
  • 电容的频率特性曲线

    电容的频率特性曲线 电容 电容 Capacitance 亦称作 电容量 是指在给定电位差下的电荷储藏量 记为C 国际单位是法拉 F 一般来说 电荷在电场中会受力而移动 当导体之间有了介质 则阻碍了电荷移动而使得电荷累积在导体上 造成电荷的累
  • 使用 .net + blazor 做一个 kubernetes 开源文件系统

    背景 据我所知 目前 kubernetes 本身或者其它第三方社区都没提供 kubernetes 的文件系统 也就是说要从 kubernetes 的容器中下载或上传文件 需要先进入容器查看目录结构 然后再通过 kubectl cp 指令把文
  • pytorch低版本环境加载高版本(1.6+)模型报错(xxx is a zip archive (did you mean to use torch.jit.load()?))

    问题描述 transformers 4 0 版本训练出来的模型 在3 0的Model from pretrained中加载会报错 pytorch model bin is a zip archive did you mean to use
  • 2、为什么选择URP

    为什么选择URP 现在所在项目为SLG类项目 有同屏200 英雄的需求 Unity传统渲染管线的动态批处理有个限制是Skined Mesh Renderer不能进行动态批处理 英雄如果不采用Skined Mesh Renderer又不能满足
  • 进程的描述与组织

    1 1 1进程的资源 进程需要一定资源才能运行 最重要的资源是内存地址空间 此外还可能需要使用文件 设备等 这些资源均由内核负责管理和分配 分配给进程的资源登记在进程的PCB中 1 进程的地址空间 进程的一个重要构成成分是进程映像 即进程所
  • Mesh(802.11s)组网 — 基于OpenWRT路由器

    一 mesh网络 1 mesh网络拓补图 2 介绍 二 OpenWRT路由器Mesh网络配置 1 准备阶段 说明 本次测试用2台单WiFi路由器作为测试 wifi用于组建Mesh网络连接 因此内网已无额外WiFi可以提供使用 因此局域网用有
  • 按顺时针/逆时针顺序对一组 3D 点进行排序

    在 3 D 空间中 我有一组无序的点 例如 6 个点 像这样的东西 A C E F B D 这些点形成 3D 轮廓 但它们是无序的 对于无序我的意思是它们存储在 unorderedList A B C D E F 我只想从任意位置 比如说
  • 如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

    我正在尝试遵循网格网格 插值的 MATLAB 示例 示例代码已找到HERE 在该网站上 我正在查看以下示例 示例 在表面上显示不均匀数据 Now I would like to produce a similar plot in Pytho
  • 找出一个点属于哪个四面体元素

    我有一个 3d 区域的四面体网格 网格由扩展名为 node 和 ele 的两个文件定义 其中包含与节点和元素相关的数据 这是 tetgen 3d Delaunay 四面体化程序 的输出文件的格式 node 文件的每一行包含节点编号以及该节点
  • 我可以在 Three.js 中隐藏网格的面吗?

    我想使网格的某些部分在运行时不可见 我可以将这些部分设置为不可见 透明吗 通过改变单个面孔的属性 网格本身仅使用一种材料 示例说明 as the editor理解这个问题 想象一个网格 这里有 20 个顶点的几何图形 其中每个四个顶点的四边
  • 无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

    我正在尝试跟踪面部表情 例如扬眉 微笑 眨眼等 在 ARKit 中 我可以使用 blendShapes https developer apple com documentation arkit arfaceanchor 2928251 b
  • 在 Unity3D 中,“设置”网格的边界会做什么或实现什么?

    在 Unity 代码库中 我看到了这个 the game object currently has no mesh attached MeshFilter mFilter gameObject AddComponent
  • Three.js 加载已三角化的网格是否比使用四边形的网格性能更高?

    我读过 Three js 对所有网格面进行三角剖分 这是正确的吗 然后我意识到我使用的大多数 gltf 模型都有四面体 在 Blender 中对面进行三角测量非常容易 所以我很好奇对面进行预先三角测量是否会导致网格加载更快 提前致谢 如果您
  • LibGDX 网格高度图法线和灯光

    我正在尝试让网格法线和灯光在 LibGDX 项目中工作 我已经有了从高度图纹理像素生成的纹理网格 问题是我无法正确点亮法线 另外 我不能 100 确定我在 TerrainChunk 类中正确设置了法线顶点 这是主类代码 package co
  • 删除 Meshlab 或 vcglib 中的自相交

    如何使用 Meshlab 应用程序或 vcglib 消除网格的自相交 这超出了范围 但 CGAL 中有一些函数 这仍然是实验性的 没有记录 但您可以使用该功能remove self intersections https github co
  • 完成部分网格并使其不漏水

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

随机推荐

  • GIT常用命令以及使用详解图示

    1配置个人信息 方便提交代码管理 获取Git配置信息 执行以下命令 git config list 如果你还没有设置名字 user name 和 user email的话 可以用以下指令设置 git config global user n
  • 两种方法教你在postman设置请求里带动态token

    postman传递动态参数的最佳实践 问题描述 一 设置全局 环境变量传递 在postman中新增一个环境变量devToken 将获取到的token赋值给devToken 其他请求接口根据需要在请求时带上devToken 二 在每个请求中带
  • JAVA通过反射调用外部的jar包

    把外包jar的信息写在配置文件中 这样如果外部jar改变了 只需要修改properties相应的配置即可 config properties文件内容如下 jarUrl E MessageSend jar className org line
  • 高速USB转8串口产品设计-RS485串口

    基于480Mbps 高速USB转8路串口芯片CH348 可以为各类主机扩展出8个独立的串口 使用厂商提供的VCP串口驱动程序 可支持Windows Linux Android macOS等操作系统 使用单个CH348芯片即可实现USB一拖八
  • 离线 安装webssh

    1 安装包 和 webssh 代码准备 1 cmake 安装 安装参考文档 文档地址 下载地址 tar xvfz cmake 3 24 2 linux x86 64 tar gz 配置环境全局变量 vim etc profile 添加 ex
  • shell脚本初学(带参脚本传递、执行)(二)

    一 带有参数的shell脚本 脚本内获取参数的格式为 n n 代表一个数字 1 为执行脚本的第一个参数 2 为执行脚本的第二个参数 其中 0 为执行的文件名 包含文件路径 bin bash 指定编译器 test sh文件 echo Shel
  • C/C++和Python混合编程

    1 首先需要下载python源代码进行编译 源代码编译的过程访问如下链接 编译python源码 2 创建一个win32控制台项目 项目名称为 InvokePython 如图 3 然后将python源代码中的Include文件夹拷贝到该项目
  • 天线长度计算

    首先 理想天线的长度是半波长 平时说的四分之一波长天线 实际上需要考虑 地 才能构成完整的天线 也就是我们常说的 非平衡天线 天线本身只是天线的一部分 天线长度是波长的四分之一 波长 光速c 频率f 1 如 5GHz wifi天线长度计算
  • 二进制转换

    我们平时使用的十进制 十进制转二进制 整数情况 11表示成二进制数 11 2 5 余 1 5 2 2 余 1 2 2 1 余 0 1 2 0 余 1 得0结束 11的二进制表示为 从下往上 1011 小数情况 0 9表示成二进制数 0 9
  • DLNA协议

    一 DLNA协议 多屏互动技术的核心 dlna协议 利用网络技术 有线或者无线 将各种各样的设备互联 通过标准的协议 主流的是dlna协议 进行数据交互 实现媒体资源共享 比如 生活中常用的视频投屏技术 dlna协议提供的是设备互联资源共享
  • 2022 第十三届蓝桥杯大赛软件赛决赛, 国赛,C/C++ 大学B组题解

    2022 第十三届蓝桥杯大赛软件赛决赛 国赛 C C 大学B组题解 文章目录 第1题 2022 5分 第2题 钟表 5分 第3题 卡牌 10分 第4题 最大数字 10分 第5题 出差 15分 第6题 费用报销 15分 第7题 故障 20分
  • 【进程间通信 之 通信的建立】

    目录 前言 进程间通信的目的 进程间通信的方式 管道 1 匿名管道 简单示例1 消息传输 五个特性 四种场景 简单示例2 进程控制 对管道的深入理解 2 命名管道 简单示例3 不相关进程间通信 system V 共享内存 简单示例4 通知事
  • loadrunner11目标场景

    目标场景 设置一个运行目标 通过Controller的自动加载功能进行自动化负载 如果测试的结果达到目标 说明系统的性能符合测试目标 否则就提示无法达到目标 编辑目标场景 目标类型有5种
  • python-图像边缘化处理

    本文由本人原创 仅作为自己的学习记录 主要利用Sobel 用作边缘检测 它是一离散性差分算子 用来运算图像亮度函数的灰度值 在图像的任何一点使用此算子 将会产生对应的灰度矢量或是其法矢量 Sobel边缘检测通常带有方向性 可以只检测竖直边缘
  • 【Linux0.11 源码历险记 2】《保护模式》

    继续跟着stup s 来看 lidt idt 48 load idt with 0 0 lgdt gdt 48 load gdt with whatever appropriate idt 48 word 0 idt limit 0 wor
  • 【Unity】 2D 游戏 库存模块实现

    库存模块主要参考了 youtube 上的视频 BMo 的 Flexible INVENTORY SYSTEM in Unity with Events and Scriptable Objects 和 Simple Inventory UI
  • DVWA SQL injection

    low 猜测表名 1 union select 1 group concat table name from information schema tables where table schema dvwa 如果出现问题 到MySQL里将
  • Java常用对象API——基本数据类型对象包装类

    基本数据类型对象包装类 为了方便操作基本数据类型值 将其封装成了对象 在对象中定义了属性和行为丰富了该数据的操作 用于描述该对象的类就称为基本数据类型对象包装类 byte Byte short Short int Integer long
  • EXCEL中数据透视表的(空白)如何不显示,并且不影响数据更新

    或许有碰到同样问题的 希望对大家有所帮助 1 数据透视表更新过来的数据显示 空白 不好看 开始将用户做了筛选 将空白的复选框去掉 可以达到效果 但是发现有数据更新时 新的数据不能被同步显示 除非手动去再次筛选用户将除空白外的数据勾选 2 点
  • Ble Mesh的Heatbeat(心跳)&地址&Model(模型)

    心跳 将节点配置为定期发送称为心跳消息的消息 Heartbeat 消息的目的 1 表示该节点仍然处于活动状态 2 允许根据传递 Heartbeat 消息所需的跳数确定其与接收者的距离 Heartbaeat的opcode 和Friend re