BLE Mesh蓝牙组网技术详细解析之Foundation Model Layer基础模型层(七)

目录

一、什么是BLE Mesh Foundation Model Layer基础模型层?

二、模型

2.1 配置模型

2.2 健康模型

三、状态

3.1 Composition Data

四、资料获取


一、什么是BLE Mesh Foundation Model Layer基础模型层?

BLE Mesh Foundation model Layer是蓝牙Mesh协议栈中的一个层,它定义了配置和管理蓝牙Mesh网络所需的状态、消息和模型。它确保从下层接收到的数据是正确的并传输到更高层的应用。

基础模型层(Foundation Model Layer)负责定义了状态, 消息, 模型等, 实现mesh网络的配置。

二、模型

Foundation model Layer包括两种模型:配置模型和健康模型

  • 配置模型(Configuration Model)用于设置和获取节点的各种参数,如发布地址、订阅地址、AppKey、NetKey、Relay、Proxy、Friend、Low Power等。配置模型分为配置服务端模型(Configuration Server Model)和配置客户端模型(Configuration Client Model)。配置服务端模型是每个节点都必须实现的模型,配置客户端模型是用于向配置服务端模型发送配置消息的模型
  • 健康模型(Health Model)用于检测和报告节点的故障状态,如网络拥塞、内存不足、电池低电量等。健康模型也分为健康服务端模型(Health Server Model)和健康客户端模型(Health Client Model)。健康服务端模型是每个节点都必须实现的模型,健康客户端模型是用于向健康服务端模型发送健康消息的模型

2.1 配置模型

基础模型层(Foundation Model Layer)的配置主要是通过配置服务端模型和配置客户端模型来实现的。配置服务端模型是每个节点都必须实现的模型,它包含了一系列与配置相关的状态和消息,用于设置和获取节点的各种参数,如发布地址、订阅地址、AppKey、NetKey、Relay、Proxy、Friend、Low Power等。

配置客户端模型是用于向配置服务端模型发送配置消息的模型,它可以运行在任何支持MESH协议的设备上,如智能手机APP

配置客户端模型和配置服务端模型之间的通信是通过配置消息来进行的,配置消息是一种特殊的上层传输层消息,它使用DevKey来加密和解密,而不是AppKey

配置客户端模型和配置服务端模型之间的通信流程一般是这样的:

  1. 配置客户端模型发送一个配置消息给配置服务端模型,指定目标节点的单播地址和DevKey。
  2. 配置服务端模型收到配置消息后,根据Opcode和Parameters执行相应的操作,如添加AppKey、删除订阅地址等,并更新自己的状态。
  3. 配置服务端模型发送一个配置状态消息给配置客户端模型,指示操作的结果,如成功或失败,以及相关的状态值。
  4. 配置客户端模型收到配置状态消息后,根据状态值判断操作是否成功,并显示给用户。

2.2 健康模型

健康模型(Health Model)是基础模型层(Foundation Model Layer)的一种模型,它用于检测和报告节点的故障状态,如网络拥塞、内存不足、电池低电量等。健康模型也分为健康服务端模型(Health Server Model)和健康客户端模型(Health Client Model)

健康服务端模型是每个节点都必须实现的模型,它包含了以下的状态和消息

  • 健康故障状态(Health Fault State):用于记录节点的当前故障代码,可以有多个故障代码,每个故障代码占用一个字节。
  • 健康测试状态(Health Test State):用于记录节点的当前测试模式,可以有多种测试模式,每种测试模式占用一个字节。
  • 健康期望注意状态(Health Attention State):用于记录节点的当前注意模式,可以有多种注意模式,每种注意模式占用一个字节。
  • 健康期望注意消息(Health Attention Message):用于设置或获取节点的健康期望注意状态。
  • 健康故障消息(Health Fault Message):用于设置或获取节点的健康故障状态和健康测试状态。
  • 健康期望注意状态消息(Health Attention Status Message):用于响应健康期望注意消息,返回节点的健康期望注意状态。
  • 健康故障状态消息(Health Fault Status Message):用于响应健康故障消息,返回节点的健康故障状态和健康测试状态。

健康客户端模型是用于向健康服务端模型发送健康消息的模型,它可以运行在任何支持MESH协议的设备上,如智能手机APP。健康客户端模型可以发送以下的消息

  • 健康期望注意获取消息(Health Attention Get Message):用于获取节点的健康期望注意状态。
  • 健康期望注意设置消息(Health Attention Set Message):用于设置节点的健康期望注意状态。
  • 健康期望注意设置无应答消息(Health Attention Set Unacknowledged Message):用于设置节点的健康期望注意状态,不需要应答。
  • 健康故障清除消息(Health Fault Clear Message):用于清除节点的健康故障状态。
  • 健康故障清除无应答消息(Health Fault Clear Unacknowledged Message):用于清除节点的健康故障状态,不需要应答。
  • 健康故障获取消息(Health Fault Get Message):用于获取节点的健康故障状态和健康测试状态。
  • 健康故障测试消息(Health Fault Test Message):用于设置节点的健康测试状态。
  • 健康故障测试无应答消息(Health Fault Test Unacknowledged Message):用于设置节点的健康测试状态,不需要应答。
  • 健康期望注意确认消息(Health Attention Confirm Message):用于确认收到健康期望注意状态消息。
  • 健康故障确认消息(Health Fault Confirm Message):用于确认收到健康故障状态消息。

三、状态

基础模型层定义了以下的状态

  • 成分数据状态(Composition Data State):描述了节点包含的元素信息,以及各元素内支持的模型信息。
  • 模型发布状态(Model Publication State):维护了模型发布消息中的各个参数,如发布地址、发布周期、发布消息用到的AppKey索引、朋友关系的证书标记、发布TTL、重传计数、重传间隔等步骤。
  • 订阅列表状态(Subscription List State):维护了一组订阅的组播地址或者UUID,节点中每个元素都有一个订阅列表实例。
  • NetKey列表状态(NetKey List State):维护了一个NetKey列表,每个长度为128bit的NetKey都有一个16bit的NetKey索引与之对应,一个NetKey列表至少包含一个NetKey。
  • AppKey列表状态(AppKey List State):维护了一个AppKey列表,每个长度为128bit的AppKey都有一个16bit的AppKey索引与之对应,一个AppKey列表至少包含一个AppKey。
  • 网络传输状态(Network Transmit State):用于控制节点发出网络层PDU重传的次数和时间点,有Network Transmit Count 和 Network Transmit Interval Steps两个参数,每个节点只有一个网络传输状态实例。
  • 网络中继重传状态(Relay Retransmit State):用于控制网络层收到消息后的中继行为,有Relay Re-transmit Count 和 Relay Re-transmit Interval Steps两个参数。
  • 健康故障状态(Health Fault State):用于记录节点的当前故障代码,可以有多个故障代码,每个故障代码占用一个字节。
  • 健康测试状态(Health Test State):用于记录节点的当前测试模式,可以有多种测试模式,每种测试模式占用一个字节。
  • 健康期望注意状态(Health Attention State):用于记录节点的当前注意模式,可以有多种注意模式,每种注意模式占用一个字节。

3.1 Composition Data

Field

Size (octets)

Notes

CID

2

公司ID,由SIG组织分配。

PID

2

产品ID,由厂商自定义。

VID

2

产品版本ID,由厂商自定义。

CRPL

2

重放攻击列表项最小数目,表示节点能够防止重放攻击的最小序列号个数。

Features

2

特性,表示节点支持的Mesh功能,如Relay、Proxy、Friend、Low Power等。

Elements

variable

包含元素描述的序列。

在蓝牙Mesh中,Feature字段的长度为16Bit,其中已经使用了4个Bit来表示四个特性的支持情况。具体情况如下:

* Bit 0:Relay功能,1表示支持,0表示不支持

* Bit 1:Proxy功能,1表示支持,0表示不支持

* Bit 2:Friend功能,1表示支持,0表示不支持

* Bit 3:Low Power功能,1表示支持,0表示不支持

*Bit 4~15预留

Field

Size (octets)

Notes

Loc

2

位置描述,由SIG组织在GATT蓝牙名字空间描述符中定义。

NumS

1

SIG模型的数量,表示元素支持的SIG模型的个数。

NumV

1

Vendor模型的数量,表示元素支持的Vendor模型的个数。

SIG Models

variable

SIG模型的ID列表,每个ID占用2字节。

Vendor Models

variable

Vendor模型的ID列表,每个ID占用4字节,前两字节是公司ID,后两字节是模型ID。

四、资料获取

通过点击以下链接,您可以获取BLE Mesh模块原理图、源代码以及开发资料。链接地址将为您提供详细的文件资料,以供您进行参考和使用。

如果您在使用过程中遇到任何问题或疑虑,欢迎加我QQ ,一起探讨技术问题,我的QQ号是986571840,加的时候请注明CSDN。

BLE Mesh蓝牙组网模块 - 硬创社 (jlc.com)icon-default.png?t=N7T8https://x.jlc.com/platform/detail/001d23cba7b64b0d9df5b9b69720fadb

感谢各位用户点赞、分享、在看,这些行为让知识得以更加广泛地传播,从而让更多人受益。

请在转载作品时注明出处,严禁抄袭行为。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

双击shutdown.bat关闭Tomcat报错:未设置关闭端口~

你们好,我是金金金。 场景 当我startup.bat启动tomcat之后,然后双击shutdown.bat关闭,结果报错了~ 排查 看报错信息很明显了,未配置关闭端口,突然想起来了我在安装的时候都选的是默认的配置,我还记得有这…

el-select 多选,选有一个未选择的选项

多选有未选择这个选项后。会出现一个情况,绑定的数据为[‘未选择’,‘cpu1’,‘cpu2’] 进行一个处理,选择(未选择)就清除(其它的选择),选择(cpu)就清除(未选…

NE555学习笔记-2024

实物图片 NE555引脚图 内部时序图 示列1,红外接收电路 红外接收电路的工作原理:在上述电路中,TSOP1738构成了该电路的主要组成部分,旨在检测来自任何来源的红外信号。这用于检测38 KHz范围的信号,因此命名为“TSOP173…

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2)

Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(2) 在 Android Matrix剪切clipPath缩放scale图片postTranslate圆形放大镜,Kotlin(1) Android Matrix剪切clipPath缩放scale图片po…

Springboot通过profiles切换不同环境使用的配置

文章目录 简介1.通过分隔符隔离2.通过使用不同的配置文件区分3.测试 简介 一个项目从开发到上线一般要经过几个环境, dev测试环境-uat预生产环境-prod生产环境,每个环境的使用的数据库或者配置不同,这时候可以通过下面两种方式区分配置,达到快速切换的效…

高分青海中心完成积石山6.2级地震(青海区域)卫星遥感数据与技术支撑工作

2023年12月18日23时59分,甘肃临夏州积石山县发生6.2级地震,青海省部分地区有明显震感,海东市民和县、化隆县、循化县出现不同程度人员伤亡和房屋受损情况。地震发生后,高分青海中心在国家航天局对地观测与数据中心的大力支持与紧急…

SpringBoot项目的三种创建方式

手动创建方式&#xff1a; ①&#xff1a;新建maven项目 ②&#xff1a;引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.10.RELEASE</version>&l…

基于Java SSM框架实现咖啡馆管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现咖啡馆管理系统演示 摘要 2021是网络科技的时代 &#xff0c;众多的软件被开发出来&#xff0c;给客户带来了很大的选择余地&#xff0c;而且客户越来越追求更个性的需求。在这种时代背景下&#xff0c;客户对咖啡馆管理系统越来越重视&#xff0c;使更好…

CSAPP: LinkBomb 重定位和链接题解(一)

前言 我看了一下&#xff0c;网上关于 LinkBomb 的题解不是很多&#xff0c;LinkBomb 不是 CSAPP 目前大纲的内容&#xff0c;大多数都是写的 LinkLab。如果你做的作业内容是要求每关输出学号&#xff0c;那么你就是跟我一样的 LinkBomb 的实验&#xff08;需要注意的是&#…

Midjourney表情包制作及变现最全教程

盘点Midijourney&#xff08;AIGF&#xff09;热门赚米方法&#xff0c;总有一种适合你之AI绘画操作技巧及变现渠道剖析 【表情包制作】 首先我们对表情包制作进行详细的讲解&#xff1a; 当使用 Midjourney&#xff08;AIGF&#xff09; 绘画来制作表情包时&#xff0c;你可以…

【水浸传感器】软硬件一体水浸监测整套方案远程监测解决各种环境漏水问题

一、痛点分析 在工业生产中&#xff0c;水浸传感器可以安装在数据中心、半导体厂房、输油管道、车间仓库、变电室等易发生水浸的区域。一旦检测到漏水情况&#xff0c;立即发出信号反馈。然而&#xff0c;水浸传感器分散在各个地点&#xff0c;导致管理不集中、不便捷&#xf…

MySQL MHA高可用

目录 简述 什么是MHA MHA的组成 MHA Node&#xff08;数据节点&#xff09; MHA Manager&#xff08;管理节点&#xff09; MHA原理 MHA的特点 搭建Mysql MHA 1.修改 Master、Slave1、Slave2 节点的主机名 2.修改 Master、Slave1、Slave2 节点的 Mysql主配置文件/etc…

4.快速实现增删改查,模糊查询功能

打开springboot项目&#xff0c;在com.example下建包common,在common下新建Result.java 4.1封装统一的返回数据结构 1.在Result.java中编写如下代码&#xff1a; private static final String *SUCCESS*"0"; private static final String *ERROR*"-1"; p…

ROS学习笔记(10)进一步深入了解ROS第四步

0.前提 1. (Python & C)Where does the bag file get saved? How can you change where it is saved?&#xff08;功能包文件被保存在哪&#xff1f;如何更改保存的位置&#xff1f;&#xff09; 1.Where does the bag file get saved&#xff1f;&#xff08;功能包文件…

tolist()读取Excel列数据,(Excel列数据去重后,重新保存到新的Excel里)

从Excel列数据去重后&#xff0c;重新保存到新的Excel里 import pandas as pd# 读取Excel文件 file r"D:\\pythonXangmu\\quchong\\quchong.xlsx" # 使用原始字符串以避免转义字符 df pd.read_excel(file, sheet_namenameSheet)# 删除重复值 df2 df.drop_duplica…

FinGPT——金融领域开源大模型

文章目录 背景论文摘要相关工作大型语言模型&#xff08;LLMs&#xff09;和ChatGPT金融领域的LLMs为什么需要开源的金融LLMs&#xff1f; 以数据为中心的方法用于FinLLMs金融数据和独特特性应对处理金融数据的挑战 FINGPT 概述&#xff1a;FINLLM 的开源框架数据来源面向金融N…

window将Mongodb加入环境变量

首先 你需要安装 Mongodb 如果没有下载安装 可以先查看我的文章 window下载安装Mongodb数据库 右击 此电脑/此计算机/我的电脑 选择属性 在新弹出的窗口中搜索 环境变量 新弹出的窗口中 选择环境变量 系统变量中找到 path 选择编辑 点击新建 然后将安装 Mongodb 的目录下的…

网络连通性批量检测工具

一、背景介绍 企业网络安全防护中&#xff0c;都会要求配置物理网络防火墙以及主机防火墙&#xff0c;加强对网络安全的防护。云改数转之际&#xff0c;多系统上云过程中都会申请开通大量各类网络配置&#xff0c;针对这些复杂且庞大的网络策略开通配置&#xff0c;那么在网络配…

Java 开发体验 HelloWorld

开发步骤 Java 程序开发分为三个步骤&#xff1a;编写、编译、运行 将 Java 代码编写到扩展名为 .java 的源文件中通过 javac.exe 命令对该 .java 文件进行编译&#xff0c;生成一个或多个字节码文件 .class通过 java.exe 命令对生成的 .class 文件进行运行 编写 创建 Hel…

自定义Echarts中legend、tooltip等样式

文章目录 自定义Echarts中legend、tooltip等样式legend.formatterlegend. textStylelegend.textStyle. rich实例效果图参考文档 自定义Echarts中legend、tooltip等样式 在使用Echarts图表中不可避免的要定义legend、tooltip中的样式&#xff0c;这里以legend为例介绍一下通用的…