欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

物模型结构说明

最编程 2024-07-29 11:25:59
...

物模型数据类型
物模型数据类型.png

物模型主要结构
物模型结构.png

JSON结构概览
物模型json结构概览.png

1.JSON结构-properties

如上图物模型json结构概览所示,如果该模型有11个属性,那么在properties节点上就会有长度为11的数组

如下图所示,为属性节点结构的概览,和对应的xmind图解

属性节点结构概览.png
属性节点结构.png

type 中的值对应着10中不同的数据类型,不同类型的 specs (类型规格说明)都会有不同的结构

目前就现阶段使用的 int long float double date text bool enum array 进行规格结构说明

int(对应页面的int32)

int 类型结构里包含 min max step unit unitName 属性

int类型结构json.png
int类型结构.png

剩下的 long(对应页面的int64) float double 结构和int一致

long类型结构json.png
long类型结构.png
float类型结构json.png
float类型结构.png
double类型结构json.png
double类型结构.png

date

date类型结构json.png

由上图所示,date类型节点的 specs 是个空对象

bool

bool 类型 的 truefalse 在节点中值的体现为 10

bool类型结构json.png
bool类型结构.png

enum

对于 enum 类型,specs 结构的属性名称(即key)用的是数字,对应的属性值 是文本类型,例如我定义一个状态枚举,1表示状态12表示状态23表示状态3,该定义对应的枚举如下图所示

enum类型结构json.png

text

text 类型 的 specs 结构 中只有长度属性 length

text类型结构json.png
text类型结构.png

array

对于 array 类型,除了type节点值为struct外,结构都是一致的,对于struct数组,结构会比较复杂。由于目前业务上用不到这么复杂的结构,暂不进行说明

array类型结构json.png
array类型结构.png

2.JSON结构-events

事件节点结构如下图所示

events节点结构概览.png
事件节点结构概览.png

type 对应的三种事件类型为:info (信息),alert(告警),error(故障)

属性上报事件

该事件属于默认事件,只要用户定义了属性项,对应的属性上报事件中就有该属性的属性上报定义,例如,该产品的物模型有两条属性,那么对应的属性上报事件中,outputData 数组也有对应的两条属性的说明(除了outputData节点外的其他节点值都是固定值,不允许修改),则结构如下

{
      "identifier": "post",
      "name": "post",
      "type": "info",
      "required": true,
      "desc": "属性上报",
      "method": "thing.event.property.post",
      "outputData": [
        {
          "identifier": "RunningState",
          "name": "运行状态",
          "dataType": {
            "type": "int",
            "specs": {
              "min": "-1024",
              "max": "1024",
              "unit": "ph",
              "unitName": "PH值",
              "step": "1"
            }
          }
        },
        {
          "identifier": "Brightness",
          "name": "亮度百分比",
          "dataType": {
            "type": "int",
            "specs": {
              "min": "0",
              "max": "100",
              "step": "1"
            }
          }
        }
      ]
    }

其他类型事件

其他的事件对应的结构中,method的命名格式为 thing.event.${identifier}.post, 与identifier关联,例如定义一个 更新完成 事件 identifier 值为 updateSuccess,对应的method值为 thing.event.updateSuccess.post

outputData

outputData中节点的数据结构,是 JSON结构-properties 中属性节点的简化版本

outputData节点结构.png

3.JSON结构-services

services 节点的json数据结构如下图所示

services结构概览json.png
services节点结构.png

set服务

当物模型中有一个可写入的属性时,set服务中就会有对应属性的配置

对于set服务,json数据格式如下所示

set节点json.png

identifier、name、required、desc、callType、method 值为固定值

inputData 中节点的数据结构,是 JSON结构-properties 中属性节点的简化版本

inputData节点结构.png

outputData 节点固定为空数组

get服务

当物模型中有属性时,get服务中就会有对应属性的配置

对于get服务,json数据格式如下所示

get节点json.png

identifier、name、required、desc、callType、method 值为固定值

inputData 中节点的数据结构是一个字符串数组,物模型有4个属性,该get服务中inputData中的数组长度为4,里面的内容是4个属性节点中identifier对应的值

"inputData": [
        "RunningState",
        "Brightness",
        "qwer",
        "dasdas"
      ]

outputData 中节点的数据结构,是 JSON结构-properties 中属性节点的简化版本

outputData节点结构.png

其他类型服务

其他的服务对应的结构中,method的命名格式为 thing.service.${identifier}, 与identifier关联,例如定义一个 删除数据 服务 identifier 值为 deleteData,对应的method值为 thing.service.deleteData

对应的 inputData outputData 中节点的数据结构,是 JSON结构-properties 中属性节点的简化版本

inputData节点结构.png
outputData节点结构.png