嵌入式开发<网络调试工具>

article/2025/9/16 1:41:44

嵌入式开发<网络调试工具>

  • 前言
    • 1,设备参数分类
    • 2,设备参数修改
    • 3,调试工具软件
  • 一、软件界面
  • 二、功能说明
    • 1.网络设置
      • 1)TCP Client设置
          • A, 协议类型:
          • B, 远程主机地址:
          • C, 远程主机端口:
          • D, 连接:
          • E, 复选项:
          • F, 心跳设置:
          • G, 搜索主机:
            • a, 开始:
            • b, 搜索过程:
            • c, 搜索到主机:
      • 2) TCP Server设置
          • A, 协议类型:
          • B, 本地主机地址:
          • C, 本地主机端口:
          • D, 打开:
      • 3) UDP设置
          • A, 协议类型:
          • B, 本地主机地址:
          • C, 本地主机端口:
          • D, 分包发送:
    • 2.接收操作
    • 3.发送操作
    • 4.发送区
    • 5.接收区
    • 6.按钮区
    • 7.升级区


前言

   为何设计此调试工具软件,完全因为在工作中遇到的问题。如产品开发过程中涉及到众多的命令调试(可能需要使用人员记住各种命令),参数及状态数据查看、修改,串口或网口通信调试,软件在线升级等等。同样,在测试及生产过程中也会涉及到诸多的操作需求,甚至对于测试中的问题跟踪提供便利操作,包括跟踪信息、操作日志跟踪等等。所有这些可能的需求,都将其集中在一个工具软件中执行,其所具有的功能完全已经超出了普通的串口助手或网络调试助手。
   这里本人对日常产品开发中对设备参数做一个说明。

1,设备参数分类

   在实际产品软件开发时,往往对设备来说有较多参数需要设置。对其归纳一下,大致可以分为4类:设备基本信息、设备工作参数、设备通信参数、设备状态,当然可能还会有一些其它参数,比如我在工作中就还会有拟合数据参数,但这不太具有一般性,以下仅说明前述的4类参数。
   1) 设备基本信息:主要描述设备名称、设备ID、设备型号、软硬件版本号、生产日期、生产厂商等信息。基本信息主要用于标识一个具体设备,其信息大部分往往是固定;这个参数可读写;
   2) 设备工作参数:主要描述设备工作中使用的可变参数,如某个阈值,某个时间值等。这部分参数即可以包括工厂模式修改,也可以包括客户模式修改,只需要软件进行区分即可;这个参数可读写;
   3) 设备通信参数:这个参数仅对具备通信功能的设备,可能包括通信参数的修改,也可以包括通信协议的选择(设备支持多种通信协议);这个参数可读写;
   4) 设备状态:主要是对设备运行的各种数据的及时读取及显示,可能包括电池电压、设备温度、通信模块信号等;这个参数仅可读;

2,设备参数修改

  以上4类参数,实际在软件进行设计时需要考虑如何对其进行读取或配置。不仅在开发调试可能使用,同时在生产、测试时同样需要使用,甚至在产品出货后在用户现场还可能进行配置修改。这就涉及到如何对参数进行修改,也属于软件设计需要考虑的内容。以下对各种修改方式作一个说明。
   1) 串口调试工具修改:这是最简单也最原始的方法,也就是软件设计一组命令,并通过调试串口接收命令及数据完成设备参数的读取或修改;这种修改方式有一定的缺陷,即作为产品来说,必须在外壳提供一个串口的接口,否则就需要开盖处理;
   2) 网口调试工具修改:这种方式对比串口调试工具稍微方便一些,可以设计为同样的修改方法,并且网口应该属于产品本身具有的一个接口,这样就不需要单独再为此开一个接口;
   3) 网页方式修改:这种方式与第二种方式有些相似之处,并且不需要工具软件,属于比较流行的方式。但对设备MCU的资源要求较高,对于一般的单片机,尤其是资源有限的MCU,其必然不太合适;
   4) 通信协议方式修改:也就是定义一个通信协议,由上位机或其它设备对它进行读取或修改。这种方式比较适合于有上位机通信的情况,并且其通用性不是太好;

3,调试工具软件

   本人根据工作需要自行开发了两款相似功能的软件工具,即串口调试工具和网络调试工具软件,这两款工具软件即具有一般的通用性(如普通的串口助手和网络助手),也有一定针对性(如考虑到调试或生产的使用)。本文主要针对网络调试工具做一个说明,至于串口调试工具,已经在另一份文档中说明。并且,网络调试工具中与串口调试工具有相当部分功能部分一致,这里除非有必要,否则不再重复。串口调试工具的使用说明,请参考:嵌入式开发<串口调试工具>
   此工具软件最大的特点是设计了功能按钮(与串口调试工具软件共享),设备可以输出指定格式的按钮文本,并进行保存,或者用户可以导入指定格式的按钮文本。在此后的调试中,用户无需记住所需的调试命令便可进行操作,同时若设备导入了按钮说明信息,则操作用户还可以查阅使用说明。
   同时,工具软件还提供了一套自定义的设备软件升级功能,并提供了协议说明;
   此外,工具软件也提供了诸多方便使用的小功能,可以更多的帮助开发人员使用;
网络调试工具软件下载

一、软件界面

!主界面](https://img-blog.csdnimg.cn/20210618144605504.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhaWp1bjA0,size_16,color_FFFFFF,t_70)

说明: 发送区的功能按钮取消勾选,则显示如下的升级区
升级区

二、功能说明

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秒即可。

如果你感兴趣,可查看其它文档.
单片机软件常用设计分享(一)驱动设计之按键设计
单片机软件常用设计分享(二)驱动设计之LED灯显示设计
单片机软件常用设计分享(三)驱动设计之数码屏显示设计
单片机软件常用设计分析(四)驱动设计之串口驱动设计
嵌入式开发<串口调试工具>
嵌入式开发<单片机软件调试>
嵌入式开发<单片机软件升级>


http://chatgpt.dhexx.cn/article/8LBYPkYW.shtml

相关文章

Linux串口调试工具

linux系统下串口调试和应用开发时配合串口调试工具必不可少。下面对常用的一些串口工具做一下汇总&#xff0c;包含&#xff1a;minicom/cutecom/picocom/putty/tty_uart 可供工程师参考。 实验环境&#xff1a; OS: Ubuntu16.04 ------------------------------------------…

android js调试工具,鬼鬼JS调试工具

鬼鬼JS调试工具是一款非常实用的JS调试软件&#xff0c;这里带给大家最新版本&#xff0c;新增了一些解密等功能&#xff0c;对于JS调试工作者或者感兴趣的朋友提供稳定和强大的调试支持。鬼鬼JS调试工具具有直观的界面设计&#xff0c;功能十分全面&#xff0c;有需要的朋友欢…

前端必须知道的调试工具

Bug和Debug Bug的起源&#xff1a; 当时人们还在使用第一代真空计算机&#xff08;马克二型&#xff09;&#xff0c;这种计算机是依靠控制电流来改变开关&#xff0c;从而实现控制&#xff0c;但是它会发出大量的热和光。 1949年9月9日&#xff0c;天气非常炎热&#xff0c…

10个用于C#.NET开发的基本调试工具

在调试软件时&#xff0c;工具非常重要。获取正确的工具&#xff0c;然后再调试时提起正确的信息。根据获取的正确的错误信息&#xff0c;可以找到问题的根源所在。找到问题根源所在&#xff0c;你就能够解决该错误了。 你将看到我认为最基本的解决在C# .NET 中错误问题的工具…

数据库(左、中、右)连接

一分钟让你搞明白 left join、right join和join的区别 首先&#xff0c;我们先来建两张表&#xff0c;第一张表命名为kemu&#xff0c;第二张表命名为score&#xff1a; 一、left join 顾名思义&#xff0c;就是“左连接”&#xff0c;表1左连接表2&#xff0c;以左为主&…

数据库 左连接,右连接,全连接,内连接

准备: 分别创建TB A,B. 插入一些测试数据。 TB_A TB_B 1.内链接 (inner join) 内连接是一种一一映射关系&#xff0c;就是两张表都有的才能显示出来 代码例子&#xff1a; select * from TB_A a inner join TB_B b on a.nameb.name 扩展&#xff1a;这里我突然联想到&#…

数据库的左右连接

连接查询 连接&#xff1a; join 所谓连接查询&#xff0c; 就是多个表查询 连接查询是先生成表记录的笛卡尔积 。 所有可能的对象组合 要领 左连接where只限定查询右表&#xff0c; 右连接where只限定查询左表。 左连接 left Join select * from tbl1 Left Join t…

数据库的左连接与右连接

概念模糊不清&#xff0c;特此整理。 1、有两张表 表TA&#xff1a;A1&#xff0c;A2&#xff0c;A3&#xff0c;AB 表TB&#xff1a;B1&#xff0c;B2&#xff0c;B3&#xff0c;BA 关联字段&#xff1a;AB、BA 2、左连接 SQL: select * from ta a left join tb b on a.ab …

数据库内连接、左连接、右连接详解

用一句话概括就是&#xff1a;左连接就是左边全部保留按条件查出右边&#xff0c;右连接就是右边全部保留按条件查出左边。 说得有点抽象&#xff0c;其实并没有什么难度&#xff0c;还是自己运行下数据库就明白了。 数据库建表语句如下&#xff1a; create database if not …

数据库查询之内连接,左连接,右连接

数据库查询之内连接&#xff0c;左连接&#xff0c;右连接 连接查询 当查询结果的列来源于多张表时&#xff0c;需要将多张表连接成一个大的数据集&#xff0c;再选择合适的列返回 等值连接查询&#xff1a;查询的结果为两个表匹配到的数据 左连接查询&#xff1a;查询的结果为…

数据库中外连接的三种形式(左连接,右连接,全连接)

外连接 左外连接语法格式 Select a.班级信息&#xff0c;a.班级信息, b.姓名, b.联系方式 From班级信息 a left outer** (可省略)join 辅导员信息 b on a.辅导员b.辅导员编号 分析&#xff1a; 右连接 Select a.班级信息&#xff0c;a.班级信息, b.姓名, b.联系方式 From 班…

【Mysql数据库】终于搞懂了左连接、右连接、内连接、全连接

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

数据库的内连接、左连接和右连接

今天在CSDN上看到一个非常浅显易懂的左右连接和内连接的例子&#xff0c;简直秒啊&#xff0c;记录一下 具体演示前提&#xff1a; 创建两个表&#xff1a; 用两个表&#xff08;a_table 和 b_table&#xff09;&#xff0c;关联字段 a_table.a_id 和 b_table.b_id 来演示一下…

MySQL数据库的内连接、左连接、右连接、全连接/联合查询

目录 1 概念 2 内连接 3 左连接 4 右连接 5 全连接/联合查询 1 概念 内连接 inner join&#xff1a;只返回两个表中连接字段相等的记录。左连接 left join&#xff1a;返回包括左表中的所有记录和右表中连接字段相等的记录。右表中没有则以null显示.右连接 right join&…

数据库中左连接和等值连接

数据库中左连接和等值连接 inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 例如&#xff1a; 我们先创建两个表&am…

数据库左连接、右连接、内连接、全连接笔记

原英文文章链接:https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins 准备 表A&#xff1a; -- auto-generated definition CREATE TABLE table_a (PK INT(10) NOT NULLPRIMARY KEY,Value VARCHAR(25) NULL )COMMENT 表A;表B&#xff1a…

Spring Boot整合Mybatis及事务处理

MyBatis为了方便与Spring Boot集成&#xff0c;专门提供了一个符合其规范的starter项目mybatis-spring-boot-starter。因此&#xff0c;我们只需在pom.xml添加相关依赖即可轻松集成。下面介绍了Spring Boot整合Mybatis的具体步骤以及事务使用&#xff08;包含解决事务失效的坑&…

Mybatis-事务管理,事务配置

事务的特征– 1.原子性 事务是数据库的逻辑工作单位&#xff0c;事务中包括的所有操作&#xff0c;要么全做&#xff0c;要么全部做 2.一致性 事务执行的结果必须是使数据库从一个一致性状态飙到另一个一致性状态&#xff0c;一致性与原子性是密切相关 3.隔离性 一个事务的执行…

springboot+mybatis整合配置事务详解(^_^)

springboot集成mybatis有三种方式&#xff1a; 一、最简单的方式就是使用MyBatis官方提供的 mybatis-spring-boot-starter。 二、另一种使用spring-mybatis包的xml配置方式&#xff0c;这样需要自己写一些代码&#xff0c;但可以更灵活的控制mybatis的各项配置。 三、使用引…

第08篇:Mybatis事务处理

一、Jdk底层实现 Java JDK中提供了标准接口Connection,不同的数据库驱动负责具体的实现。后面无论是Spring还是Mybatis对事务的处理&#xff0c;无论怎么的封装,最终究其到底都是由Connection来提供的能力。 public interface Connection extends Wrapper, AutoCloseable { …