Bluetooth sig mesh 杂谈一(为什么会采用model的概念)

背景介绍

本文主要参考mesh profile 和 mesh model specification,本文的内容也仅仅是一个思维的探讨。若转载请标明出处:原作者

为什么会采用model 这个概念

本文主要从背后的哲学和软件实现方面进行探讨。

哲学方面

我们都知道现在很多软件框架的设计都是有一套背后的哲学逻辑。比如Python 程序语言设计之前也是有一套哲学思想支持着,下面设摘自网友的说法。
————————————————
美丽优于丑陋。
清楚优于含糊。
简单优于复杂。
复杂优于繁琐。
平坦优于曲折。
宽松优于密集。
重要的是可读性。
特殊的案例不足以特殊到破坏规则。
尽管实践可以打破真理。
错误却不可置之不理。
除非另有明确要求。
面对模棱两可,拒绝猜测。
总会有一个 —— 最好是只有一个 —— 显而易见的方式来明辨。
哪怕这种方式在开始的时候可能并不明显。
现在有比没有好。
尽管没有经常好于现在。
如果如何实现很难被解释清楚,那么这个想法就是一个坏想法。
如果如何实现可以被很好的解释,那么这是一个好想法。
————————————————
原文链接:https://blog.csdn.net/sinat_28442665/article/details/82704960。

那么sig model 他的哲学意义是什么呢?

1、万物都能抽象成模型

我们都知道Bluetooth mesh 是完成物联网边缘网路组网的,他的对象都是实际物理对象,比如电扇,灯,传感器。
我们看下面2个图,灯和插座。这2个模型都能被抽象成0,1模型,也就是mesh model specification 引入的generic onoff mode的模型,(灯的颜色和色温需要通过其他的模型进行表示)。

在这里插入图片描述
在这里插入图片描述
同理我们看看,我们看看风扇,风扇除了有开关还有转速,哪转速可以怎么抽象呢?转速可以抽象成一个0到65536的值转义成pwm的占空比为0~100%,也就是mesh model specification 引入的generic level mode的模型。我们看出他们背后的思想就是把物理世界的事物抽象成一个状态,然后把状态归纳成一个model 对象。

老子道德经:世界的初始形式是静的,万物都处于自然和谐的状态中。所以我认为把事物抽象一个状态是非常合理,由于现在可以联网的设备都是数字化的,基本的数字就能表达他的状态。

在这里插入图片描述

软件方面

model 很容易表达成一个对象,我们都知道面对对象的编程思维更符合解释事物的客观内容。那么sig mesh mode 真是完全面对对象的思想么。
model对应着对象,用model ID 引用
状态对应属性。
消息对应着方法。
在这里插入图片描述
这样的背后的逻辑让整个软件的可扩展性变得更强。

扫描二维码关注公众号,回复: 11425864 查看本文章

进阶思考

在这里插入图片描述
为什么如上图,还有节点和元素的概念,这个背后意义是啥。
首先我们对于事物的认识都是通过名字,那么这个元素就是名字,又因为我们处于通信网络,那么很自然就把名字转换成了地址。实际元素就是单播地址。
但是我们还有个疑问,为什么需要把地址这么強关联到modle上面呢?
我们可以还自然给每个节点设置地址,但是地址可以不是mesh model上面的概念。比如每个电脑都有一个IP地址,但是IP地址在抽象方面和电脑其他的状态并没有关系。
因为我们一个节点可以有2个相同的model,比如插排有很多开关model,如何区分控制哪一个model,那么就需要更多的地址来表示。

关注作者:好文持续更新中。。。

参考文章

[1] Bluetooth Mesh Model specification
[2] Bluetooth Mesh Profile specification, Version 1.0 or later

猜你喜欢

转载自blog.csdn.net/XG_2013/article/details/107547346