接口介绍
l 接口地址
TCP协议设备接入平台的地址为tcp.ctwing.cn,端口为8996。
l 消息格式
应用层数据报文以1个字节的类型字段作为分割,平台支持登录、心跳、上下行业务数据等消息类型。消息携带的参数必须包含两个字节的参数长度。
(1)透传设备
消息类型 | 类型描述 | 消息格式 | 备注 |
0x01 | 登录请求 | 0x01 +deviceId_length(2字节) +deviceId +password_length(2字节) +password +version_length(2字节) +version | deviceId是由产品ID和设备编号拼接而成的字符串; password由平台生成,在设备管理业务可以查看; ** version固定1.0** |
0x02 | 上行数据报文 | 0x02 +数据长度(2字节) +业务数据 | |
0x03 | 下行数据报文 | 0x03 +数据长度(2字节) +业务数据 | |
0x04 | 心跳 | 0x04 | 平台心跳周期为5分钟,设备需在5分钟内发送心跳报文 |
0x05 | 登录响应 | 0x05+结果码(2字节) | 登录结果: 0 成功 1 未知错误 2 设备未注册 3 设备认证失败 4 设备已登录 |
0x06 | 心跳响应 | 0x06 | 平台回复终端心跳的响应 |
示例
(a)登录请求
deviceId:10013378001
password:7Sfv-b_HDbLDyJ_K-0SkWqRGd-GE-b3rZp-upOr1kSU
version:1.0
登录请求编码为(16进制):
• 登录报文标识符:0x01
• deviceId_length:0x000b
• deviceId:0x3130303133333738303031
• password_length:0x002b
• password:0x375366762d625f4844624c44794a5f4b2d30536b57715247642d47452d6233725a702d75704f72316b5355
• version_length:0x0003
• version:0x312e30
登录请求的完整报文为:01000b 3130303133333738303031 002b 375366762d625f4844624c44794a5f4b2d30536b57715247642d47452d6233725a702d75704f72316b5355 0003 312e30
(b)上行数据
业务数据:"hello"
上行数据编码为(16进制):
• 上行报文标识符:0x02
• payload_length:0x0005
• payload:0x68656c6c6f
上行数据报文完整报文为:02 0005 68656c6c6f
(c)下行数据
业务数据:"turn off"
上行数据编码为(16进制):
• 上行报文标识符:0x03
• payload_length:0x0008
• payload:0x7475726e206f6666
下行数据完整报文为:03 0008 7475726e206f6666
(2)非透传设备
消息类型 | 类型描述 | 消息格式 | 备注 |
0x01 | 登录请求 | 0x01 +deviceId_length(2字节) +deviceId +password_length(2字节) +password +version_length(2字节) +version | deviceId是由产品ID和设备编号拼接而成的字符串; password由平台生成,在设备管理业务可以查看; version固定1.1 业务数据非透传格式遵循物模型,上下行业务数据需要响应。 |
0x02 | 上行数据报文 | 0x02+数据长度(2字节)+msgid(2字节)+serviceid(2字节)+param1+params2+param3+…… | 数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,由终端分配;serviceId:平台分配的服务ID;param:平台服务包含的属性 |
0x82 | 上行数据响应 | 0x82+数据长度(2字节)+msgid(2字节)+结果码(2字节) | 数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,跟上行报文中msgid对应;结果码:0-成功、1-报文解析失败 |
0x03 | 下行数据报文 | 0x03+数据长度(2字节)+msgid(2字节)+serviceId(2字节)+param1+param2+param3+…… | 数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,由平台分配;serviceId:平台分配的服务ID;param:平台服务包含的属性(参数)注:msgid字段即为指令的taskId |
0x83 | 下行数据响应 | 0x83+数据长度(2字节)+msgid(2字节)+结果码(2字节)+serviceId(2字节)+param1+param2+param3+…… | 数据长度:从msgid开始,到报文结尾的长度;msgid:报文标识,对应下行指令中的msgid;结果码:0-成功,不带serviceId和参数;1-成功,带serviceId和参数;2-下行数据处理失败,不带serviceId和参数 |
0x04 | 心跳 | 0x04 | 平台心跳周期为5分钟,设备需在5分钟内发送心跳报文 |
0x05 | 登录响应 | 0x05+结果码(2字节) | 登录结果:0-成功;1-未知错误;2-设备未注册;3-设备认证失败 |
0x06 | 心跳响应 | 0x06 | 平台回复终端心跳报的响应 |
示例
(a)登录请求
deviceId:10013378001
password:7Sfv-b_HDbLDyJ_K-0SkWqRGd-GE-b3rZp-upOr1kSU
version:1.1
登录请求编码为(16进制):
• 登录报文标识符:0x01
• deviceId_length:0x000b
• deviceId:0x 3130303133333738303031
• password_length:0x002b
• password:0x375366762d625f4844624c44794a5f4b2d30536b57715247642d47452d6233725a702d75704f72316b5355
• version_length:0x0003
• version:0x312e31
登录请求的完整报文为:01 000b 3130303133333738303031 002b 375366762d625f4844624c44794a5f4b2d30536b57715247642d47452d6233725a702d75704f72316b5355 0003 312e31
(b)上行数据
物模型如下:
服务类型 | 服务标识 | 服务ID | 属性顺序 | 属性标识符 | 属性类型 | 属性长度 |
数据上报 | up | 1 | 1 | seq | 无符号整型 | 2 |
2 | data1 | 定长字符串 | 5 | |||
3 | data2 | 变长字符串 | / |
上行数据编码为(16进制):
• 上行报文标识符:0x02
• payload_length:0x0012
• msgId: 0x0001
• serviced: 0x0001
• payload:
– seq:0x0064(100)
– data1:0x68656C6C6F(hello)
– data2:0x0005 776F726C64(world)[包含两个字节的长度0005]
上行数据完整报文为:02 0012 0001 0001 0064 68656C6C6F 0005776F726C64
上行数据响应报文编码为:
• 上行响应标识符:0x82
• payload_length:0x0004
• msgId: 0x0001
• 结果码: 0x0000
上行数据响应报文为:82 0004 0001 0000
(c)下行数据及响应
物模型如下:
服务类型 | 服务标识 | 服务ID | 参数顺序 | 参数标识符 | 参数类型 | 参数长度 |
指令下发 | dn | 8001 | 1 | cmd | 定长字符串 | 5 |
指令下发响应 | rsp | 9001 | 1 | time | 定长字符串 | 5 |
下行指令编码为(16进制):
• 上行报文标识符:0x03
• payload_length:0x0009
• msgId: 0x0001
• serviced: 0x1f41
• payload:
– cmd:0x68656C6C6F(hello)
下行指令完整报文为:03 0009 0001 1f41 68656c6c6f
msgid为1,需要在响应中带回
指令响应编码为:
• 下行响应标识符:0x83
• payload_length:0x000b
• msgId: 0x0001
• 结果码: 0x0001
• serviced: 0x2329
• payload:
– cmd:0x776F726C64 (world)
下行指令响应的完整包文为:83 000b 0001 0001 2329 776F726C64