30.thing-model
概述
物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。在物联网平台中,定义物模型即定义产品功能,完成功能定义后,系统将自动生成该产品的物模型。
物模型TSL(Thing Specification Language)是一个JSON格式的文件。它是物理空间中的实体,如无人机、相机、机场等在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外提供哪些信息。定义了这三个维度,即完成了产品功能的定义。
物模型将产品功能类型分为三类:属性、服务和事件。定义了这三类功能,即完成了物模型的定义。
功能类型
说明
属性(Property)
一般用于描述设备运行时的状态,如飞机姿态,电池电量,相机模式等。属性支持Get和Set请求方式,应用系统可发起对属性的读取和设置请求。
服务(Service)
设备可被外部调用的能力和方法,可设置输入参数和输出参数。相比于属性,服务可以通过一条指令实现更复杂的业务逻辑。Service无需设置Set或Get 某个Property的内容。
事件(Event)
设备运行时的事件。 事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如飞机靠近禁飞区,设备发生故障等事件。事件一般会被额外的系统订阅,用于告警或后续的处理动作。
备注:
属性Property设定好会自动生成对应属性的Get和Set方法,不需要通过Service额外添加。
为什么需要物模型
大疆作为智能空间硬件的设计制造商,会有不限于无人机,负载,地面终端,手持设备等各种类型的硬件产品。物模型是从硬件对外,对用户暴露的能力的角度对硬件设备进行数字化建模。设备联云之后,通过物模型的映射,可以实现自动的交互页面的展示。理论上随着物模型参数类型的丰富,后续接入硬件的成本是要大大降低的,因为同属性的组件和能力已经完成开发,可以直接复用,并且可以做到跨各种不同设备前端组件的一致性。
同时,物模型定义可以屏蔽硬件内部的复杂逻辑,可以帮助使用方更加专注于用,而非硬件内部实现细节,大大降低硬件接入的门槛。
物模型文件规范
任何一个产品的物模型文件均由四部分组成。
{
"profile": {}, # 表示该产品是什么
"properties": [], # 表示该产品有哪些属性
"services": [], # 表示该产品有哪些可以被外部调用的能力和方法
"events": [] # 表示该产品有哪些需要被外部感知和处理的通知信息
}数据触发机制
通道
数据类型
传输机制
传输频率
Properties
push_mode = 0
设备端主动定频推送信息。
0.5Hz
Properties
push_mode = 1
设备端不做定频推送,但是如果该Property发生变化,需要立即推送服务端。
-
Properties
push_mode = 2
设备端不做定频推送,状态发生变化不无需主动通知服务端,服务端会自己触发来进行获取。
-
Service
-
事件触发,云端通过service通道触发。
-
Event
-
事件触发,满足物模型定义的触发事件,设备端进行主动上报。
-
Last updated