OneM2M中的FlexContainer,容器和SDT

时间:2019-04-11 07:25:08

标签: onem2m

何时应使用 代替 ?我看到了 的一些用例示例,他们为SDT Device使用了 仅用于SDT设备吗?

想象一下,我们创建了一个 <容器> ,它旨在保存温度传感器的值。设备的实际值存储在 中,温度类型(摄氏或华氏温度)由 资源的语义描述符字段定义。但是,我们也可以在 [customAttribute] 字段中定义值及其类型。因此,在这种情况下,为什么我应该在 的语义描述符字段中定义数据类型,或者为什么我应该使用 而不是

SDT在TS-0023文档中为某些设备定义。如果设备制造商未定义SDT,而我们想使用该设备,我们如何为其创建SDT / XML文件?

1 个答案:

答案 0 :(得分:3)

在许多方面与普通的资源不同:

  • 资源不会在资源本身中存储实际值。 的子资源,即。 或其他资源。相比之下,专门化本身保留实际值。
  • 本身不能直接实例化,它只是进一步专门化的逻辑基础(非常类似于OOP中的基类)。它定义了许多支持这些专业的属性,例如, containerDefinition 属性包含一个标识符,该标识符定义了特定资源的实际类型。然后,专门化指定一个定义良好的结构,其中可能包含相当复杂的数据点结构。 TS-0023中提到的设备和模块类就是这样的专业,例如温度。这些专业具有定义明确的结构,包括语义,约束等。
  • 的一大优点是它可以被更新,而中的只能被添加或删除。这也意味着,如果一个应用程序仅需要设备的当前状态并且对较旧的数据值不感兴趣,那么一个专业化(或多或少)就是应用程序所需的一切。
  • 专长中包含的所有数据点将同时读取和写入。在某些情况下,这会减少很多通信开销,并减少在读取或写入许多数据点时出现争用情况的机会。

对于SDT:智能设备模板是一种规范方法,用于定义“乐高”功能块,即所谓的“模块类”。然后可以采用这些ModuleClasses来构造典型的“设备”。 提及的oneM2M规范“ TS-0023:家用电器信息模型和映射”指定了许多这些模块类和设备以及到专业化的映射。这意味着对于“温度”功能/ ModuleClass的定义,有一个oneM2M 资源可用。

当您要使用SDT创建新的设备定义时,我建议您首先查看TS-0023中已定义的ModuleClass和设备的列表。如果所需的功能不可用,则可以通过编写自己的SDT文件来定义自己的ModuleClass和Device。

可以在https://git.onem2m.org/MAS/SDT上获得SDT定义。

https://git.onem2m.org/MAS/Home-Appliances上提供了TS-0023中定义的用于模块类和设备的SDT的最新版本。

可以在https://github.com/Homegateway/SDTTool上找到一种根据SDT定义生成必要的XSD的工具。

又有两个注释

  • CSE是否允许自定义专业化取决于CSE实施和策略。
  • 在撰写本文时(2019年4月),oneM2M正在开发新版本的SDT,该SDT支持例如产品定义,更好的继承以及进一步的语义支持。 oneM2M还适用于TS-0023规范的新版本,以支持跨域IoT场景和设备,而不仅限于本地域。