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
-
+
首页
什么是Element和Model
# 前言 原本小编是想将**Element(元素)和Model(模型)** 拆分开成两篇独立的文章来讲解,但是实在没有办法做到;因为它们两者之间的绑定实在太深了,如果非要将他们剥离之后单独讲解会很容易导致理解不连贯;如果用过BLE的读者应该就会比较好理解这两个新的名词,其分别类似于profile与service的关系。当然啦,新人也不必悲观,下面我用两幅图来让大家先有一个基础的了解。 ![](https://docdisk.wireless-tech.cn/img/2022/02/11/element_model_vs_profile_service_20220211154529158510.png) # 什么是Element(元素) 元素包含定义一个节点功能的实例,每个节点都可以包括一个或者多个元素,且至少存在一个叫**首要元素**的元素,就类似于一个BLE设备可以包括一个或者多个profile一样。举个例子,一个调光的灯泡通常会有一个元素,这个元素就会向外公开其具备的一个或者多个功能,例如**通用开关**和**亮度控制**功能。在这个例子中,**Light Lightness Server Model**就用于实现开/关和亮度等级控制功能。 另外一个例子就是调光灯泡还包含有一个**占用传感器**,此时这个节点将会有两个Element(元素): 1. 用于灯泡的控制 2. 用于传感器的控制 首要元素用于灯泡控制,第二个元素用于传感器的控制,如下图所示: ![](https://docdisk.wireless-tech.cn/img/2022/02/11/model_element_20220211154939649378.png) 节点中的每个元素都有一个唯一的地址,称为单播地址。这允许每个元素独立于同一节点内的其他元素进行寻址,也就是说可以通过单播地址找到节点的各个元素。 # 什么是Model(模型) 起初,小编刚看到这个名词一时半会也难于理解这是啥玩意啊?就跟下图的反应一样: ![](https://docdisk.wireless-tech.cn/img/2022/02/11/what_is_model_20220211155619249183.gif) 其实,模型就是定义了节点的真正的功能,其汇集了一个元素的**状态**、**转换**、**绑定**、**信息**的概念。也就是小编上面提及到的Model(模型)就类似于正常BLE设备的Service。而Mesh的模型又分为三种类型: ## 服务端模型 服务端模型可以具有跨越一个或多个元素的一个或多个状态,服务器模型定义了模型可以发送和接收的消息,它还定义了基于这些消息的Element的行为。换句话说,服务端模型公开了可以被客户端读取或控制的元素的状态。一个服务端模型的应用实例就是:对外公开传感器状态的**传感器**或者存储当前灯光状态的**灯泡** ## 客户端模型 客户端模型定义了一组请求并更改服务端状态的消息。例如,ON/OFF开关(作为客户端运行)可以向ON/OFF服务端发送消息以更改设备的状态 ![](https://docdisk.wireless-tech.cn/img/2022/02/11/Client_-server_model_communication_20220211155228368337.png) ## 控制端模型(就是同时支持客户端和服务端模型) 最终的应用程序可以使用服务端模型或客户端模型,或两者以及控制逻辑。服务端和客户端模型的任意组合都会产生控制模型。 ![](https://docdisk.wireless-tech.cn/img/2022/02/11/Control_model_communication_20220211155425496398.png) 除了上面的之外,模型可以扩展其他模型的功能。也就是说,模型可以是分层的。例如,**灯光亮度模型**扩展了**通用开关服务端模型**和**通用等级服务端模型**。这意味着如果你在应用程序中实现**灯光亮度模型**,你将获得所有控制灯光、通用等级以及通用开关的功能;从数学的角度来说,如果A模型是B模型的子集,那么B可以称为扩展模型,而不扩展任何其他模型的模型称为 **“根模型”**;**需要注意的是:通过增加或者删除行为来改变模型是不允许的,正确的做法应该是扩展其他现有的模型组成新的模型**。 # 状态与属性 这个状态以及属性又是从模型中引出的概念,因此了解了状态与属性也是加深理解模型的重要关键。 ## 状态 元素可能处于各种情况;在SIG Mesh中,这些条件存储在被称为**状态**的值中。每个状态都是元素中包含的某种类型的值。除了值之外,状态还具有与该状态关联的行为,状态由蓝牙SIG定义。例如,称为 **“通用OnOff”** 的状态,其可能具有两个值 **或OFF(行为)** 于灯泡或风扇电机等设备非常有用。术语 **“通用”** 用于表示此状态及其行为可能在不同类型的Mesh设备中都有用。 ## 属性 属性还包含与元素相关的值;但是与状态不同的是属性提供了解释状态的上下文。例如,要发送温度状态值的设备,温度状态可以是 **“当前室内环境温度”或“当前室外环境温度”**。在这种情况下,将使用属性来提供温度状态值的上下文。属性可以是制造商属性,它们是只读或管理员属性,允许读写访问。 ## 状态转移 状态转换可以是瞬时的,或者可以在称为**转换时间**的时段内执行。 ## 状态绑定 状态可以被绑定在一起,使得一个状态的变化导致另一个状态的变化。一个状态可以被绑定到多个其他的状态。例如,由调光器开关控制的灯将具有一个称为Generic OnOff的状态,另一个称为Generic Level的状态来控制灯的亮度。如果灯处于ON状态但是变暗到Level变为0时,那么OnOff状态将转换为OFF,这就是状态绑定的一个实际的案例。
红旭无线官2
2022年3月1日 07:53
2676
0 条评论
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
欢迎关注红旭无线官方微信公众号
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期