物模型
概述
物模型指将物理空间中的实体数字化,并在云端构建该实体的数据模型。在物联网平台中,定义物模型即定义产品功能,完成功能定义后,系统将自动生成该产品的物模型。
物模型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 | - | 事件触发,满足物模型定义的触发事件,设备端进行主动上报。 | - |