mirror of
https://gitee.com/qpy-solutions/dtu.git
synced 2025-05-20 03:28:25 +08:00
1076 lines
36 KiB
Markdown
1076 lines
36 KiB
Markdown
# **DTU 通信数据协议**
|
||
|
||
# 1 概述
|
||
|
||
本文档主要内容包括:
|
||
- 与云端通信的报文格式
|
||
- 所有命令模式的指令报文格式:设置参数、查询参数
|
||
- dtu_config.json配置文件字段的详细说明
|
||
|
||
# 2 数据格式
|
||
|
||
DTU与云端通信报文使用json格式
|
||
|
||
- 云端下行报文
|
||
|
||
命令模式:
|
||
|
||
`{“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, “modbus”: {"groups": {"num": 0, "cmd": ["0x03", "0x00", "0x00", "0x00", "0x02"]}}}`
|
||
|
||
字段说明:
|
||
|
||
msg_id:报文id,一般为时间戳+3位随机数
|
||
|
||
data:报文消息字段
|
||
|
||
cmd_code:可选字段,填写对应功能码,并又DTU执行相应的操作,此字段仅在命令模式下生效
|
||
|
||
topic_id:可选字段,填写mqtt返回需要publish的topic_id,此字段仅在命令模式与使用MQTT/Aliyun/Txyun时生效
|
||
|
||
modbus:可选字段,此字段仅在modbus模式使用,此字段下有3个子字段:groups,task与command
|
||
|
||
    groups:可选字段,在modbus模式下向指定的地址组发送消息
|
||
|
||
        num:配置文件中的地址组编号
|
||
|
||
        cmd:向地址组发送的modbus命令
|
||
|
||
    task:可选字段,在modbus模式下执行代码中预置的task任务
|
||
|
||
    command:可选字段,在modbus下直接向UART口写入指定modbus命令
|
||
|
||
- 云端上行报文
|
||
|
||
命令模式:
|
||
|
||
`{"msg_id": msg_id, "data": "1234"[, "cmd_code": 40, "status": 1, "password": "123"]}`
|
||
|
||
透传模式:
|
||
|
||
`{“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升级)
|
||
|
||
项目版本号格式为: 2.0.0
|
||
|
||
功能码: 2
|
||
|
||
返回的数据内容:
|
||
|
||
`{"code": 2 , "data": "2.0.0" , "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":{"1": 1},
|
||
"status":1}
|
||
```
|
||
|
||
| **字段** | **类型** | **含义** |
|
||
| -------- | -------- | ------------ |
|
||
| code | int | 状态码 |
|
||
| data | dict | 各通道网络连接状态,key:通道号,value:网络连接状态 |
|
||
| status | str | 0 失败 1成功 |
|
||
|
||
网络连接状态说明
|
||
|
||
| **连接类型** | **含义** |
|
||
| ------------ | ---------------------------------------------------- |
|
||
| udp | 无意义(默认返回1) |
|
||
| mqtt/aliyun/txyun/quecthing/tcp/http | 0:未连接成功 1:连接成功 |
|
||
|
||
### 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": {"longitude": 31.82175827026367, "latitude": 117.1155395507812},
|
||
|
||
"status":1}
|
||
```
|
||
|
||
| **字段** | **类型** | **含义** |
|
||
| -------- | -------- | ------------ |
|
||
| code | int | 状态码 |
|
||
| data | dict | 基站定位信息 |
|
||
| status | str | 0 失败 1成功 |
|
||
|
||
|
||
# 5 复位指令
|
||
|
||
功能码: 255
|
||
|
||
数据内容:
|
||
```
|
||
{"password":"",
|
||
|
||
"cmd_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":"",
|
||
"cmd_code": 50,
|
||
"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":" ",
|
||
"cmd_code": 51,
|
||
"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":"",
|
||
"cmd_code": 53,
|
||
"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 设置参数版本号
|
||
|
||
**说明:**
|
||
|
||
设置参数版本号
|
||
|
||
功能码: 54
|
||
|
||
数据内容:
|
||
```
|
||
{
|
||
"password":"",
|
||
"cmd_code": 54,
|
||
"data": {"version": 1}
|
||
}
|
||
```
|
||
返回的数据内容:
|
||
|
||
`{"code": 54 , "data": 2, "success":1}`
|
||
|
||
| **字段** | **类型** | **含义** |
|
||
| -------- | -------- | ------------ |
|
||
| code | str | 状态码 |
|
||
| data | dict | 1~n参数版本号 |
|
||
| success | int | 0 失败 1成功 |
|
||
|
||
### 6.1.5 是否启用自动更新 fota
|
||
|
||
**说明:**
|
||
|
||
Fota升级开关
|
||
|
||
功能码: 55
|
||
|
||
数据内容:
|
||
```
|
||
{
|
||
"password":"",
|
||
"cmd_code": 55,
|
||
"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":"",
|
||
"cmd_code": 56,
|
||
"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":"",
|
||
"cmd_code": 57,
|
||
"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": ""
|
||
"cmd_code": 58,
|
||
"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":"",
|
||
"cmd_code": 59,
|
||
"data":{
|
||
"conf":{
|
||
"1": {
|
||
"protocol": "aliyun",
|
||
"type": "mos",
|
||
"keepAlive": "",
|
||
"clientID": "0",
|
||
"Devicename": "dtu_device1",
|
||
"ProductKey": "gzsi5zT5fH3",
|
||
"DeviceSecret": "173f006cab770615346978583ac430c0",
|
||
"ProductSecret": "D07Ujh1RvKAs6KEY",
|
||
"cleanSession": true,
|
||
"qos": "1",
|
||
"subscribe": {"0": "/gzsi5zT5fH3/dtu_device1/user/get"},
|
||
"publish": {"0": "/gzsi5zT5fH3/dtu_device1/user/update"},
|
||
"serialID": 2}
|
||
}}}
|
||
```
|
||
**对应通道的配置参数详见6.1.9.1的通道配置详解 :**
|
||
|
||
返回的数据内容:
|
||
|
||
`{"code": "20000" , "data": " " , "success":1}`
|
||
|
||
| **字段** | **类型** | **含义** |
|
||
| -------- | -------- | ------------ |
|
||
| code | str | 状态码 |
|
||
| data | str | conf |
|
||
| success | int | 0 失败 1成功 |
|
||
|
||
#### 6.1.10.1 通道配置详解
|
||
|
||
##### 6.1.10.1.1 HTTP参数
|
||
```
|
||
{
|
||
"protocol": "http",
|
||
"request": {"1":{"method":"get", "url":"http://220.180.239.212:18011/test"}},
|
||
"post_data": "",
|
||
"serialID": 2
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| -------- | -------- | ----------------------- |
|
||
| http | str | 通信方式http标识 |
|
||
| request | dict | HTTP请求的id,对应实际和http服务器通信的mothod和url|
|
||
| post_data | str | post请求携带的数据,get请求不填写|
|
||
| serialD | int | HTTP绑定的串口号(1~2) |
|
||
|
||
##### 6.1.10.1.2 SOCKET tcp参数
|
||
```
|
||
{
|
||
"protocol": "tcp",
|
||
"ip_type":"IPv4",
|
||
"server": "220.180.239.212",
|
||
"port": "18011",
|
||
"keep_alive": 5,
|
||
"serialID": 2
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| --------- | -------- | ------------------------------------------------- |
|
||
| tcp | str | Socket的tcp协议标识 |
|
||
| ip_type | str | IPv4或者IPv6 |
|
||
| server | str | socket的地址或域名 |
|
||
| port | int | socket服务器的端口号 |
|
||
| keep_alive | int | 心跳间隔时间,单位分钟 |
|
||
| serialD | int | tcp/udp绑定的串口号(1~2) |
|
||
|
||
##### 6.1.10.1.3 SOCKET udp 参数
|
||
```
|
||
{
|
||
"protocol": "udp",
|
||
"ip_type":"IPv4",
|
||
"server": "220.180.239.212",
|
||
"port": "18011",
|
||
"serialID": 2
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| --------- | -------- | ------------------------------------------------- |
|
||
| protocol | str | Socket的udp协议标识 |
|
||
| ip_type | str | IPv4或者IPv6 |
|
||
| server | str | socket的地址或域名 |
|
||
| port | int | socket服务器的端口号 |
|
||
| serialD | int | tcp/udp绑定的串口号(1~2) |
|
||
|
||
##### 6.1.10.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秒 |
|
||
| url | str | MQTT的地址或域名 |
|
||
| port | int | socket服务器的端口号 |
|
||
| cleanSession | int | MQTT是否保存会话标志位,0持久会话,1离线自动销毁 |
|
||
| subscribe | str | 订阅主题 |
|
||
| publish | str | 发布主题 |
|
||
| qos | int | MQTT的QOS级别,默认0 |
|
||
| retain | int | MQTT的publish参数retain,默认0 |
|
||
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
||
|
||
##### 6.1.10.1.5 阿里云参数
|
||
```
|
||
{
|
||
"protocol": "aliyun",
|
||
"type": "mos",
|
||
"keepAlive": "",
|
||
"clientID": "0",
|
||
"Devicename": "dtu_device1",
|
||
"ProductKey": "gzsi5zT5fH3",
|
||
"DeviceSecret": "173f006cab770615346978583ac430c0",
|
||
"ProductSecret": "D07Ujh1RvKAs6KEY",
|
||
"cleanSession": true,
|
||
"qos": "1",
|
||
"subscribe": {"0": "/gzsi5zT5fH3/dtu_device1/user/get"},
|
||
"publish": {"0": "/gzsi5zT5fH3/dtu_device1/user/update"},
|
||
"serialID": 2
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| 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 | bool | 配置与云平台通信的数据是否采用session加密(默认值为False),True:加密,False:加密 |
|
||
| qos | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
||
| subscribe | str | 订阅主题 |
|
||
| publish | str | 发布主题 |
|
||
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
||
|
||
##### 6.1.10.1.6 腾讯云参数
|
||
```
|
||
{
|
||
"protocol": "txyun",
|
||
"type": "mos",
|
||
"keepAlive": "",
|
||
"clientID": "0",
|
||
"Devicename": "dtu_device1",
|
||
"ProductKey": "I81T7DUSFF",
|
||
"DeviceSecret": "wF+b5NwEHI53crHmOqdyQA==",
|
||
"ProductSecret": "",
|
||
"cleanSession": "0",
|
||
"qos": "1",
|
||
"subscribe": {"0": "I81T7DUSFF/dtu_device1/control"},
|
||
"publish": {"0": "I81T7DUSFF/dtu_device1/event"},
|
||
"serialID": 0
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| 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 | bool | 配置与云平台通信的数据是否采用session加密(默认值为False),True:加密,False:加密 |
|
||
| QOS | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
||
| subscribe | str | 订阅主题 |
|
||
| publish | str | 发布主题 |
|
||
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
||
|
||
|
||
##### 6.1.10.1.7 移远云参数
|
||
```
|
||
{
|
||
"protocol": "quecthing",
|
||
"keepAlive": "",
|
||
"ProductKey": "p113LS",
|
||
"ProductSecret": "ZjY3bGFtTUpsL1RN",
|
||
"Devicename": "dtudevice1",
|
||
"DeviceSecret":"",
|
||
"qos": "1",
|
||
"SessionFlag": false,
|
||
"sendMode": "pass",
|
||
"serialID": "2"
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||
| quecthing | str | 移远云IOT的标识 |
|
||
| keepAlive | int | 通信之间允许的最长时间段(以秒为单位),默认为120,范围(60-1200)使用默认值就填""或者" "。 |
|
||
| ProductKey | str | 产品id |
|
||
| ProductSecret | str | 产品密钥 |
|
||
| Devicename | str | 设备名称 |
|
||
| DeviceSecret | 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)
|
||
|
||
##### 6.1.10.1.8 华为云参数
|
||
```
|
||
{
|
||
"protocol": "hwyun",
|
||
"url": "a15fbbd7ce.iot-mqtts.cn-north-4.myhuaweicloud.com",
|
||
"port": "1883",
|
||
"Devicename": "625132b420cfa22b94c54613_dtu_device1_id",
|
||
"DeviceSecret": "a306255686a71e56ad53965fc2771bf8",
|
||
"keep_alive": 10,
|
||
"cleanSession": true,
|
||
"subscribe": {"0": "$oc/devices/625132b420cfa22b94c54613_dtu_device1_id/sys/messages/down"},
|
||
"publish": {"0": "$oc/devices/625132b420cfa22b94c54613_dtu_device1_id/sys/messages/up"},
|
||
"qos": 0,
|
||
"serialID": 2
|
||
}
|
||
```
|
||
| **字段** | **类型** | **含义** |
|
||
| ------------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||
| hwyun | str | 华为云IOT的标识 |
|
||
| url | str | MQTT的地址或域名 |
|
||
| port | int | socket服务器的端口号 |
|
||
| Devicename | str | 设备名称 |
|
||
| DeviceSecret | str | 设备密钥
|
||
| keepAlive | int | 通信之间允许的最长时间段(以秒为单位),默认为120,范围(60-1200)使用默认值就填""或者" "。 |
|
||
| cleanSession | bool | 配置与云平台通信的数据是否采用session加密(默认值为False),True:加密,False:加密 |
|
||
| subscribe | str | 订阅主题 |
|
||
| publish | str | 发布主题 |
|
||
| qos | int | MQTT消息服务质量(默认0,可选择0或1)0:发送者只发送一次消息,不进行重试 1:发送者最少发送一次消息,确保消息到达Broker |
|
||
| serialD | int | MQTT通道捆绑的串口ID (1~3) |
|
||
|
||
|
||
华为云开发说明请点击以下连接获取文档:
|
||
|
||
(https://python.quectel.com/doc/doc/Advanced_development/zh/QuecPythonCloud/HuaweiCloud.html)
|
||
|
||
|
||
# 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成功 |
|