嵌入式开发<网络调试工具>
前言
为何设计此调试工具软件,完全因为在工作中遇到的问题。如产品开发过程中涉及到众多的命令调试(可能需要使用人员记住各种命令),参数及状态数据查看、修改,串口或网口通信调试,软件在线升级等等。同样,在测试及生产过程中也会涉及到诸多的操作需求,甚至对于测试中的问题跟踪提供便利操作,包括跟踪信息、操作日志跟踪等等。所有这些可能的需求,都将其集中在一个工具软件中执行,其所具有的功能完全已经超出了普通的串口助手或网络调试助手。
这里本人对日常产品开发中对设备参数做一个说明。
1,设备参数分类
在实际产品软件开发时,往往对设备来说有较多参数需要设置。对其归纳一下,大致可以分为4类:设备基本信息、设备工作参数、设备通信参数、设备状态,当然可能还会有一些其它参数,比如我在工作中就还会有拟合数据参数,但这不太具有一般性,以下仅说明前述的4类参数。
1) 设备基本信息:主要描述设备名称、设备ID、设备型号、软硬件版本号、生产日期、生产厂商等信息。基本信息主要用于标识一个具体设备,其信息大部分往往是固定;这个参数可读写;
2) 设备工作参数:主要描述设备工作中使用的可变参数,如某个阈值,某个时间值等。这部分参数即可以包括工厂模式修改,也可以包括客户模式修改,只需要软件进行区分即可;这个参数可读写;
3) 设备通信参数:这个参数仅对具备通信功能的设备,可能包括通信参数的修改,也可以包括通信协议的选择(设备支持多种通信协议);这个参数可读写;
4) 设备状态:主要是对设备运行的各种数据的及时读取及显示,可能包括电池电压、设备温度、通信模块信号等;这个参数仅可读;
2,设备参数修改
以上4类参数,实际在软件进行设计时需要考虑如何对其进行读取或配置。不仅在开发调试可能使用,同时在生产、测试时同样需要使用,甚至在产品出货后在用户现场还可能进行配置修改。这就涉及到如何对参数进行修改,也属于软件设计需要考虑的内容。以下对各种修改方式作一个说明。
1) 串口调试工具修改:这是最简单也最原始的方法,也就是软件设计一组命令,并通过调试串口接收命令及数据完成设备参数的读取或修改;这种修改方式有一定的缺陷,即作为产品来说,必须在外壳提供一个串口的接口,否则就需要开盖处理;
2) 网口调试工具修改:这种方式对比串口调试工具稍微方便一些,可以设计为同样的修改方法,并且网口应该属于产品本身具有的一个接口,这样就不需要单独再为此开一个接口;
3) 网页方式修改:这种方式与第二种方式有些相似之处,并且不需要工具软件,属于比较流行的方式。但对设备MCU的资源要求较高,对于一般的单片机,尤其是资源有限的MCU,其必然不太合适;
4) 通信协议方式修改:也就是定义一个通信协议,由上位机或其它设备对它进行读取或修改。这种方式比较适合于有上位机通信的情况,并且其通用性不是太好;
3,调试工具软件
本人根据工作需要自行开发了两款相似功能的软件工具,即串口调试工具和网络调试工具软件,这两款工具软件即具有一般的通用性(如普通的串口助手和网络助手),也有一定针对性(如考虑到调试或生产的使用)。本文主要针对网络调试工具做一个说明,至于串口调试工具,已经在另一份文档中说明。并且,网络调试工具中与串口调试工具有相当部分功能部分一致,这里除非有必要,否则不再重复。串口调试工具的使用说明,请参考:嵌入式开发<串口调试工具>
此工具软件最大的特点是设计了功能按钮(与串口调试工具软件共享),设备可以输出指定格式的按钮文本,并进行保存,或者用户可以导入指定格式的按钮文本。在此后的调试中,用户无需记住所需的调试命令便可进行操作,同时若设备导入了按钮说明信息,则操作用户还可以查阅使用说明。
同时,工具软件还提供了一套自定义的设备软件升级功能,并提供了协议说明;
此外,工具软件也提供了诸多方便使用的小功能,可以更多的帮助开发人员使用;
网络调试工具软件下载
4,软件新版本说明
以下描述的软件属于比较早期的版本,后续已经更新到V3.33,由于时间原因,不再更新图片及新增功能的详细描述。这里仅简单的说明一下增加了什么功能,具体的请下载最新软件。另外,由于版本更新较多,这个更新情况将最后。
一、软件界面
说明: 发送区的功能按钮取消勾选,则显示如下的升级区
二、功能说明
1.网络设置
这个区域较为复杂,主要是不同的协议类型对应的设置有所差别,以下将分开进行说明
1)TCP Client设置
A, 协议类型:
在协议类型下拉菜单中选择TCP Client,则对应的设置项如下;
B, 远程主机地址:
看点击远程主机地址下拉列表选择保存过的主机地址,或直接在列表框中输入希望连接的IP地址(输入完成后按回车键则可保存);
C, 远程主机端口:
其操作方法与远程主机地址相同;
D, 连接:
设置好以上两项后,即可点击连接按钮,连接过程、连接成功、连接失败显示如下:
连接中 连接成功
连接失败(如勾选了“重连”选项框,则不会显示连接失败)
连接中: 连接按钮背景色将由黄色和灰色交替显示,同时会动态显示1至3个点;
连接成功: 连接按钮将变为绿色,同时发送区与接收区将变得有效;
连接失败: 如勾选“重连”选项框,则不会显示连接失败提示框;
连接执行过程中再次点击“连接”(或显示的是“断开”)按钮,则恢复显示;
E, 复选项:
心跳: 勾选后,工具软件将根据“心跳设置”执行心跳检测(默认心跳数据由本地发送),当设备在规定时间规定次数没有响应心跳(或发送心跳)时,将断开连接,并重新连接;
断开提示: 勾选后,工具软件将在被断开连接后已提示框方式提示用户;
重连: 在连接中已经说明,勾选后起作用;
自动换行: 勾选后,接收完一帧数据时自动添加回车换行符,使其自动换行;
F, 心跳设置:
其设置界面如下
心跳周期: 设置连续检测心跳次数达到后,认定为连接断开;
心跳时间: 设置2次检测心跳的时间间隔;
心跳数据: 设置心跳报文识别符(可以是16进制数据);
十六进制格式: 勾选后,心跳数据为16进制数据;
本地发送/远程发送: 选择有工具软件(本地)或远程设备发送心跳数据,如本地发送,则远程设备在接收到此数据后,需将原文发回;如远程发送,则工具软件检测到设置的心跳报文数据后,同样将原文发回远程端;
默认值: 恢复默认参数;
G, 搜索主机:
其设置界面如下
搜索延时: 设置的时间为执行搜索时的响应等待时间(其值影响搜索的速度及准确性);
主机起始IP地址/结束IP地址:设置搜索主机IP地址范围,如192.168.30.1—192.168.50.255;
主机端口: 定连接端口;
a, 开始:
在设置完参数后,点击执行搜索,其界面如下
b, 搜索过程:
在当前搜索IP地址下的列表文本框中将显示当前正在搜索的IP地址,在此过程中可随时点击停止按钮;
c, 搜索到主机:
搜索到目标主机时,将暂停并显示搜索到的IP地址,界面如下
此时,可点击“继续”搜索其它主机,或点击“添加到网络设置”,则会将IP及端口添加的客户端的设置列表中;如搜索到多个IP地址,则在下列列表框中可选择需要的IP地址;
2) TCP Server设置
串口接收按照设置的分帧时间,在结束时自动添加回车换行符号;
A, 协议类型:
在协议类型下拉菜单中选择TCP Server,则对应的设置项如下
B, 本地主机地址:
从下拉列表中选择本地IP地址,可能会有多个IP地址(尤其安装了虚拟机时)
C, 本地主机端口:
其操作方法与TCP Client远程主机端口相同
D, 打开:
执行本机作为服务器的启动命令,并开始侦听客户端的连接,以下为客户端连接与断开时界面图
有客户端连接
查看所有连接IP
客户端断开
其它设置请参考TCP Client设置。注:设置为TCP Server时,无搜索操作
3) UDP设置
A, 协议类型:
在协议类型下拉菜单中选择UDP,则对应的设置项如下
B, 本地主机地址:
参考TCP Server设置;
C, 本地主机端口:
参考TCP Client设置;
D, 分包发送:
在执行数据发送时,根据设置的大小分别进行拆包发送,如选择无限制则不会拆包,但当包数据过大时,可能UDP接收方无法正常接收完成(可能受接收方自身限制)
2.接收操作
这部分功能与串口调试工具相同,请参考其文档说明;
3.发送操作
这部分功能与串口调试工具相同,请参考其文档说明;
4.发送区
这部分功能与串口调试工具相同,请参考其文档说明;
5.接收区
这部分功能与串口调试工具相同,请参考其文档说明;
6.按钮区
这部分功能与串口调试工具相同,请参考其文档说明;
7.升级区
这部分功能与串口调试工具基本相同,请参考其文档说明;但有一个参数需要作一定说明,如下图
响应时间: 这个设置与网络连接有关系,特别是针对无线通信,如2G模块,因其通信速度较低,且有时存在较大延时,故此值在这种情况下应该设置为较大的值才可靠,如设置为30秒或60秒;但对于以太网连接可使用默认值,即1秒即可。
三、后续版本更新说明
V3.33版本 2023.07.21
修改工作在客户端时服务器断开,客户端收发区域没有显示为无效状态的问题;
V3.32版本 2023.02.05
对软件升级版本的支持扩展到16个字符,如1.0.0.230205的版本将被自动读出;
V3.31版本 2022.10.09
在BIN文件合并功能中,增加HEX输入文件;
V3.30版本 2022.09.18
修改接收数据到文件操作,由原来指定的两种拆分文件大小模式修改为可选 文件大小,提供2种单位选择(MB/KB);
V3.29版本 2022.09.07
1)修改字符串与HEX相互转换功能,支持无空格的HEX转换为ASCII字符串,同时,支持ASCII字符串转换为无空格和有空格的HEX数据;
2)增加BIN文件合并功能,其添加在发送区或接收区的右键功能列表中;
3)同时将.NET版本由2.0提高到4.5;
V3.28版本 2022.04.08
1)在增加了诸多功能后,发现运行问题较多,尤其发现同时运行多个软件, 其日志记录变得非常糟糕。因此,此版本增加了一个日志记录选项,并且暂时使其默认不选择,临时解决此问题;
2)修正原设计的退格符,由\tn\t修改为\bn\b;
V3.27版本 2022.03.25
增加了接收区与发送区执行位变量与字变量转换的功能。
V3.26版本 2022.03.18
修改按钮编程中定时响应与自动响应相互切换及操作过程中的若干BUG。
V3.25版本 2022.03.16
增加了接收区退格操作(删除),使得接收区可以更加友好的显示数据变化等。
1)退格字符串格式:“\tn\t”,其中n表示退格数量;如"\t12\t"表示往后退格12;
2)格式字符串必须出现在一行的开始部分,其它地方出现此字符串无效;
3)在使用时,注意应该不能打开时间戳,否则可能达不到预想的效果;
V3.24版本 2022.03.15
修改按钮编程功能定时响应BUG;
V3.23版本 2022.02.10
1)完善了按钮编程功能,可实现较为复杂的按钮编程操作,具体操作方法详见按钮编程中的操作说明;
2)编程数量扩展到最大1000个,功能按钮数量扩展到最大200个;
V3.22版本 2022.01.17
添加手动发送数据在操作日志文件中;
V3.21版本 2022.01.07
添加了modbus rtu发送功能;
V3.20版本 2021.12.30
增加了重大功能,即按钮编程功能,主要应用于测试场景;
A,按钮编程功能执行时,需要确认操作的按钮将被忽略;
B,执行按钮编程时,可以选择不记录按钮操作日志;
C,按钮编程导出文档可以用于串口调试工具中;
V3.14版本 2021.11.17
修改按钮提示信息头部含有回车换行符时,提示信息显示不正确问题;
V3.13版本 2021.11.05
增加了软件升级时,产品型号与版本号更多的存储位置,具体查看协议说明;
V3.12版本 2021.10.25
1)增加软件升级可选择升级参数功能;
2)支持更小的升级包大小(128/256),具体请查看软件升级“协议说明”中的起始包内容说明;
V3.11版本 2021.08.31
1)修改接收框查找功能,添加了方向选择;
2)修改UDP有限次数自动发送BUG
附
如果你感兴趣,可查看其它文档.
单片机软件常用设计分享(一)驱动设计之按键设计
单片机软件常用设计分享(二)驱动设计之LED灯显示设计
单片机软件常用设计分享(三)驱动设计之数码屏显示设计
单片机软件常用设计分析(四)驱动设计之串口驱动设计
嵌入式开发<串口调试工具>
嵌入式开发<单片机软件调试>
嵌入式开发<单片机软件升级>