wh201906 发表于 2023-11-27 02:07

[开源] 跨平台网络/蓝牙/串口调试助手,支持实时绘图,适配Windows/Linux/Android/macOS

本帖最后由 wh201906 于 2023-11-27 10:34 编辑

SerialTest是一款跨平台的网络/蓝牙/串口多合一调试助手,使用Qt开发,PC端免安装,可在Windows/Linux/Android/macOS上使用,完全开源


支持多种连接方式:串口,蓝牙客户端/服务端,蓝牙BLE中心设备,TCP客户端/服务端,UDP




数据收发面板:支持多种编码,16进制数据,重复发送,时间戳


实时绘图:可根据接收数据实时绘制若干条曲线,支持显示图例,光标



快速发送面板:一键发送自定义指令,或者用滑块微调参数并发送



支持Android,便于无线调试以及工业开发板调试


因为附件尺寸超过了论坛的大小限制,因此只能在论坛外下载
Windows/Android/macOS下载链接(选择任意一个即可):
https://github.com/wh201906/SerialTest/releases
https://sourceforge.net/projects/serialtest/

(国内用户使用SourceForge或者GitHub镜像站下载速度会快一些)

此应用还已上架到AUR, Flathub和F-Droid仓库,便于Linux和Android用户下载安装
https://aur.archlinux.org/packages/serialtest
https://flathub.org/apps/io.github.wh201906.serialtest
https://f-droid.org/zh_Hans/packages/priv.wh201906.serialtest/


项目/源码链接:
https://github.com/wh201906/SerialTest

如果你觉得好用,还望能够在项目页面点个star,谢谢!

wh201906 发表于 2023-11-27 02:12

本帖最后由 wh201906 于 2023-11-27 02:16 编辑


# 特点

## 跨平台

+ 支持Windows 7及更高版本
+ 支持[大多数Linux发行版](https://flathub.org/zh-Hans/setup)
+ 支持macOS 10.13 (High Sierra)及更高版本
+ 支持Android 5.0 (Lollipop)及更高版本


## 串口调试

+ 显示系统所有可用串口及参数,无需打开设备管理器/查看dmesg
+ 可以设置波特率,数据位,停止位,校验方式,流控方式,可在串口打开时实时更改
+ 可以控制DTR, RTS信号,显示CTS, DSR, DCD, RI(RNG)信号
+ 保存上一次连接的参数
+ 按照端口名或设备ID保存连接时参数,快速重设连接参数
+ (Android端只支持形如`/dev/ttyXXX`的硬件串口)
+ (若需在Android端使用USB串口设备,可参考[该解决方案](https://github.com/wh201906/SerialTest/discussions/11#discussioncomment-5892063))

## 蓝牙SPP调试

+ 支持常见的串口透传模块(HC-05, HC-06, JDY-34, ...)
+ 支持PC到手机,PC到PC,手机到手机之间的通信
+ 支持客户端(主机)模式/服务端(从机)模式,可主动连接设备或被设备连接
+ 服务端模式可被多个设备连接,可配置每个设备的收发状态,可断开任意设备
+ 支持多个蓝牙适配器(实验性功能)
+ 客户端:支持指定服务UUID


## 蓝牙BLE调试

+ 支持显示已连接设备的所有服务(Service),特征值(Characteristic)和描述符(Descriptor),支持嵌套服务
+ 接收和发送可使用不同的服务


## TCP

+ 支持IPv4/IPv6
+ 客户端:支持指定出站IP和端口号
+ 客户端:远端地址可以是IP或者域名
+ 客户端:支持保存连接时参数并取名,快速重设连接参数
+ 服务端:支持在全部网卡或指定网卡上监听
+ 服务端:可被多个设备连接,可配置每个设备的收发状态,可断开任意设备


## UDP

+ 支持IPv4/IPv6
+ 支持在全部网卡或指定网卡上监听
+ 支持保存连接时参数并取名,快速重设连接参数
+ 可在运行时直接改变目标远端地址和端口号


## 高性能

+ 快速响应:数据接收与UI更新分离,可通过关闭接收框实时显示进一步提速
+ 快速响应:耗时较长操作在独立线程当中完成,不阻塞UI
+ 低内存占用:关闭实时显示和绘图功能后接收字节数与内存消耗约为1:1


## 数据收发面板

+ 支持16进制显示, 切换过程中不改变原始数据(如\0)
+ 支持显示接收数据时间戳
+ 支持根据超时分包显示时间戳
+ 支持导出已选中文本/原始数据
+ 每次发送后可添加任意后缀(\n, \r\n, 文本,Hex数据)
+ 重复发送
+ 多种编码支持
(UTF8/16/32, GB2312/GB18030, BIG5, KOI8-R, Shift_JIS, EUC-KR, [......](https://doc.qt.io/qt-5/qtextcodec.html#details))
+ 支持转义字符
(\r, \n, \t, \0, \123, \xFF, \uABCD, ...)
+ 可记录/忽略已发送数据
+ 可单独显示已发送数据/已接收数据


## 实时绘图面板

+ 对文本数据进行绘图,保持人类可读性
+ 可任意拖动画面,用滚轮自由缩放画面
+ 支持触摸屏缩放/拖动手势
+ 可跟随最新数据
+ 可同时绘制最多99条曲线
+ 多种X轴模式
+ 带图例,可改变曲线的名字和颜色
+ 可显示/隐藏曲线
+ 可以在收到指定数据后清空绘图区,也可手动清空
+ [提供STM32/Arduino/STC8例程以及数据转文本函数](https://github.com/wh201906/SerialTest/tree/master/demo/README.md)


## 控制(快捷方式)面板

+ 一键发送指定数据
+ 快速发送数值,用于调整参数
+ 支持发送16进制内容
+ 支持转义字符
+ 支持添加前缀后缀
+ 支持导入/导出


## 文件收发面板

+ 支持快速计算CRC32校验值
+ 发送:可配置自动暂停,每发送一定数量字节后暂停一段时间,便于接收方处理
+ 接收:可配置自动停止,在接收到指定数量字节后自动停止接收
+ CRC32计算和文件读写流程在独立的线程中运行,提高速度


## 人性化界面

+ 可在单个窗口上显示多个面板
+ 每个面板可拆分为子窗口
+ PC端支持窗口置顶
+ PC端支持设置窗口不透明度
+ PC端程序可多开,标题栏会显示当前工作模式
+ 可在状态栏查看当前连接参数,并快速断开/重连
+ 支持改变字体
+ 支持改变语言
+ 支持改变主题(含暗色主题)


## 绿色免安装

+ 仅产生单个配置文件
+ Windows版本不改变注册表项
+ 配置文件默认位于运行目录下,也可位于系统默认配置文件夹中
+ 支持导入/导出/清空配置文件
+ 支持清空连接历史记录,改变历史记录最大条数,减少空间占用


## 适配Android

+ 小屏适配:可设置强制横屏
+ 小屏适配:数据收发面板可仅显示已发送/已接收数据
+ 小屏适配:支持全屏模式
+ 绘图界面支持缩放/拖动手势
+ 支持分享文本或文件到SerialTest并发送

wh201906 发表于 2023-11-27 11:04

zxxiaopi 发表于 2023-11-27 08:32
其实,有没有这种功能:就是监听已经占用串口的数据!很多时候调试,希望能监听已经在用的串口数据,但串 ...
Windows端做纯软件串口监听可能需要用到驱动,比较麻烦。之后我会看下用自签名的用户态驱动能不能做。
目前我在用的免费方案有以下几种:
1.用WireShark配合USBPcap抓USB的包并分析
2.主机用带监听功能的转发软件把USB串口转为TCP连接,然后用虚拟机软件把TCP连接再转回串口,这样做虚拟机里面的程序在独占串口,但是我可以在主机拿到传输数据。
3.如果是硬件串口,可以买个30块左右的逻辑分析仪,直接从Tx和Rx引脚上面捕获串口数据。

zhaozilong0502 发表于 2023-11-27 02:13

这个好强大的样子 多设备交互应该很棒

DanielToyama 发表于 2023-11-27 02:30

功能强大,太酷炫了

sxzswx 发表于 2023-11-27 05:37

跨平台是亮点

52soft 发表于 2023-11-27 07:44

好工具,谢谢

hao6988456 发表于 2023-11-27 07:46

有点厉害,感谢大佬分享

FruitBaby 发表于 2023-11-27 07:53

膜拜大佬,十分高级的跨设备软件

scxclzyzb 发表于 2023-11-27 08:02

功能太强大{:1_921:}

Abc239318 发表于 2023-11-27 08:06

神器啊,居然可以跨平台
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [开源] 跨平台网络/蓝牙/串口调试助手,支持实时绘图,适配Windows/Linux/Android/macOS