Object 19

Object 19 (LwM2M APPDATA)可以用于应用层业务数据的封装,实现包括业务数据上报、业务指令下发、终端事件上报等功能。

目前平台仅支持Data字段,其他字段暂时不支持,即:

  • 消息上行通过/19/0/0传送

  • 消息下行通过/19/1/0传送

对于Data字段,平台既支持数据透传也支持数据解析(非透传)。对于非透传设备,数据格式支持紧凑二进制和Json两种格式。

一、非透传设备

非透传设备上报的业务数据,平台需要对业务数据进行解析,因此数据格式必须遵守平台关于Object19的约定,目前Object19支持紧凑二进制和Json两种数据格式。

1、紧凑二进制格式

业务数据上报、事件上报、无线参数上报的Data字段编码格式:

参数名称 参数类型 类型说明 参数说明
CMDType Unsigned Integer(1) 必选定长 报文类型,固定为0x02
ServiceID Unsigned Integer(2) 必选定长 服务ID
Payload_length Unsigned Integer(2) 必选定长 业务数据长度
Payload Binary 长度为Payload_length 业务数据(二进制格式)
  • CMDType:必填字段,1Byte,数据上报-0x02;事件上报-0x07;无线参数上报-0x03;
  • ServiceID:必填字段,2Bytes,填写平台分配的服务ID

  • Payload_length:必填字段,2Bytes,根据payload长度填写

  • Payload:类型为Binary,Parameter1、Parameter2等需要按照对应服务的属性列表的顺序填写,Parameter的类型要与属性类型一致。

业务指令下发、指令下发响应的Data字段编码格式:

参数名称 参数类型 类型说明 参数说明
CMDType Unsigned Integer(1) 必选定长 报文类型, 下发指令固定为0x06,指令响应固定为0x86
ServiceID Unsigned Integer(2) 必选定长 服务ID
Task ID Unsigned Integer(2) 必选定长 任务ID
Payload_length Unsigned Integer(2) 必选定长 数据长度
Payload Binary 长度为Payload_length 指令或指令响应数据(二进制格式)
  • CMDType:必填字段,1Byte,下行指令固定为0x06,指令响应固定为0x86
  • ServiceID:必填字段,2Bytes,填写平台分配的服务ID

  • TaskID:必填字段,2Bytes,由平台分配,用于关联下发指令和回复响应,指令和响应中的TaskID必须一致

  • Payload_length:必填字段,2Bytes,Payload的长度

  • Payload:类型为Binary,按照服务定义的属性(或参数)进行编码和解码

示例1、设备上报两个属性

服务ID:1,属性1:5个字节的定长字符串“hello”,属性2:2个字节的整型,值为100。首先需要将属性值转换为十六进制,字符串“hello”转换为十六进制为:0x68656C6C6F(参照ASCII码表转换),100的十六进制为0x0064。编码过程为:

CMDType:0x02

ServiceID:0x0001

Payload_length:0x0007

Payload:0x68656C6C6F0064

因此19/0/0的Data字段应填:020001000768656C6C6F0064

示例2、设备上报的属性为变长字符串

服务ID:2,属性:变长字符串,长度为5个字节,值为:“hello”。变长字符串在编码时需要携带2个字节的长度,即属性1编码后的数据是0x000568656C6C6F。编码过程为:

CMDType:0x02

ServiceID:0x0002

Payload_length:0x0007

Payload:0x000568656C6C6F

因此19/0/0的Data字段应填:0200020007000568656C6C6F

示例3、指令下发和响应

下发的指令服务ID:8001,TaskID:1,参数为1个字节整形:1-获取当前时间,0-时钟同步。

19/1/0的Data字段为十六进制:061F410001000101,解析出指令内容为“获取当前时间”,设备需要将系统时间通过响应发给平台。

指令响应的服务ID:9001,TaskID:1,参数为12字节的定长字符串“201812251300”,编码过程为:

CMDType:0x86

ServiceID:0x2329

TaskID:0x0001

Payload_length:0x000C

Payload:0x323031383132323531333030

指令响应19/0/0的Data字段应填:8623290001000C323031383132323531333030

2、JSON格式

业务数据上报、事件上报、无线参数上报的Data部分应满足以下格式:

{“serviceId”: XXXX, parameter1:value1, parameter2:value2}

“serviceId”的值为对应服务的服务ID,parameter1、parameter2对应服务中每个属性,用属性标识进行替换,value1、value2对应属性值,按照定义的属性类型填写。

业务指令下发、指令下发响应的Data部分应满足以下格式:

{“serviceId”:XXXX, "taskId":XXXX, parameter:value}

“serviceId”的值为对应服务的服务ID, "taskId"由平台分配,用于关联下发指令和回复的响应。parameter和value按照服务定义的属性来填写。

示例

定义如下物模型:

数据上报Data部分数据为

{“serviceId”: 1, “temperature”:36.5, “humidity”:20.5}

指令下发Data部分数据为

{“serviceId”:8001, "taskId":2, “temperature”:30.5}

指令下发响应Data部分数据为

{“serviceId”:9001, "taskId":2, “temperature”:30.5}

二、透传设备

平台对19/0/0、19/1/0的Data字段不进行解析,支持任意格式的业务数据的透传。

搜索结果 ""

    没有搜索结果 ""