更新时间:2022-02-21 GMT+08:00

编解码插件的输入/输出格式

表1 某款水表支持的服务定义

服务类型

属性名称

属性说明

属性类型(数据类型)

Battery

-

-

-

-

batteryLevel

电量(0--100)%

int

Meter

-

-

-

-

signalStrength

信号强度

int

-

currentReading

当前读数

int

-

dailyActivityTime

日激活通讯时长

string

那么数据上报时decode接口的输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "identifier": "12345678",
    "msgType": "deviceReq",
    "data": [
        {
            "serviceId": "Meter",
            "serviceData": {
                "currentReading": "46.3",
                "signalStrength": 16,
                "dailyActivityTime": 5706
            },
            "eventTime": "20160503T121540Z"
        },
        {
            "serviceId": "Battery",
            "serviceData": {
                "batteryLevel": 10
            },
            "eventTime": "20160503T121540Z"
        }
    ]
}

收到数据上报后,平台对设备的应答响应,调用encode接口编码,输入为

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "identifier": "123",
    "msgType": "cloudRsp",
    "request"[
        1,
        2
    ],
    "errcode": 0,
    "hasMore": 0
}
说明:

request的取值[1,2]是模拟数据,以实际情况为准。

表2 命令定义

基本功能名称

分类

名称

命令参数

数据类型

枚举值

WaterMeter

水表

-

-

-

-

-

CMD

SET_TEMPERATURE_READ_PERIOD

-

-

-

-

-

-

value

int

-

-

RSP

SET_TEMPERATURE_READ_PERIOD_RSP

-

-

-

-

-

-

result

int

0表示成功,1表示输入非法,2表示执行失败

那么命令下发调用encode接口时,输入为

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    "identifier": "12345678",
    "msgType": "cloudReq",
    "serviceId": "WaterMeter",
    "cmd": "SET_TEMPERATURE_READ_PERIOD",
    "paras": {
        "value": 4
    },
    "hasMore": 0
}

收到设备的命令应答后,调用decode接口解码,解码的输出

1
2
3
4
5
6
7
8
{
    "identifier": "123",
    "msgType": "deviceRsp",
    "errcode": 0,
    "body": {
        "result": 0
    }
}