四、什么是Element和Model

BLE Mesh理论资料

[四、 什么是Element和Model](#四、 什么是Element和Model)

[1、 什么是Element(元素)](#1、 什么是Element(元素))

[2、 什么是Model(模型)](#2、 什么是Model(模型))

[3、 状态与属性](#3、 状态与属性)

四、什么是Element和Model

1、什么是Element(元素)

元素包含定义一个节点功能的实例,每个节点都可以包括一个或者多个元素,且至少存在一个叫首要元素的元素,就类似于一个BLE设备可以包括一个或多个profile一样。举个例子,一个调光的灯泡通常会有一个元素,这个元素就会向外公开其具备的一个或者多个功能,例如通用开关和亮度控制功能。在这个例子中,Light Lightness Server Model就用于实现开/关和亮度等级控制功能。

另外一个例子就是调光灯泡还包含有一个占用传感器,此时这个节点将会有两个Element(元素):

  1. 用于灯泡的控制
  2. 用于传感器的控制

首要元素用于灯泡控制,第二个元素用于传感器的控制:

节点中的每个元素都有一个唯一的地址,称为单播地址。这允许每个元素独立于同一节点内的其他元素进行寻址,也就是说可以单播地址找到节点的各个元素。

2、什么是Model(模型)

模型就是定义了节点的真正的功能,其汇集了一个元素的状态,转换,绑定,信息的概念。也就是上面提及到的Model(模型)就类似于正常BLE设备的Service。而Mesh的模型又分为三种类型:

服务端模型:服务端模型可以具有跨越一个或多个元素的一个或多个状态,服务器模型定义了模型可以发送和接收的消息,它还定义了基于这些信息的Element的行为。换句话说,服务端模型公开了可以被客户端读取或控制的元素的状态。一个服务端模型的应用实例就是:对外公开传感器状态的传感器或者存储当前灯光状态的灯泡。

客户端模型:客户端模型定义了一组请求并更改服务端状态的消息。例如:ON/OFF开关(作为客户端运行)可以向ON/OFF服务端发送消息以更改设备的状态。

控制端模型(就是同时支持客户端和服务端模型):最终的应用程序可以使用服务端模型或客户端模型,或两者以及控制逻辑。服务端和客户端模型的任意组合都会产生控制模型。

除了上面的之外,模型可以扩展其他模型的功能。也就是说,模型可以是分层的。例如:灯光亮度模型扩展了通用开关服务端模型和通用等级服务端模型。这意味着如果你在应用程序中实现灯光亮度模型,你将获得所有控制灯光,通用等级以及通用开关的功能。从数学的角度来说,如果A模型是B模型的子集,那么B可以称为扩展模型,而不扩展任何其他模型的模型称为"根模型",需要注意的是:通过增加或者删除行为来改变模型是不允许的,正确的做法应该是扩展其他现有的模型组成新的模型。

3、状态与属性

状态:元素可能处于各种情况,在SIG Mesh中,这些条件存储在被称为状态的值中。每个

状态都是元素中包含的某种类型的值,除了值之外,状态还是具有与该状态关联的行为,状态由蓝牙SIG定义。例如:称为"通用OnOff"的状态,其可能具有两个值或OFF(行为)于灯泡或风扇电机等设备非常有用。术语"通用"用于表示此状态及其行为可能在不同类型的Mesh设备中都有用。

属性:属性还包含于元素相关的值,但是与状态不同的是属性提供了解释状态的上下文。例如,要发送温度状态值的设备,温度状态可以是"当前室内环境温度"或"当前室外环境温度"。在这种情况下,将使用属性来提供温度状态值的上下文。属性可以是制造商属性,它们是只读或管理员属性,允许读写访问。

状态转移:状态转移可以是瞬间的,或者可以在称为转换时间的时段内执行。

状态绑定:状态可以被绑定在一起,使得每一个状态的变化导致另一个状态的变化。一个状态可以被绑定到多个其他的状态。例如,由调光器开关控制的灯将具有一个称为Generic OnOff的状态,另一个称为Generic Level的状态来控制灯的亮度。如果灯处于ON状态但是变暗到Level变为0时,那么OnOff状态将转换为OFF,这就是状态绑定的一个实际的案例。

私信我,有惊喜哦~!

相关推荐
sramdram2 个月前
BLE蓝牙方案,BLE低功耗蓝牙模块的应用方案
ble蓝牙·蓝牙方案·ble蓝牙方案·低功耗ble蓝牙
青杉`3 年前
Android低功耗蓝牙开发总结
android·蓝牙·低功耗蓝牙·ble蓝牙