合作伙伴工作台
注册

使用sokit工具模拟设备与平台交互

1、建立TCP连接

接下来使用sokit工具进行设备登录操作。打开sokit软件,选择客户端,填写服务器地址。

TCP设备接入的IP端口地址为:180.106.148.146:8996。

点击“TCP连接”,建立TCP连接后可进行登录报文发送。

2、设备登录

按TCP接口要求(请参考TCP协议-终端线下开发-接口介绍)组装登录报文:

消息类型

类型描述

消息格式

备注

0x01

登录报文

0x01 +deviceId_length(2字节) +deviceId +password_length(2字节) +password +version_length(2字节) +version

deviceId是由产品ID和设备编号拼接而成的字符串; password由平台生成,在设备管理业务可以查看; version固定1.1 业务数据非透传格式遵循物模型,上下行业务数据需要响应。

deviceId即12.2.3中设备“认证信息”中的“设备ID”,password即“认证信息”中的“特征串”。非十六进制的数据需按字节数要求转换成十六进制编码,可通过在线进制转换工具(https://www.sojson.com/hexadecimal.html)进行转换。

 

字段

消息类型

deviceId_length

deviceId

password_length

password

version_length

version

字段值

0x01

11

15152950001 


43

INz-2uj17b7db_LPFnzzKaP-nKBk1KDt-IPkXf-H9pY

3

1.1

16进制编码

01

000b

3135313532393530303031


002b

494e7a2d32756a3137623764625f4c50466e7a7a4b61502d6e4b426b314b44742d49506b58662d48397059

0003

312e31

得到设备登录报文为:01000b3135313532393530303031002b494e7a2d32756a3137623764625f4c50466e7a7a4b61502d6e4b426b314b44742d49506b58662d483970590003312e31

将登陆报文填写到sokit工具的数据发送框,点击发送,得到登录响应:

050000

返回结果码为0,说明设备登录成功。

消息类型

类型描述

消息格式

备注

0x05

登录响应

0x05+ 结果码(2字节)

登录结果:

0 成功

1 未知错误

2 设备未注册

3 设备认证失败

4 设备已登录

登陆报文发送成功后,设备状态由“已注册”变为“已激活”。

3、数据上报

以"充电口工作状态"数据上报为例。

“充电口工作状态”包含“充电口编号cell_index”和“充电开关charging”2个属性,属性值的数据类型和字节数可以通过属性列表查看。整型4字节,枚举值1字节。

数据上报为上行数据报文。

消息类型

类型描述

消息格式

备注

0x02

上行数据报文

0x02+数据长度(2字节)+msgid(2字节)+serviceid(2字节)+param1+params2+param3+……

数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,由终端分配;serviceId:平台分配的服务ID;param:平台服务包含的属性

 

按照接口要求组装数据报文如下:

字段

消息类型

数据长度

msgid

(2字节)

serviceid

(2字节)

cell_index

(4字节)

charging

(1字节)

字段值

0x02

9

6

1

1

1

16进制编码

02

0009

0006

0001

00000001

01

 

得到上行数据报文为:020009000600010000000101

将数据上报报文填写到sokit工具的数据发送框,点击发送,得到上行数据响应:

82000400060000

 

消息类型

类型描述

消息格式

备注

0x82

上行数据响应

0x82+数据长度(2字节)+msgid(2字节)+结果码(2字节)

数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,跟上行报文中msgid对应;结果码:0-成功、1-报文解析失败

对应结果码为0,上行数据发送成功。可在设备管理中点击“数据查看”,看到已发送的数据。

 

4、事件上报

以"事件报警"服务为例。

“事件报警”包含“充电口编号cell_index”、“充电事件代码event_code”和“时间戳timestamp”3个属性,属性值的数据类型和字节数可以通过属性列表查看。时间戳可使用在线转换工具进行转换:https://tool.lu/timestamp/

同样地,事件上报也是上行数据报文。

消息类型

类型描述

消息格式

备注

0x02

上行数据报文

0x02+数据长度(2字节)+msgid(2字节)+serviceid(2字节)+param1+params2+param3+……

数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,由终端分配;serviceId:平台分配的服务ID;param:平台服务包含的属性

按照接口要求组装数据报文如下:

字段

消息类型

数据长度

msgid

(2字节)

serviceid

(2字节)

cell_index

(4字节)

event_code

(1字节)

timestamp

(8字节)

字段值

0x02

17

8

1001

1

0

2020-10-30 14:31:13

16进制编码

02

0011

0008

03e9

00000001

00

0000001604039473

得到事件上报报文为:020011000803e900000001000000001604039473

将事件上报报文填写到sokit工具的数据发送框,点击发送,得到上行数据响应:

82000400080000

对应结果码为0,上行数据发送成功。

消息类型

类型描述

消息格式

备注

0x82

上行数据响应

0x82+数据长度(2字节)+msgid(2字节)+结果码(2字节)

数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,跟上行报文中msgid对应;结果码:0-成功、1-报文解析失败

可在设备管理中点击“事件上报”,看到已发送的数据。

5、指令下发及指令下发响应

在设备管理中,点击“指令下发”按钮,可进行指令下发操作。

以“set_charging”为例:

点击确定,完成指令下发操作。在“指令下发日志”中,可查看已下发的指令,此时指令下发状态为“指令已发送”。

点击右侧“详情”按钮,可查看指令内容,此时返回内容为空。

在sokit中可看到接收到的指令内容。下行数据消息格式为:

0x03+数据长度(2字节)+msgid(2字节)+serviceId(2字节)param1+param2+……

下面可根据指令下发内容向平台回复指令下发响应。

指令下发响应的消息格式如下:

消息类型

类型描述

消息格式

备注

0x83

下行数据响应

0x83+数据长度(2字节)+msgid(2字节)+结果码(2字节)+serviceId(2字节)+param1+param2+param3+……

数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,对应下行指令中的msgid;结果码:0-成功,不带serviceId和参数;1-成功,带serviceId和参数;2-下行数据处理失败,不带serviceId和参数

从服务列表可以查看,指令下发响应“充电口充电开关响应”服务包含“充电口编号cell_index”、“动作指令代码act_result”和“时间戳timestamp”3个属性,属性值的数据类型和字节数可以通过属性列表查看。

按照格式组装报文:

字段

消息

类型

数据

长度

msgid

(2字节)

结果码

(2字节)

serviced

(2字节)

cell_index

(4字节)

act_result

(1字节)

timestamp

(8字节)

字段值

0x83

19

1

1

9001

1

0

2020-10-30 15:38:13

16进制编码

83

0013

0001

0001

2329

00000001

00

000000

指令下发响应报文为:

83001300010001232900000001000000001604043493


在指令下发日志中可查看指令下发状态变为已完成。点击右侧“详情”按照,可查看返回内容。


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