mirror of
https://gitee.com/qpy-solutions/dtu.git
synced 2025-05-19 19:18:24 +08:00
1057 lines
27 KiB
Markdown
1057 lines
27 KiB
Markdown
|
# **DTU 通信数据协议**
|
|||
|
|
|||
|
# 1 概述
|
|||
|
|
|||
|
本文档主要内容包括:
|
|||
|
- 与云端通信的报文格式
|
|||
|
- 所有命令模式的指令报文格式:设置参数、查询参数
|
|||
|
- dtu_config.json配置文件字段的详细说明
|
|||
|
|
|||
|
# 2 数据格式
|
|||
|
|
|||
|
DTU与云端通信报文使用json格式
|
|||
|
|
|||
|
- 云端下行报文
|
|||
|
|
|||
|
命令模式与modbus模式:
|
|||
|
|
|||
|
`{“msg_id”: msg_id, “data”: “1234”[, “cmd_code”: 40, “topic_id”: 1]}`
|
|||
|
|
|||
|
透传模式:
|
|||
|
|
|||
|
`{“msg_id”: msg_id, “data”: “1234”}`
|
|||
|
|
|||
|
字段说明:
|
|||
|
|
|||
|
msg_id:报文id,一般为时间戳+3位随机数
|
|||
|
|
|||
|
data:报文消息字段
|
|||
|
|
|||
|
cmd_code:可选字段,填写对应功能码,并又DTU执行相应的操作,此字段仅在命令模式下生效
|
|||
|
|
|||
|
topic_id:可选字段,填写mqtt返回需要publish的topic_id,此字段仅在命令模式与使用MQTT/Aliyun/Txyun时生效
|
|||
|
|
|||
|
- 云端上行报文
|
|||
|
|
|||
|
命令模式与modbus模式:
|
|||
|
|
|||
|
`{“msg_id”: msg_id, “data”: “1234”[, “cmd_code”: 40, “status”: 1]}`
|
|||
|
|
|||
|
透传模式:
|
|||
|
|
|||
|
`{“msg_id”: msg_id, “data”: “1234”}`
|
|||
|
|
|||
|
字段说明:
|
|||
|
|
|||
|
msg_id:报文id,一般为时间戳+3位随机数,回复报文会使用相同的msg_id
|
|||
|
|
|||
|
data:报文消息字段
|
|||
|
|
|||
|
cmd_code:可选字段,填写对应功能码,并又DTU执行相应的操作,此字段仅在命令模式下生效
|
|||
|
|
|||
|
status:可选字段,仅在命令模式下生效,用于反馈命令是否执行成功
|
|||
|
|
|||
|
# 3 指令说明
|
|||
|
|
|||
|
**协议功能码说明:**
|
|||
|
|
|||
|
**1 .查询DTU ,复位DTU,设置参数,数据透传的功能码和返回数据的功能码一致**
|
|||
|
|
|||
|
**2.返回数据的状态码可查询对应的状态码表**
|
|||
|
|
|||
|
## 3.1 功能码表
|
|||
|
|
|||
|
| 功能码 | 功能 |
|
|||
|
|--------|---------------|
|
|||
|
| 0-49 | 查询指令 |
|
|||
|
| 0 | 查询IMEI |
|
|||
|
| 1 | 查询本机号码 |
|
|||
|
| 2 | 查询固件版本号 |
|
|||
|
| 3 | 查询信号强度 |
|
|||
|
| 4 | 查询当前配置参数 |
|
|||
|
| 5 | 诊断查询 |
|
|||
|
| 6 | 查询ICCID |
|
|||
|
| 7 | 查询ADC电压 |
|
|||
|
| 8 | 查询GPIO信息 |
|
|||
|
| 10 | 查询温湿度 |
|
|||
|
| 11 | 查询网络连接信息 |
|
|||
|
| 12 | 查询网络状态 |
|
|||
|
| 13 | 查询基站定位信息 |
|
|||
|
| 50~143 | 设置指令 |
|
|||
|
| 50 | 协议短信透传 |
|
|||
|
| 51 | 配置密码 |
|
|||
|
| 52 | 添加设备识别码IMEI |
|
|||
|
| 53 | 登录服务器发送注册信息 |
|
|||
|
| 54 | 固件版本号 |
|
|||
|
| 55 | 是否启用自动更新 |
|
|||
|
| 56 | 日志输出 |
|
|||
|
| 57 | 服务器获取配置参数 |
|
|||
|
| 58 | 串口参数 |
|
|||
|
| 59 | 通道配置参数 |
|
|||
|
| 60 | Apn设置 |
|
|||
|
| 61 | GPIO设置 |
|
|||
|
| 62 | OTA |
|
|||
|
| 63 | 参数设置 |
|
|||
|
| 255 | 复位指令 |
|
|||
|
|
|||
|
# 4 查询指令
|
|||
|
|
|||
|
### 4.1.1 查询IMEI
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
DTU的IMEI号
|
|||
|
|
|||
|
功能码: 0
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 0 , "data": "123456789012345" , "success":1}`
|
|||
|
|
|||
|
字段说明:
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码(如果查询IMEI失败,可查询状态码表来定位具体错误信息) |
|
|||
|
| data | str | 返回IMEI |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.2 查询本机号码
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
查询SIM卡的号码
|
|||
|
|
|||
|
功能码: 1
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 1 , "data": "17201593988" , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | SIM卡的手机号码 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.3 查询固件版本号
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
查询当前的固件版本号(当开启fota升级,版本号小于服务器端的固件版本号会进行fota升级)
|
|||
|
|
|||
|
固件版本号格式为: v 1
|
|||
|
|
|||
|
功能码: 2
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 2 , "data": "v 1" , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | 固件版本号 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.4 查询信号强度
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
网络信号强度值范围0~31,值越大表示信号强度越好。
|
|||
|
|
|||
|
功能码: 3
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 3 , "data": " CSQ17 " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **字符串** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | CSQ1~CSQ31 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.5 查询当前配置参数
|
|||
|
|
|||
|
功能码: 4
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password": "012345",
|
|||
|
"cmd_code": 4,
|
|||
|
}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 4 , "data": " req config " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **字符串** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | req config |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.6 诊断查询
|
|||
|
|
|||
|
说明: 查询当前DTU运行的错误上报信息
|
|||
|
|
|||
|
功能码: 5
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":5,
|
|||
|
|
|||
|
"data":[{"func_code": "5" , "error_code": " 6001"}],
|
|||
|
|
|||
|
"success":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| func_code | str | 功能码 |
|
|||
|
| error_code | str | 错误码 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.7 iccid查询
|
|||
|
|
|||
|
说明: 查询iccid
|
|||
|
|
|||
|
功能码: 6
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":6,
|
|||
|
|
|||
|
"data": "12456465486561516515153",
|
|||
|
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | 功能码 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.8 adc查询
|
|||
|
|
|||
|
说明: 查询adc
|
|||
|
|
|||
|
功能码: 7
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":7,
|
|||
|
|
|||
|
"data": "3.7",
|
|||
|
|
|||
|
"status":1}`
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | adc电压 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.9 gpio查询
|
|||
|
|
|||
|
说明: 查询gpio
|
|||
|
|
|||
|
功能码: 8
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":8,
|
|||
|
|
|||
|
"data": "gpio_msg",
|
|||
|
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | gpio获取的信息 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.10 电池电压查询
|
|||
|
|
|||
|
说明: 查询gpio
|
|||
|
|
|||
|
功能码: 9
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":9,
|
|||
|
|
|||
|
"data": "3590",
|
|||
|
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | gpio获取的信息 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.10 查询温湿度
|
|||
|
|
|||
|
说明: 查询温湿度
|
|||
|
|
|||
|
功能码: 10
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":10,
|
|||
|
"data": {"temperature": 26.0, "humidity": 60.0},
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | dict | 温湿度信息{"temperature": temp, 'humidity': humid} |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
### 4.1.11 查询网络连接信息
|
|||
|
|
|||
|
说明: 查询网络连接信息,每种连接类型返回对应连接状态
|
|||
|
|
|||
|
功能码: 11
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":11,
|
|||
|
"data": "200",
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | 网络连接状态 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
网络连接状态说明
|
|||
|
|
|||
|
| **连接类型** | **含义** |
|
|||
|
|-----------|--------------------------------|
|
|||
|
| http | 返回http状态码 |
|
|||
|
| tcp/udp | 参照套接字状态表 |
|
|||
|
| mqtt | 0:连接成功 1:连接中 2:服务端连接关闭 -1:连接异常 |
|
|||
|
| aliyun | 0:连接成功 1:连接中 2:服务端连接关闭 -1:连接异常 |
|
|||
|
| txyun | 0:连接成功 1:连接中 2:服务端连接关闭 -1:连接异常 |
|
|||
|
| quecthing | 参照quecthing连接状态表 |
|
|||
|
|
|||
|
套接字状态表
|
|||
|
|
|||
|
| **状态值** | **状态** | **描述** |
|
|||
|
|------|------------|---------------------------------------------------------------|
|
|||
|
|0 | CLOSED | 套接字创建了,但没有使用这个套接字 |
|
|||
|
|1 | LISTEN | 套接字正在监听连接 |
|
|||
|
|2 | SYN_SENT | 套接字正在试图主动建立连接,即发送SYN后还没有收到ACK |
|
|||
|
|3 | SYN_RCVD | 套接字正在处于连接的初始同步状态,即收到对方的SYN,但还没收到自己发过去的SYN的ACK |
|
|||
|
|4 | ESTABLISHED | 连接已建立 |
|
|||
|
|5 | FIN_WAIT_1 | 套接字已关闭,正在关闭连接,即发送FIN,没有收到ACK也没有收到FIN |
|
|||
|
|6 | FIN_WAIT_2 | 套接字已关闭,正在等待远程套接字关闭,即在FIN_WAIT_1状态下收到发过去FIN对应的ACK |
|
|||
|
|7 | CLOSE_WAIT | 远程套接字已经关闭,正在等待关闭这个套接字,被动关闭的一方收到FIN |
|
|||
|
|8 | CLOSING | 套接字已关闭,远程套接字正在关闭,暂时挂起关闭确认,即在FIN_WAIT_1状态下收到被动方的FIN |
|
|||
|
|9 | LAST_ACK | 远程套接字已关闭,正在等待本地套接字的关闭确认,被动方在CLOSE_WAIT状态下发送FIN |
|
|||
|
|10 | TIME_WAIT | 套接字已经关闭,正在等待远程套接字的关闭,即FIN、ACK、FIN、ACK都完毕,经过2MSL时间后变为CLOSED状态 |
|
|||
|
|
|||
|
quecthing连接状态表
|
|||
|
|
|||
|
|**整型**| **状态编号** |
|
|||
|
|---|------------|
|
|||
|
|0 | 未初始化 |
|
|||
|
|1 | 已初始化 |
|
|||
|
|2 | 正在认证 |
|
|||
|
|3 | 认证成功 |
|
|||
|
|4 | 认证失败 |
|
|||
|
|5 | 正在注册 |
|
|||
|
|6 | 注册成功,等待订阅 |
|
|||
|
|7 | 注册失败 |
|
|||
|
|8 | 已订阅,数据可发送 |
|
|||
|
|9 | 订阅失败 |
|
|||
|
|10 | 正在注销 |
|
|||
|
|11 | 注销成功 |
|
|||
|
|12 | 注销失败 |
|
|||
|
|
|||
|
|
|||
|
|
|||
|
### 4.1.12 查询网络状态
|
|||
|
|
|||
|
说明: 查询网络连接状态,返回基站信息
|
|||
|
|
|||
|
功能码: 12
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":12,
|
|||
|
|
|||
|
"data": {"voice_state": 1, "data_state": 1},
|
|||
|
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- |---------------------------------------|
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | turple | voice_state:语音连接状态, data_state:数据连接状态 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
状态说明
|
|||
|
|
|||
|
| **值** | **状态说明** |
|
|||
|
| --- | --- |
|
|||
|
| 0 | not registered, MT is not currently searching an operator to register to |
|
|||
|
| 1 | registered, home network |
|
|||
|
| 2 | not registered, but MT is currently trying to attach or searching an operator to register to |
|
|||
|
| 3 | registration denied |
|
|||
|
| 4 | unknown |
|
|||
|
| 5 | registered, roaming |
|
|||
|
| 6 | egistered for “SMS only”, home network (not applicable) |
|
|||
|
| 7 | registered for “SMS only”, roaming (not applicable) |
|
|||
|
| 8 | attached for emergency bearer services only |
|
|||
|
| 9 | registered for “CSFB not preferred”, home network (not applicable) |
|
|||
|
| 10 | registered for “CSFB not preferred”, roaming (not applicable) |
|
|||
|
| 11 | emergency bearer services only |
|
|||
|
|
|||
|
### 4.1.13 查询基站定位信息
|
|||
|
|
|||
|
说明: 查询基站定位信息
|
|||
|
|
|||
|
功能码: 13
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
```
|
|||
|
{"code":13,
|
|||
|
|
|||
|
"data": (117.1138, 31.82279, 550) ,
|
|||
|
|
|||
|
"status":1}
|
|||
|
```
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | int | 状态码 |
|
|||
|
| data | str | 基站定位信息 |
|
|||
|
| status | str | 0 失败 1成功 |
|
|||
|
|
|||
|
# 5 复位指令
|
|||
|
|
|||
|
功能码: 255
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{ Password: "012345",
|
|||
|
|
|||
|
"code":255,
|
|||
|
|
|||
|
"data":{}
|
|||
|
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
无
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | reset dtu |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
# 6 设置指令
|
|||
|
|
|||
|
## 6.1 基础设置
|
|||
|
|
|||
|
### 6.1.1 协议短信(SMS)透传 message
|
|||
|
|
|||
|
功能码: 50
|
|||
|
|
|||
|
数据内容:
|
|||
|
|
|||
|
- 号码:32个字节,标识目的手机号码,如果没有32字节,必须补0x00
|
|||
|
- 内容:最大1024字节,为短信数据内容
|
|||
|
```
|
|||
|
{
|
|||
|
|
|||
|
"password":"",
|
|||
|
|
|||
|
"data":{
|
|||
|
|
|||
|
message: {"number":"12123123", -- 目标号码
|
|||
|
|
|||
|
"sms_msg:" " -- 发送短信
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 50 , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | 接收的短信 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.2 配置密码 password
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
查询IMEI,查询本机号码,查询固件版本号,查询信号强度不需要密码
|
|||
|
|
|||
|
查询当前配置参数和修改透传绑定的通道需要密码
|
|||
|
|
|||
|
是否开启自动更新需要密码
|
|||
|
|
|||
|
功能码: 51
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":" ",
|
|||
|
"data":{"new_password": "012345"}
|
|||
|
}
|
|||
|
```
|
|||
|
说明:初始密码为固件IMEI的后六位
|
|||
|
|
|||
|
如 IMEI : 123456789012345 初始密码为 012345
|
|||
|
|
|||
|
| **字段** | **含义** |
|
|||
|
| --- | --- |
|
|||
|
| password | 当前密码 |
|
|||
|
| data | password : 修改后的密码 |
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 51 , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **含义** |
|
|||
|
| --- | --- |
|
|||
|
| code | 状态码 |
|
|||
|
| data |
|
|||
|
|
|
|||
|
| success | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.3 登录服务器发送注册信息 reg
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
首次登陆服务器发送注册信息
|
|||
|
|
|||
|
功能码: 53
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":"",
|
|||
|
"data":{"reg": 1}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
| **Reg**| **值** |
|
|||
|
| --- | --- |
|
|||
|
| 0 | 不发送{ "reg": 0} |
|
|||
|
| 1 | { "reg": 1}则首次登录服务器发送下面的json数据: {"csq":rssi,"imei":imei,"iccid":iccid,"ver":version}csq 信号强度imei 固件的imeiiccid SIM卡的iccidver 固件的版本号 |
|
|||
|
| 自定义 | { "reg": "自定义的注册信息"} |
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 53 , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | send reg |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.4 固件版本号 version
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
修改固件版本号,用于fota升级(当开启fota升级,版本号小于服务器端的固件版本号就会进行fota升级)
|
|||
|
|
|||
|
固件版本号仅支持整数
|
|||
|
|
|||
|
功能码: 54
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":"",
|
|||
|
"data":{
|
|||
|
"version ": "100" --- 版本号(使用数字字符串)
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 54 , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | 固件版本号 |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.5 是否启用自动更新 fota
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
Fota升级开关
|
|||
|
|
|||
|
功能码: 55
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":"",
|
|||
|
"data":{
|
|||
|
"fota": 1 -- 0关闭/ 1 开启(int类型)
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 55 , "data": " fota" , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | fota |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.6 日志输出 nolog
|
|||
|
|
|||
|
**说明:**
|
|||
|
|
|||
|
串口打印日志记录,目前不支持。日志输出连接Debug口
|
|||
|
|
|||
|
功能码: 56
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":"",
|
|||
|
"data":{
|
|||
|
{"nolog": 1} 是否开启日志 0关闭/1打开(int类型)
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": "20000" , "data": "log " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | log |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.7 服务器获取配置参数
|
|||
|
|
|||
|
功能码: 57
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":"",
|
|||
|
"data":{
|
|||
|
{" service_acquire":0}
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
注:本地配置默认开启向服务器获取参数配置
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| service_acquire | Int | 是否开启服务器获取参数0关闭/1打开|
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": "20000" , "data": "service acquire " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | service acquire |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.8 串口参数 uconf
|
|||
|
|
|||
|
功能码: 58
|
|||
|
|
|||
|
**在透传模式下无法设置串口参数**
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password": ""
|
|||
|
"data":{
|
|||
|
"uconf": {
|
|||
|
"0": {
|
|||
|
"baudrate": "115200",
|
|||
|
"databits": "8",
|
|||
|
"parity": "0",
|
|||
|
"stopbits": "1",
|
|||
|
"flowctl": "0"
|
|||
|
}
|
|||
|
}}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": "20000" , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | uconf |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
### 6.1.9 通道配置参数 conf
|
|||
|
|
|||
|
功能码: 59
|
|||
|
|
|||
|
**在透传模式下无法设置串口参数**
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password":"",
|
|||
|
"data":{
|
|||
|
"conf":{
|
|||
|
"1": {
|
|||
|
"protocol": "aliyun",
|
|||
|
"type": "mos",
|
|||
|
"keepAlive": "",
|
|||
|
"clientID": "0",
|
|||
|
"Devicename": "ec600n",
|
|||
|
"ProductKey": "gbh26bFEA4M",
|
|||
|
"DeviceSecret": "b7ff5acc0671d40adfd0eff57e7605f6",
|
|||
|
"ProductSecret": "",
|
|||
|
"cleanSession": true,
|
|||
|
"qos": "1",
|
|||
|
"subscribe": {"0": "/gbh26bFEA4M/ec600n/user/subtest"},
|
|||
|
"publish": {"0": "/gbh26bFEA4M/ec600n/user/pubtest"},
|
|||
|
"serialID": "0"}
|
|||
|
}}}
|
|||
|
```
|
|||
|
**对应通道的配置参数详见6.1.10.1的通道配置详解 :**
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": "20000" , "data": " " , "success":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | str | 状态码 |
|
|||
|
| data | str | conf |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
#### 6.1.9.1 通道配置详解
|
|||
|
|
|||
|
##### 6.1.9.1.1 HTTP参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "http",
|
|||
|
"method": "get",
|
|||
|
"url": "http://httpbin.org/get",
|
|||
|
"reg_data": "",
|
|||
|
"timeout": "",
|
|||
|
"serialID": 1
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| http | str | 通信方式http标识 |
|
|||
|
| method | str | 提交请求的方法 |
|
|||
|
| url | str | HTTP请求的地址和参数 |
|
|||
|
| timeout | int | HTTP请求最长等待时间 |
|
|||
|
| serialD | int | HTTP绑定的串口号(1~2) |
|
|||
|
|
|||
|
##### 6.1.9.1.2 SOCKET tcp参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "tcp",
|
|||
|
"ping": "",
|
|||
|
"heartbeat": 30,
|
|||
|
"url": "220.180.239.212",
|
|||
|
"port": "8305",
|
|||
|
"keepAlive": 300,
|
|||
|
"serialID": 2
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| tcp | str | Socket的tcp协议标识 |
|
|||
|
| ping | str | 用户自定义的心跳包,只支持数字和字母,建议2-4个字节 |
|
|||
|
| time | int | 0为关闭心跳包,建议60s-300s |
|
|||
|
| url | str | socket的地址或域名 |
|
|||
|
| port | int | socket服务器的端口号 |
|
|||
|
| KeepAlive | int | 链接超时最大时间单位秒,默认300秒 |
|
|||
|
| serialD | int | tcp/udp绑定的串口号(1~2) |
|
|||
|
|
|||
|
##### 6.1.9.1.3 SOCKET udp 参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "udp",
|
|||
|
"ping": "",
|
|||
|
"heartbeat": 30,
|
|||
|
"url": "220.180.239.212",
|
|||
|
"port": "8305",
|
|||
|
"keepAlive": 300,
|
|||
|
"serialID": 2
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| udp | str | Socket的udp协议标识 |
|
|||
|
| ping | str | 用户自定义的心跳包,只支持数字和字母,建议2-4个字节 |
|
|||
|
| time | int | 0为关闭心跳包,建议60s-300s |
|
|||
|
| url | str | socket的地址或域名 |
|
|||
|
| port | int | socket服务器的端口号 |
|
|||
|
| KeepAlive | int | 链接超时最大时间单位秒,默认300秒 (60~600) |
|
|||
|
| serialD | int | tcp/udp绑定的串口号(1~2) |
|
|||
|
|
|||
|
##### 6.1.9.1.4 MQTT参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "mqtt",
|
|||
|
"clientID": "test_mqtt",
|
|||
|
"keepAlive": 0,
|
|||
|
"url": "broker-cn.emqx.io",
|
|||
|
"port": "1883",
|
|||
|
"cleanSession": true,
|
|||
|
"subscribe": {"0": "/python/mqtt"},
|
|||
|
"publish": {"0": "/python/mqtt"},
|
|||
|
"qos": "0",
|
|||
|
"retain": "1",
|
|||
|
"serialID": "1"
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| mqtt | str | 表示MQTT协议 |
|
|||
|
| clentID | str | 自定义客户端ID,使用IMEI做客户端ID此处留空 |
|
|||
|
| keepAlive | int | 客户端的keepalive超时值。 默认为60秒 |
|
|||
|
| address | str | MQTT的地址或域名 |
|
|||
|
| port | int | socket服务器的端口号 |
|
|||
|
| cleanSession | int | MQTT是否保存会话标志位,0持久会话,1离线自动销毁 |
|
|||
|
| Sub | str | 订阅主题 |
|
|||
|
| pub | str | 发布主题 |
|
|||
|
| qos | int | MQTT的QOS级别,默认0 |
|
|||
|
| retain | int | MQTT的publish参数retain,默认0 |
|
|||
|
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
|||
|
|
|||
|
##### 6.1.9.1.5 阿里云参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "aliyun",
|
|||
|
"type": "mos",
|
|||
|
"keepAlive": "",
|
|||
|
"clientID": "test_mos",
|
|||
|
"Devicename": "light01",
|
|||
|
"ProductKey": "a1QNbCDxIWM",
|
|||
|
"DeviceSecret": "0bceb8010ade0df2e6989982e63f7601",
|
|||
|
"ProductSecret": "",
|
|||
|
"cleanSession": true,
|
|||
|
"qos": "1",
|
|||
|
"subscribe": {"0": "/a1QNbCDxIWM/light01/user/get"},
|
|||
|
"publish": {"0": "/a1QNbCDxIWM/light01/user/update"},
|
|||
|
"serialID": "1"
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| aliyun | Str | 阿里云IOT的标识 |
|
|||
|
| type | str | 一型一密tas/一机一密mos |
|
|||
|
| keepAlive | int | 通信之间允许的最长时间段(以秒为单位),默认为300,范围(60-1200)使用默认值就填""或者" " |
|
|||
|
| clientID | str | clientID ,自定义字符(不超过64) |
|
|||
|
| Devicename | str | 设备名称 |
|
|||
|
| ProductKey | str | 产品密钥 |
|
|||
|
| DeviceSecret | str | 设备密钥(使用一型一密认证此参数传入"") |
|
|||
|
| ProductSecret | str | 产品密钥(使用一机一密认证时此参数传入"") |
|
|||
|
| cleanSession | int | MQTT 保存会话标志位( 0则客户端是持久客户端,当客户端断开连接时,订阅信息和排队消息将被保留, 1代理将在其断开连接时删除有关此客户端的所有信息 ) |
|
|||
|
| QOS | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
|||
|
| subTopic | str | 订阅主题 |
|
|||
|
| pubTopic | str | 发布主题 |
|
|||
|
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
|||
|
|
|||
|
##### 6.1.9.1.6 腾讯云参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "txyun",
|
|||
|
"type": "mos",
|
|||
|
"keepAlive": "",
|
|||
|
"clientID": "test_tx_mos",
|
|||
|
"Devicename": "Smart_test01",
|
|||
|
"ProductKey": "H7MBLRYXN9",
|
|||
|
"DeviceSecret": "89c7tXT3s3grZTr/YFjxSg==",
|
|||
|
"ProductSecret": "",
|
|||
|
"cleanSession": true,
|
|||
|
"qos": "1",
|
|||
|
"subscribe": {"0": "H7MBLRYXN9/Smart_test01/control"},
|
|||
|
"publish": {"0": "H7MBLRYXN9/Smart_test01/event"},
|
|||
|
"serialID": "1"
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| txyun | str | 腾讯云IOT的标识 |
|
|||
|
| type | str | 一型一密tas/一机一密mos |
|
|||
|
| keepAlive | int | 通信之间允许的最长时间段(以秒为单位),默认为300,范围(60-1200)使用默认值就填""或者" "。 |
|
|||
|
| clientID | str | clientID ,自定义字符(不超过64) |
|
|||
|
| Devicename | str | 设备名称 |
|
|||
|
| ProductKey | str |产品密钥|
|
|||
|
| DeviceSecret | str | 设备密钥(使用一型一密认证此参数传入"") |
|
|||
|
| ProductSecret | str | 产品密钥(使用一机一密认证时此参数传入"") |
|
|||
|
| cleanSession | int | MQTT 保存会话标志位( 0则客户端是持久客户端,当客户端断开连接时,订阅信息和排队消息将被保留, 1代理将在其断开连接时删除有关此客户端的所有信息 ) |
|
|||
|
| QOS | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
|||
|
| subTopic | str | 订阅主题 |
|
|||
|
| pubTopic | str | 发布主题 |
|
|||
|
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
|||
|
|
|||
|
|
|||
|
##### 6.1.9.1.7 移远云参数
|
|||
|
```
|
|||
|
{
|
|||
|
"protocol": "quecthing",
|
|||
|
"keepAlive": "", // lifetime
|
|||
|
"ProductKey": " a1QNbCDxIWM ",
|
|||
|
"ProductSecret": "",
|
|||
|
"qos": "1",
|
|||
|
"SessionFlag": "",
|
|||
|
"sendMode": "phy",
|
|||
|
"serialID": "1",
|
|||
|
}
|
|||
|
```
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| quecthing | str | 腾讯云IOT的标识 |
|
|||
|
| keepAlive | int | 通信之间允许的最长时间段(以秒为单位),默认为120,范围(60-1200)使用默认值就填""或者" "。 |
|
|||
|
| ProductKey | str |产品id|
|
|||
|
| ProductSecret | str | 产品密钥|
|
|||
|
| QOS | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
|||
|
| SessionFlag | bool | 配置与云平台通信的数据是否采用session加密(默认值为False),True:加密,False:加密 |
|
|||
|
| sendMode | str | 移远云数据收发模式,phy:物模型,pass:透传 |
|
|||
|
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
|||
|
|
|||
|
|
|||
|
移远云开发说明请点击以下连接获取文档:
|
|||
|
|
|||
|
[Quectel_移远通信物联网设备管理平台设备接入_应用指导_(Python)_2.9.0.pdf](https://quec-pro-oss.oss-cn-shanghai.aliyuncs.com/documentCenter/Quectel_%E7%A7%BB%E8%BF%9C%E9%80%9A%E4%BF%A1%E7%89%A9%E8%81%94%E7%BD%91%E8%AE%BE%E5%A4%87%E7%AE%A1%E7%90%86%E5%B9%B3%E5%8F%B0%E8%AE%BE%E5%A4%87%E6%8E%A5%E5%85%A5_%E5%BA%94%E7%94%A8%E6%8C%87%E5%AF%BC_(Python)_2.9.0.pdf)
|
|||
|
|
|||
|
|
|||
|
# 7 设置APN
|
|||
|
|
|||
|
说明:这个指令只适合配置和使用不是同一张卡的场景
|
|||
|
|
|||
|
**在透传模式下无法设置串口参数**
|
|||
|
|
|||
|
功能码: 60
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{
|
|||
|
"password":" ",
|
|||
|
"data":{"apn": ["", "", ""]}
|
|||
|
}
|
|||
|
```
|
|||
|
apn对应列表说明:
|
|||
|
|
|||
|
列表第一个参数: apn 的名称
|
|||
|
|
|||
|
列表第二个参数: apn 的用户名
|
|||
|
|
|||
|
列表第三个参数: apn 的密码
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 60 , "status":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | set apn |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
# 8 GPIO pins
|
|||
|
|
|||
|
功能码: 61
|
|||
|
|
|||
|
**在透传模式下无法设置串口参数**
|
|||
|
|
|||
|
pins的长度必须为3
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password": " ",
|
|||
|
"data":{"pins":[
|
|||
|
"1", -- 网路指示灯的GPIO (pio1~pio128)
|
|||
|
"2", -- 与服务器连上后通知GPIO (pio1~pio128)
|
|||
|
"3" -- 重置DTU参数的GPIO (pio1~pio128)
|
|||
|
]}}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 61 , "status":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | set gpio pins |
|
|||
|
| success | int | 0 失败 1成功 |
|
|||
|
|
|||
|
# 9 OTA
|
|||
|
|
|||
|
功能码: 62
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password": " ",
|
|||
|
"data":{"ota":1
|
|||
|
}
|
|||
|
```
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 62 , "status":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| data | str | OTA状态 |
|
|||
|
| status | int | 0 失败 1成功 |
|
|||
|
|
|||
|
|
|||
|
# 10 参数设置
|
|||
|
|
|||
|
功能码: 63
|
|||
|
|
|||
|
数据内容:
|
|||
|
```
|
|||
|
{"password": " ",
|
|||
|
"data":{"dtu_config":{完整配置文件内容}
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
完整配置文件参照《DTU上手说明》
|
|||
|
|
|||
|
返回的数据内容:
|
|||
|
|
|||
|
`{"code": 63 , "status":1}`
|
|||
|
|
|||
|
| **字段** | **类型** | **含义** |
|
|||
|
| --- | --- | --- |
|
|||
|
| code | Str | 状态码 |
|
|||
|
| status | int | 0 失败 1成功 |
|
|||
|
|