首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlexContainer、Container和oneM2M中的SDT

FlexContainer、Container和oneM2M中的SDT
EN

Stack Overflow用户
提问于 2019-04-11 07:25:07
回答 1查看 263关注 0票数 4

什么时候应该使用< flexContainer >而不是<容器>?我看到了一些< flexContainer>的用例示例,他们将< flexContainer >用于SDT设备。< flexContainer>仅用于SDT设备吗?

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

SDT是为TS-0023文档中的某些设备定义的。如果设备的制造商没有定义SDT,如果我们想使用该设备,我们如何为它创建一个SDT/XML文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 13:48:59

它在许多方面与正常资源不同:

  • 资源不存储资源本身中的实际值。儿童资源.或者更多的资源。相反,专门化本身就拥有实际的价值。
  • A本身不能直接实例化,它只是进一步专门化的逻辑基础(非常像OOP中的基类)。它定义了许多支持这些特殊化的属性,例如,containerDefinition属性包含一个标识符,该标识符定义了特定资源的实际类型。然后,专门化指定一个定义良好的结构,该结构可能包含相当复杂的数据点结构。TS-0023中提到的器件和ModuleClasses就是这样的特例,例如温度.这些专门化具有定义良好的结构,具有语义、约束等。
  • A的一个巨大优势是它可以被更新,而a中的内容只能被添加或删除。这也意味着,如果一个应用程序只需要一个设备的当前状态,并且对旧的数据值不感兴趣,那么一个单独的专门化(或多或少)就是应用程序所需要的一切。
  • 一个专业中包含的所有数据点都是同时读写的。在某些情况下,这减少了大量的通信开销,并减少了在读取或写入许多数据点时出现竞争情况的机会。

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

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

SDT定义可在https://git.onem2m.org/MAS/SDT上使用。

在TS-0023中定义的ModuleClasses和设备的SDT的最新版本可在https://git.onem2m.org/MAS/Home-Appliances上获得。

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

,还有两个注释,

  • CSE是否允许自定义的专门化取决于CSE的实现和策略。
  • 在本文撰写之时(2019年4月),oneM2M正在开发一个支持产品定义、更好的继承和进一步语义支持的SDT新版本。oneM2M还支持新版本的TS-0023规范,以支持跨域IoT场景和设备,而不仅仅是家庭域。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55626865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档