合作伙伴工作台
注册

消息格式

Object19

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

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

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

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

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

l  非透传设备

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

(1)紧凑二进制格式

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

1byte

2bytes

2bytes

n bytes(Payload)



CMDType

ServiceID

Payload_length

Parameter1

Parameter2

……

说明:

参数名称

参数类型

类型说明

参数说明

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字段编码格式:

1byte

2bytes

2bytes

2bytes

n bytes(Payload)



CMDType

ServiceID

TaskID

Payload_length

Parameter1

Parameter2

……

说明:

参数名称

参数类型

类型说明

参数说明

CMDType

Unsigned   Integer(1)

必选定长

报文类型,   下发指令固定为0x06,指令响应固定为0x86

ServiceID

Unsigned   Integer(2)

必选定长

服务ID

TaskID

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

属性顺序

属性标识符

属性类型

属性长度

数据上报

up

1

1

seq

无符号整型

2




2

data1

定长字符串

5




3

data2

变长字符串

/

数据上报服务ID:1

•属性1:2个字节的整型,值为100

•属性2:5个字节的定长字符串,值为"hello"

•属性3:变长字符串"world"。

首先需要将属性值转换为十六进制:

•属性1十进制整型100的十六进制为0x0064

•属性2定长字符串"hello"转换为十六进制为:0x68656C6C6F(参照ASCII码表转换)

•属性3字符串"world"转化为十六进制为:0x776F726C64,由于该属性为变长字段,还需要在属性前加上2个字节的无符号整型表示长度,即属性3变长字符串的最终编码为0x0005776F726C64。

编码过程为:

•CMDType:0x02

•ServiceID:0x0001

•Payload_length:0x000E

•Payload:0x006468656C6C6F0005776F726C64

因此19/0/0数据上报内容为:020001000E006468656C6C6F0005776F726C64

示例2、指令下发和响应

服务类型

服务标识

服务ID

参数顺序

参数标识符

参数类型

参数长度

指令下发

dn

8001

1

cmd

无符号整型

1

指令下发响应

rsp

9001

1

time

定长字符串

12

指令下发服务ID:8001

TaskID:1

参数1:1个字节无符号整型。参数值为1:1--获取当前时间,0--时钟同步。

编码过程为:

•CMDType:0x06

•ServiceID:0x1F41

•TaskID:0x0001

•Payload_length:0x0001

•Payload:0x01

因此19/1/0指令下发内容为:061F410001000101,解析出指令内容为“获取当前时间”,设备需要将系统时间通过响应发给平台。

指令响应的服务ID:9001

TaskID:1

参数1:12字节的定长字符串。值为当前时间点"202010261600"。

编码过程为:

•CMDType:0x86

•ServiceID:0x2329

•TaskID:0x0001

•Payload_length:0x000C

•Payload:0x323032303130323631363030

因此19/0/0指令响应内容为:8623290001000C323032303130323631363030

(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按照服务定义的属性来填写。

示例1、设备数据上报

服务类型

服务标识

服务ID

属性顺序

属性标识符

属性类型

数据上报

up

1

1

seq

Int32




2

data1

string




3

data2

string

19/0/0上报数据内容为:

{"serviceId": 1, "seq":1, "data1": "hello", "data2": "world"}

示例2、指令下发和响应

服务类型

服务标识

服务ID

参数顺序

参数标识符

参数类型

指令下发

dn

8001

1

cmd

Int32

指令下发响应

rsp

9001

1

time

String

19/1/0指令下发内容为:

{"serviceId":8001, "taskId":1, "cmd":1}

19/0/0指令下发响应内容为:

{"serviceId":9001, "taskId":1, "rsp":"202010261600"}

l  透传设备

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

 

标准Object

平台支持OMA标准Object的订阅、读、写、执行操作,详细接口说明可参考:

OMA定义的Object和Resource。


这篇文档是否帮助您解决了问题?
如果您愿意进一步帮助我们改进文档 ,请留下您的联系方式。