SIG MESH理论教程
SIG MESH初体验
SIG MESH的简介
Nordic MESH SDK 文档框架简介
SIG MESH各个角色的功能简介
SIG MESH协议各个层的作用
什么是Element和Model
如何使用SES搭建SIG MESH开发环境
如何使用VSCode搭建SIG MESH开发环境
Mesh Beacon帧格式
PB-GATT入网过程
PB-ADV入网过程
SIG MESH第一个实例---Generic On Off Model
BLE Mesh各层帧包格式详解
Configuration Model浅析
Health Model浅析
Proxy Node详解及其工作流程
Relay Node详解及其工作流程
Friend Node与Low Power Node详解及其工作流程
Multi Role的实现
Vendor Model浅析
创建红旭Model
自主分包与MESH协议分包重组的区别
接入天猫精灵
IV Index更新过程
密钥更新过程
创建红旭Model-移植
如无权限阅读,请联系微信:17625815328
-
+
home
什么是Element和Model
# 前言 原本小编是想将**Element(元素)和Model(模型)** 拆分开成两篇独立的文章来讲解,但是实在没有办法做到;因为它们两者之间的绑定实在太深了,如果非要将他们剥离之后单独讲解会很容易导致理解不连贯;如果用过BLE的读者应该就会比较好理解这两个新的名词,其分别类似于profile与service的关系。当然啦,新人也不必悲观,下面我用两幅图来让大家先有一个基础的了解。  # 什么是Element(元素) 元素包含定义一个节点功能的实例,每个节点都可以包括一个或者多个元素,且至少存在一个叫**首要元素**的元素,就类似于一个BLE设备可以包括一个或者多个profile一样。举个例子,一个调光的灯泡通常会有一个元素,这个元素就会向外公开其具备的一个或者多个功能,例如**通用开关**和**亮度控制**功能。在这个例子中,**Light Lightness Server Model**就用于实现开/关和亮度等级控制功能。 另外一个例子就是调光灯泡还包含有一个**占用传感器**,此时这个节点将会有两个Element(元素): 1. 用于灯泡的控制 2. 用于传感器的控制 首要元素用于灯泡控制,第二个元素用于传感器的控制,如下图所示:  节点中的每个元素都有一个唯一的地址,称为单播地址。这允许每个元素独立于同一节点内的其他元素进行寻址,也就是说可以通过单播地址找到节点的各个元素。 # 什么是Model(模型) 起初,小编刚看到这个名词一时半会也难于理解这是啥玩意啊?就跟下图的反应一样:  其实,模型就是定义了节点的真正的功能,其汇集了一个元素的**状态**、**转换**、**绑定**、**信息**的概念。也就是小编上面提及到的Model(模型)就类似于正常BLE设备的Service。而Mesh的模型又分为三种类型: ## 服务端模型 服务端模型可以具有跨越一个或多个元素的一个或多个状态,服务器模型定义了模型可以发送和接收的消息,它还定义了基于这些消息的Element的行为。换句话说,服务端模型公开了可以被客户端读取或控制的元素的状态。一个服务端模型的应用实例就是:对外公开传感器状态的**传感器**或者存储当前灯光状态的**灯泡** ## 客户端模型 客户端模型定义了一组请求并更改服务端状态的消息。例如,ON/OFF开关(作为客户端运行)可以向ON/OFF服务端发送消息以更改设备的状态  ## 控制端模型(就是同时支持客户端和服务端模型) 最终的应用程序可以使用服务端模型或客户端模型,或两者以及控制逻辑。服务端和客户端模型的任意组合都会产生控制模型。  除了上面的之外,模型可以扩展其他模型的功能。也就是说,模型可以是分层的。例如,**灯光亮度模型**扩展了**通用开关服务端模型**和**通用等级服务端模型**。这意味着如果你在应用程序中实现**灯光亮度模型**,你将获得所有控制灯光、通用等级以及通用开关的功能;从数学的角度来说,如果A模型是B模型的子集,那么B可以称为扩展模型,而不扩展任何其他模型的模型称为 **“根模型”**;**需要注意的是:通过增加或者删除行为来改变模型是不允许的,正确的做法应该是扩展其他现有的模型组成新的模型**。 # 状态与属性 这个状态以及属性又是从模型中引出的概念,因此了解了状态与属性也是加深理解模型的重要关键。 ## 状态 元素可能处于各种情况;在SIG Mesh中,这些条件存储在被称为**状态**的值中。每个状态都是元素中包含的某种类型的值。除了值之外,状态还具有与该状态关联的行为,状态由蓝牙SIG定义。例如,称为 **“通用OnOff”** 的状态,其可能具有两个值 **或OFF(行为)** 于灯泡或风扇电机等设备非常有用。术语 **“通用”** 用于表示此状态及其行为可能在不同类型的Mesh设备中都有用。 ## 属性 属性还包含与元素相关的值;但是与状态不同的是属性提供了解释状态的上下文。例如,要发送温度状态值的设备,温度状态可以是 **“当前室内环境温度”或“当前室外环境温度”**。在这种情况下,将使用属性来提供温度状态值的上下文。属性可以是制造商属性,它们是只读或管理员属性,允许读写访问。 ## 状态转移 状态转换可以是瞬时的,或者可以在称为**转换时间**的时段内执行。 ## 状态绑定 状态可以被绑定在一起,使得一个状态的变化导致另一个状态的变化。一个状态可以被绑定到多个其他的状态。例如,由调光器开关控制的灯将具有一个称为Generic OnOff的状态,另一个称为Generic Level的状态来控制灯的亮度。如果灯处于ON状态但是变暗到Level变为0时,那么OnOff状态将转换为OFF,这就是状态绑定的一个实际的案例。
红旭无线官2
March 1, 2022, 7:53 a.m.
3450
0 comment
Forward
Favorites
Last
Next
Scan the QR Code
Copy link
Scan the QR code to share.
Copy link
欢迎关注红旭无线官方微信公众号
share
link
type
password
Update password
Validity period
Markdown file
Word document
PDF document
PDF document (print)