【学习笔记】--- 蓝牙.SIGMESH_model层

【学习笔记】--- 蓝牙.SIGMESH_model层_第1张图片

//写在前面

为啥要放这个图?

  1. 因为model层就是定义了图中模型(model)的具体内容,而图中的其他内容又与模型息息相关。
  2. 看了许多文章,大多一上来就给我搞了以下的一堆概念,但其实在看概念的时候我十分需要这个图来贯穿我看的概念之间的关系,所以把图放到前面来,邀请大家看文之前之时稍微感受一下上面几个东西之间的关系。

//正文开始

1. 一些概念

  • 节点:定义了特定功能的实体(如:灯)
  • 元素:一个节点功能的实例(如:还是灯)

节点与元素:
① 一个节点有且仅有一个主元素,0或n个次要元素;
② 如果元素是个灯,那么节点可以是个排灯;
③ 又或者一个节点首要元素是个灯,次要元素可能是个pir;
④ 节点是组网中的最小单位,元素是功能实体的最小单位;
⑤ 元素是可寻址的最小单位(即元素的地址就是单播地址)。
问!为什么有了节点还要元素?就是说不能只有节点吗?是为了降本?

  • 模型:用于定义元素的具体功能,类型有三,服务端模型,客户端模型,控制端模型(前两类的结合体)

① 服务端模型:用于提供消息,一般是传感器或者可存储设备状态的设备(如可存储自己亮度的灯);
② 客户端模型:用于获取消息,最最常见的就是开关啦,向服务端获取消息,自己本身没有状态;
③ 控制端模型:用于……前两类的结合体~

  • 状态:根据上面的描述应该大概能get到吧,比如灯的状态有“通用OnOff”,而具体的“On”和“Off”叫做状态的行为(就是要叫一个你记不住的名字)。(注:状态是由蓝牙SIG定义的,不是你想叫啥就叫啥)。
  • 属性:也是用于提供与元素相关的信息,与状态不同的是,它是用于提供解释状态的上下文(上下文…上次见到它还是在大学学操作系统的调度的时候呢…)。

状态与属性:
举个栗子,比如一个传感它发送了一个8位的温度值状态,那么它的属性就是描述这个温度值的相关联的信息,比如这个温度值是代表室内温度还是室外温度呀,这个温度值的单位是摄氏度还是华氏度呀,之类的。这样,收到温度值的设备就能通过属性来了解该值的具体含义。

ps:感觉“属性与状态的关系”和ble协议中GATT(属性协议配置规范)的characteristic(特性)里“特性描述符与特性值的关系”类似?

2. 一些联系

记录完上面的,我再来具体记一下基于model层,模式、消息、状态之间的联系(图看不清可放大),左边的框图是官方提供的client-server model communication和control model communication,右边是我根据框图自己套的实例,便于自己理解:

模型层结束!模型层涉及模型的实施,因此涉及一个或多个模型规格中定义的行为、消息、状态、状态绑定等的实现,更多的详细定义我们可以从Mesh Model Spec获知,当遇到了相应的模型时再相应的查阅即可(就是没必要死记硬背哈,了解了基本理论知识后,要用什么再查文档即可)。

学习搬运自:
红旭无线:Sig Mesh教程;
蓝牙mesh一起学:www.zhihu.com/column/bluetooth-mesh;
sigmesh笔记:blog.csdn.net/King_and_soldier/article/details/115701195;

你可能感兴趣的:(【学习笔记】,---,蓝牙,物联网)