设备接入 IOTDA-离线开发产品模型:服务能力定义样例
服务能力定义样例
servicetype-capability.json记录了该设备的服务信息:
{ "services": [ { "serviceType": "WaterMeterBasic", "description": "WaterMeterBasic", "commands": [ { "commandName": "SET_PRESSURE_READ_PERIOD", "paras": [ { "paraName": "value", "dataType": "int", "required": true, "min": 1, "max": 24, "step": 1, "maxLength": 10, "unit": "hour", "enumList": null } ], "responses": [ { "responseName": "SET_PRESSURE_READ_PERIOD_RSP", "paras": [ { "paraName": "result", "dataType": "int", "required": true, "min": -1000000, "max": 1000000, "step": 1, "maxLength": 10, "unit": null, "enumList": null } ] } ] } ], "properties": [ { "propertyName": "registerFlow", "dataType": "int", "required": true, "min": 0, "max": 0, "step": 1, "maxLength": 0, "method": "R", "unit": null, "enumList": null }, { "propertyName": "currentReading", "dataType": "string", "required": false, "min": 0, "max": 0, "step": 1, "maxLength": 0, "method": "W", "unit": "L", "enumList": null }, { "propertyName": "timeOfReading", "dataType": "string", "required": false, "min": 0, "max": 0, "step": 1, "maxLength": 0, "method": "W", "unit": null, "enumList": null }, ...... ] } ] }
各字段的解释:
字段 |
子字段 |
必选/可选 |
描述 |
|||
---|---|---|---|---|---|---|
services |
- |
- |
- |
- |
必选 |
包含了一个服务的完整信息(根节点不可修改)。 |
- |
serviceType |
- |
- |
- |
必选 |
指示服务的类型,与devicetype-capability.json中serviceType字段保持一致。 |
- |
description |
- |
- |
- |
必选 |
指示服务的描述信息。 非功能性字段,仅起到描述作用,可置为null。 |
- |
commands |
- |
- |
- |
必选 |
指示设备可以执行的命令,如果本服务无命令则置null。 |
- |
- |
commandName |
- |
- |
必选 |
指示命令的名字,命令名与参数共同构成一个完整的命令。 |
- |
- |
paras |
- |
- |
必选 |
命令包含的参数。 |
- |
- |
- |
paraName |
- |
必选 |
命令中参数的名字。 |
- |
- |
- |
dataType |
- |
必选 |
指示命令参数的数据类型。 取值范围:string、int、string list、decimal、DateTime、jsonObject、enum、boolean。 上报数据时,复杂类型数据格式如下:
|
- |
- |
- |
required |
- |
必选 |
指示本命令是否必选,取值为true或false,默认取值false(非必选)。 目前本字段是非功能性字段,仅起到描述作用。 |
- |
- |
- |
min |
- |
必选 |
指示最小值。 仅当dataType为int、decimal时生效。 |
- |
- |
- |
max |
- |
必选 |
指示最大值。 仅当dataType为int、decimal时生效。 |
- |
- |
- |
step |
- |
必选 |
指示步长。 暂不使用,填0即可。 |
- |
- |
- |
maxLength |
- |
必选 |
指示字符串长度。 仅当dataType为string、string list、DateTime时生效。 |
- |
- |
- |
unit |
- |
必选 |
指示单位,英文。 取值根据参数确定,如: 温度单位:“C”或“K” 百分比单位:“%” 压强单位:“Pa”或“kPa” |
- |
- |
- |
enumList |
- |
必选 |
指示枚举值。 如开关状态status可有如下取值: "enumList" : ["OPEN","CLOSE"] 目前本字段是非功能性字段,仅起到描述作用,建议准确定义。 |
- |
- |
responses |
- |
- |
必选 |
命令执行的响应。 |
- |
- |
- |
responseName |
- |
必选 |
命名可以在该responses对应命令的commandName后面添加“_RSP”。 |
- |
- |
- |
paras |
- |
必选 |
命令响应的参数。 |
- |
- |
- |
- |
paraName |
必选 |
命令中参数的名字。 |
- |
- |
- |
- |
dataType |
必选 |
指示数据类型。 取值范围:string、int、string list、decimal、DateTime、jsonObject 上报数据时,复杂类型数据格式如下:
|
- |
- |
- |
- |
required |
必选 |
指示本命令响应是否必选,取值为true或false,默认取值false(非必选)。 目前本字段是非功能性字段,仅起到描述作用。 |
- |
- |
- |
- |
min |
必选 |
指示最小值。 仅当dataType为int、decimal时生效,逻辑大于等于。 |
- |
- |
- |
- |
max |
必选 |
指示最大值。 仅当dataType为int、decimal时生效,逻辑小于等于。 |
- |
- |
- |
- |
step |
必选 |
指示步长。 暂不使用,填0即可。 |
- |
- |
- |
- |
maxLength |
必选 |
指示字符串长度。 仅当dataType为string、string list、DateTime时生效。 |
- |
- |
- |
- |
unit |
必选 |
指示单位,英文。 取值根据参数确定,如: 温度单位:“C”或“K” 百分比单位:“%” 压强单位:“Pa”或“kPa” |
- |
- |
- |
- |
enumList |
必选 |
指示枚举值。 如开关状态status可有如下取值: "enumList" : ["OPEN","CLOSE"] 目前本字段是非功能性字段,仅起到描述作用,建议准确定义。 |
- |
properties |
- |
- |
- |
必选 |
上报数据描述,每一个子节点为一条属性。 |
- |
- |
propertyName |
- |
- |
必选 |
指示属性名称。 |
- |
- |
dataType |
- |
- |
必选 |
指示数据类型。 取值范围:string、int、string list、decimal、DateTime、jsonObject 上报数据时,复杂类型数据格式如下:
|
- |
- |
required |
- |
- |
必选 |
指示本条属性是否必选,取值为true或false,默认取值false(非必选)。 目前本字段是非功能性字段,仅起到描述作用。 |
- |
- |
min |
- |
- |
必选 |
指示最小值。 仅当dataType为int、decimal时生效,逻辑大于等于。 |
- |
- |
max |
- |
- |
必选 |
指示最大值。 仅当dataType为int、decimal时生效,逻辑小于等于。 |
- |
- |
step |
- |
- |
必选 |
指示步长。 暂不使用,填0即可。 |
- |
- |
method |
- |
- |
必选 |
指示访问模式。 R:可读;W:可写;E:可订阅。 取值范围:R、RW、RE、RWE 、null。 |
- |
- |
unit |
- |
- |
必选 |
指示单位,英文。 取值根据参数确定,如: 温度单位:“C”或“K” 百分比单位:“%” 压强单位:“Pa”或“kPa” |
- |
- |
maxLength |
- |
- |
必选 |
指示字符串长度。 仅当dataType为string、string list、DateTime时生效。 |
- |
- |
enumList |
- |
- |
必选 |
指示枚举值。 如电池状态(batteryStatus)可有如下取值: "enumList" : [0, 1, 2, 3, 4, 5, 6] 目前本字段是非功能性字段,仅起到描述作用,建议准确定义。 |