设备接入 IOTDA-离线开发插件:encode接口说明

时间:2023-12-01 10:02:33

encode接口说明

encode接口的入参是JSON格式的数据,是平台下发的命令或应答。

平台的下行报文可以分为两种情况:

  • 平台对设备上报数据的应答(对应图中的消息
    表2 平台收到设备的上报数据后对设备的应答encode接口的入参结构定义

    字段名

    类型

    参数描述

    是否必填

    identifier

    String

    设备在应用协议里的标识,物联网平台通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。

    msgType

    String

    固定值"cloudRsp",表示平台收到设备的数据后对设备的应答。

    request

    byte[]

    设备上报的数据。

    errcode

    int

    请求处理的结果码,物联网平台根据该参数判断命令下发的状态。

    0表示成功,1表示失败。

    hasMore

    int

    表示平台是否还有后续消息下发,0表示没有,1表示有。

    后续消息是指,平台还有待下发的消息,以hasMore字段告知设备不要休眠。hasMore字段仅在PSM模式下生效,且需要“下行消息指示”开启。

    LwM2M协议的命令下发格式和MQTT协议的命令下发格式不一样

    :在cloudRsp场景下编解码插件检测工具显示返回null时,表示插件未定义上报数据的应答,设备侧不需要物联网平台给予响应。

    示例

    { 
        "identifier": "123", 
        "msgType": "cloudRsp", 
        "request": [ 
            1, 
            2 
        ], 
        "errcode": 0, 
        "hasMore": 0 
    }
  • 平台命令下发(对应图中的消息
    表3 平台下发命令encode接口的入参结构定义

    字段名

    类型

    参数描述

    是否必填

    identifier

    String

    设备在应用协议里的标识,物联网平台通过decode接口解析码流时获取该参数,通过encode接口编码时将该参数放入码流。

    msgType

    String

    固定值"cloudReq",表示平台下发的请求。

    serviceId

    String

    服务的id。

    cmd

    String

    服务的命令名,参见产品模型的服务命令定义。

    paras

    ObjectNode

    命令的参数,具体字段由产品模型定义。

    hasMore

    Int

    表示平台是否还有后续命令下发,0表示没有,1表示有。

    后续命令是指,平台还有待下发的消息,以hasMore字段告知设备不要休眠。hasMore字段仅在PSM模式下生效,且需要“下行消息指示”开启。

    mid

    Int

    2字节无符号的命令id,由物联网平台内部分配(范围1-65535)。

    物联网平台在通过encode接口下发命令时,把物联网平台分配的mid放入码流,和命令一起下发给设备;设备在上报命令执行结果(deviceRsp)时,再将此mid返回物联网平台。否则物联网平台无法将下发命令和命令执行结果(deviceRsp)进行关联,也就无法根据命令执行结果(deviceRsp)更新命令下发的状态(成功或失败)。

    示例

    { 
        "identifier": "123", 
        "msgType": "cloudReq", 
        "serviceId": "NBWaterMeterCommon", 
        "mid": 2016, 
        "cmd": "SET_TEMPERATURE_READ_PERIOD", 
        "paras": { 
            "value": 4 
        }, 
        "hasMore": 0} 
    }
support.huaweicloud.com/devg-iothub/iot_02_4020.html