DTU Tool 使用教程
概述
本文档主要介绍如何使用DTU Tool配合移远DTU方案进行开发调试。
DTU工具的功能有两大类:
- 查询与配置DTU设备参数。
- 数据收发:通过DTU设备与云端进行数据收发。

参数查询与设置
| 功能 | 描述 |
|---|---|
| 查询IMEI号 | 获取设备的IMEI号 |
| 查询本机号码 | 获取DTU设备中SIM卡手机号码 |
| 查询信号强度 | 获取csq信号强度,信号强度值范围0~31,数值越大表示信号越好 |
| 设备重启 | 重启DTU设备 |
| 获取当前参数 | 获取DTU设备当前的配置参数,并跳转到参数配置和展示界面 |
| 恢复出厂参数 | 恢复出厂参数并重启DTU设备 |
| 保存所有设置参数 | 系统配置参数:云平台类型、固件升级、脚本升级、历史数据存储 串口参数配置:串口号、波特率、数据位、校验位、停止位、流控、R485 云参数配置:阿里云、Mqtt私有云、Socket私有云 |
查询IMEI号

在左侧串口数据显示框中以字符串格式显示出详细地串口数据,右侧命令消息框显示出查询获得的IMEI号。
查询本机号码

查询信号强度

设备重启

读取当前云平台参数
指令区域按键get current setting,点击后请求DTU设备当前云参数配置,界面自动跳转配置展示窗口。

云参数配置和展示窗口。

保存配置参数
读取当前配置参数后,进入参数配置界面,可以根据实际需求修改配置(也可以不读取,直接填写配置)。
在修改完成后,返回交互页面,点击按键save setting即可保存配置。

点击按键restore factory setting即可恢复出厂设置。

系统参数配置

基本配置参数项如上图
| 参数名 | 含义 |
|---|---|
| 云平台通道类型 | 云平台选择,可选项:阿里云、TCP私有云、MQTT私有云 |
| 固件升级 | 是否开启固件OTA升级 |
| 脚本升级 | 是否开启项目脚本OTA升级 |
| 历史数据存储 | 当通信异常,DTU无法向云端发送数据时,将发送数据保存,待通信恢复正常后重新发送 |
| 串口号 | 外部MCU连接DTU串口号,可选项:0,1,2 |
| 波特率 | 串口波特率 |
| 数据位 | 奇偶校验 |
| 停止位 | 停止位长度,可选项:1,2 |
| 流控 | 硬件控制流,可选项:FC_NONE,FC_HW |
| 控制485通信方向Pin | 串口发送数据之前和之后进行拉高拉低指定GPIO,用来指示485通信的方向。如1、 2代表UART.GPIO1、UART.GPIO2 |
云参数配置
云参数配置项会根据基本云平台通信类型选择值变化。当云平台通信类型为MQTT时,云参数配置项如下:

订阅主题和发布主题,均采用"主题id为key,主题字符串为value的json格式"。
举例说明:参数
{"0":"/F79933DC83A4/connect_packet/adv_publish"},表示id为"0"的主题"/F79933DC83A4/connect_packet/adv_publish"。
DTU数据收发调试
数据发送框的格式要求:数据发送的格式与MCU和DTU通信格式一致。针对和云端通信协议的不同,模块和外部设备(如MCU)通信协议也会不同。当模块和云端通信使用TCP协议时,由于TCP和串口都是数据流的形式,所以直接透传数据,不做任何处理;当模块和云端通信使用MQTT协议时,为了区分不同的数据帧,模块的串口对外协议采用简单的数据帧:<topic_id>,<msg_len>,<msg_data>"。
示例报文:
上行报文:“1,6,abcedf”
下行报文:“1,6,ijklmn”
模块和外部设备(MCU)上行报文和下行报文都是采用字符串格式,数据项之间采用","相隔。

二次开发
DTU工具是基于图形框架wxPython开发,现阶段已编译成dtu_tool.exe仅支持Windows系统。用户可在Linux或macOS配置Python环境并安装wxPython后可直接运行dtu_tool.py或自行编译对应版本的二进制程序即可(编译脚本:dtu_tool/build.sh)。
DTU Tool源代码仓库链接:https://github.com/QuecPython/DTU-tool.git
wxPython官方网站:https://www.wxpython.org
安装依赖
配置Python开发环境后,使用pip工具安装如下依赖库:
Pypubsub==4.0.3
wxPython==4.1.1
pubsub==0.1.2
pyserial==3.5
执行脚本
python dtu_tool.py
界面展示

注:调试前请启动DTU设备,并在DTU工具的串口配置区域选择与DTU设备通信的串口并打开该串口。