Giter Club home page Giter Club logo

wh201906 / serialtest Goto Github PK

View Code? Open in Web Editor NEW
955.0 15.0 178.0 19.63 MB

Data transceiver(monitor)/realtime plotter/shortcut/file transceiver over serial port/Bluetooth/network on Windows/Linux/Android/macOS | 跨平台串口/蓝牙/网络调试助手,带数据收发/实时绘图/快捷发送/文件收发面板,可在PC和Android设备上使用

License: GNU General Public License v3.0

QMake 0.69% C++ 97.70% Java 0.77% Python 0.84%
qt qt5 serialport qcustomplot android plot bluetooth bluetooth-le tcp udp

serialtest's Introduction

SerialTest

downloads downloads installs translation
Windows CI(MinGW-w64) Windows CI(MSVC) macOS CI
A versatile test tool running on Windows/Linux/macOS/Android.
Works as data transceiver/realtime plotter/shortcut/file transceiver.
Supports serial port, Bluetooth SPP client/server, Bluetooth LE client, TCP client/server, UDP.

中文介绍

Get it on F-Droid
Download on Flathub

Features

Cross-platform
  • Supports Windows 7 and later
  • Supports most Linux distros
  • Supports macOS 10.13 (High Sierra) and later
  • Supports Android 5.0 (Lollipop) and later
Serial port debugger
  • Show all available serial ports with parameters. No need to check Device Manager or dmesg
  • Set baud rate, data bits, stop bits, parity scheme, flow control and change them on the fly
  • Modify DTR/RTS signals, Show CTS, DSR, DCD, RI(RNG)signals
  • Save the parameters of the last connection
  • Save connection parameters by port name or device ID then reuse them quickly
  • (Android: support hardware serial port only, like /dev/ttyXXX)
  • (Android: Workaround for USB serial devices)
Bluetooth SPP debugger
  • Supports commonly used Bluetooth modules(HC-05, HC-06, JDY-34, ...)
  • Supports communication between PC and smartphone
  • Supports client mode and server mode
  • The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.
  • Supports multiple local Bluetooth adapters (Experimental)
  • Client: Supports specifying service UUID
Bluetooth LE debugger
  • Show all services(primary and included services), characteristics and descriptors of connected device
  • Specify different service for Rx/Tx
TCP
  • Supports IPv4/IPv6
  • Client:Supports spceifying local address and port
  • Client:The remote address can be a IP address or a website
  • Client:Supports storing connection parameters with user specified name then reuse them quickly
  • Server:Supports listening on all NICs or specified NIC
  • Server:The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.
UDP
  • Supports IPv4/IPv6
  • Supports listening on all NICs or specified NIC
  • Supports storing connection parameters with user specified name then reuse them quickly
  • Change remote address and port on the fly
High performance
  • Fast response:UI update is separated from Data reception. Disable "Realtime" option in "data" tab for higher speed
  • Fast response:Time-consuming works run in dedicated threads
  • Low memory cost:Received bytes to memory consumption is about 1:1, if the plot and "Realtime" option are disabled.
Data panel
  • Show data in hexadecimal
  • Show timestamp of received data
  • Show packets split by timeout with timestamp
  • Export raw data or selected text
  • Add suffix behind each sending(\r, \r\n, string, hex data)
  • Repeat
  • Rich encoding support
    (UTF8/16/32, GB2312/GB18030, BIG5, KOI8-R, Shift_JIS, EUC-KR, ...... )
  • Unescape user input
    (\r, \n, \t, \0, \123, \xFF, \uABCD, ...)
  • Enable/disable echo
  • Show sended/received data only
Realtime plotter
  • Human-readable data format
  • Drag or scroll the canvas by mouse
  • Drag or scroll the canvas on touchscreen
  • Showing the latest data or holding on
  • Show up to 99 graphs
  • Multiple X-axis mode
  • Legends with customizable name and color
  • Show/hide graphs
  • Clear the canvas by specified data or "Clear" button
  • Demos of STM32/Arduino/STC8
Control(shortcut) panel
  • Send spedified data by one click
  • Send a number quickly by slider
  • Send data in hexadecimal
  • Unescaping support
  • Add prefix/suffix
  • Import/Export the whole panel
File transceiver
  • Calculate CRC32 checksum quickly
  • Send with throttle
  • Stop receiving after specified number of bytes
  • CRC32 and file IO are handled in separated threads for better performance
Handy UI
  • Show multiple panels with your preferred layout on a single window
  • Show panel as separated windows
  • PC: Stays on top
  • PC: Opacity
  • PC: Start multiple instances with different modes, which are shown on the title bar
  • Check connection parameters and disconnect/reconnect on status bar
  • Customize font
  • Select language
  • Change theme(dark theme)
Portable
  • The app generates one single config file only
  • Never touchs Windows Registry
  • Use config file in current working directory or system default config directory
  • Export/Import/Clear config
  • Clear history
  • Set maximum history count
Supports Android
  • Small screen support: Force landscape mode
  • Small screen support: Show sended/received data only
  • Small screen support: Full screen mode
  • Drag/Scale gesture support on Plotter
  • Share text/file to SerialTest then send it

Previews

Data Panel Plotter&Data(GIF) Control Panel(GIF) Serial Port, Dark Theme
win_data mixed_plotter ctrl dark_serial
Bluetooth, Windows Serial Port, Android TCP Client, Linux TCP Server
win_bluetooth android_serial linux_tcp_client tcp_server

more previews

Tutorials[WIP]

1.Connect
2.Send&Receive Data
3.Plot

Demos

You can write programs on MCU according to the demos in the demo/ folder
Demo README

Binaries for Windows, Android and macOS

You can download pre-built binaries and Android APK in release page.

You can also download them in SourceForge
Download SerialTest

The Android app is available on F-Droid as well.
Get it on F-Droid

Build on Linux

Steps

1. Install depencencies

# sudo add-apt-repository universe
sudo apt-get update
# sudo apt-get install git build-essential
sudo apt-get install qtbase5-dev qt5-qmake libqt5serialport5-dev qtconnectivity5-dev 

2. Get the source code

cd ~
git clone https://github.com/wh201906/SerialTest.git --depth=1
cd SerialTest
mkdir build && cd build

3. Choose how to import QCustomplot

Use QCustomPlot source file(recommended)

You need to download QCustomPlot archive, extract the qcustomplot.cpp and qcustomplot.h in the /src folder(replace the existing qcustomplot.h), then build.

wget https://www.qcustomplot.com/release/2.1.1/QCustomPlot-source.tar.gz
tar -xzf QCustomPlot-source.tar.gz
cp qcustomplot-source/qcustomplot.* ../src

Use QCustomPlot library

If the qcustomplot.cpp doesn't exist in the src/ folder, the qmake will try to find the library file(xxx.so/xxx.dll) in the building directory(where you call the qmake command) and the default library directory.

4. Build and run

export QT_SELECT=qt5
qmake ../src
make -j4 && make clean
./SerialTest 

Install from the Linux software repository

Flathub

flatpak install flathub io.github.wh201906.serialtest
# run this app
flatpak run io.github.wh201906.serialtest

Arch Linux

# Install the release
yay -S serialtest

# Install the development version
yay -S serialtest-git

Translation

The project uses Weblate to manage translation.
If you'd like to help with the translation, please visit the Weblate translation page or create a PR to the weblate branch.
Translation status

Change Log

Change Log

License

The src/qcustomplot.h and the files in src/qdarkstyle/ are licensed under the same licenses as their respective projects.
The source code in src/ is licensed under GPL 3.0.
The source code in demo/(excluding dependencies), translations, documents and other parts of this project are licensed under MIT.

serialtest's People

Contributors

ferenc- avatar poussinou avatar taotieren avatar weblate avatar wh201906 avatar zeakyx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serialtest's Issues

图例显示功能建议

能否考虑设置增加,x,y轴的图例,可以手动设置x,y 分别代表什么,显示在坐标轴旁边

[建议] PC端增加记录窗口排版的功能

目前有两个建议:

  1. 当前每次打开软件,都是默认的排版格式,之前排好版的风格,需要重新再排一次...不太方便,希望程序能自动记录上一次排版风格。
  2. 控制窗口,每次打开软件,都需要手动导入一次上一次存储的配置,这样也不太方便,如果能记录上一次导入的配置就好了。

image

有关于绘图功能的详细文档吗?

作者你好,我想请问下有关于绘图功能的详细文档吗?绘图是根据哪个变量来绘制的?我这边把需要绘制的QByteArray传给rawReceivedData,其中数据为"100,100,100,100,100,100\n10,10,10,10,10,10\n......"。然后设置了帧分隔符“\n”,数据项分隔符",",发现绘图控件没有刷新。

BLE Central not working on Windows

  • After connecting to the device using the Windows bluetooth settings screen, it shows up in the Connect tab.
  • Clicking "Connect" shows the attribute UUIDs in the right screen, and allows selecting the correct characteristics for RX/TX.
  • Upon clicking "Open", the bottom bar changes to show "Status: √" and "Remote: [MAC] Local: 00:00:00:00:00:00", but no data is ever received, and from the device's logs, I can see that the NOTIFY characteristic is never enabled.

Using the latest Windows binary (V0.3.4-win64.7z) on Windows 10 Pro 22H2.

有Android的编译教程吗?

有编译安卓程序的QT配置文档吗?这边PC已经跑通了,但是编译安卓就是通不过去,已经换了3个不同的QT版本了,能否指导一下。

压力稍大时,绘图窗会卡死

STM32L476 波特率:921600
循环发送延时1ms 数据量约2KB/s 此时绘图窗流畅度大幅下降。
函数如下;
while (1)
{
printf("%d\n",(uint16_t)TempValue);
HAL_Delay(1);
}
循环发送不延时 数据量约10KB/s 此时绘图窗需手动刷新。

Qt6

When I found this software, my Linux was fully compatible to build it myself. Now I have switched to Ubuntu 23.10. I cannot reconstruct the dependencies to Qt5. Qmake does not give me any errors, but compiling it brings some fatal errors. I, and maybe some other users worldwide, would appreciate if you could make it compatible with Qt6. If it works, I would like to build it on a SBC. Flatpak is not a popular option for me. Thank you!

安卓编译

你好大佬。编译安卓,需要哪个版本的qt版本来支持

problem of QT::SkipEmptyParts

QT version problem caused mainwindow.c line 1241 to report 'QT::SkipEmptyParts' error, which was changed to 'QString::SkipEmptyParts' to solve

接收大小写问题

你好,我发送字符无论是大写还是小写接收到的都是小写,因为有时候需要区分大小写,是软件本身就是这样还是有哪里可以设置是我没发现的
屏幕截图 2024-03-13 002431

功能建议

  1. 可以增加报文长度、报文序号分类标签,显示每次报文的长度,长度显示真的很重要

image

  1. 可以增加报文的搜索功能,搜索关键词,现在比如想查找具体的一段报文,还得导出txt再搜索

[建议] 指令框能添加特征批量复制功能

image
如图所示,B,C,D,E指令都需要同步添加指令特征点,比如,都需要添加后缀\r\n。
那么目前的做法是手动一个个选中后缀,然后选择\r\n。当指令多起来后,比如100个指令都需要添加后缀,那这样挨个点击,有些不太方便。
看是否可以有个多选选项,开启后,可以将选中的指令批量修改特征。

目前我是先导出一份json表单,然后手动批量修改指令特征的,但这样也不太方便哈。

源码重新编译出错

使用的是Qt5.15.2 MinGW 64-bit的环境,直接运行源码报错error: cannot find -lqcustomplotd2

界面 Bug:悬浮窗口被关闭且难以恢复

Bug 源于误操作,在 Windows 10 下发生。

复现方法:

  1. 打开本“串口调试助手”
  2. 点击右上角的按钮(如图所示 微信截图_20230207221124
  3. 对新开的窗口按下 Alt + F4
  4. 然后复现成功:我该怎么再打开这个窗口/选项卡呢?

addition of option "scatter w/o lines"

Hello,

First, thanks a lot for this great tool ! I am using it to monitor an serial output from an FPGA.

Using the serial plotter!
When i send as x axis a sin(x) and as y axis a cos(x) i get the following plot.
Capture

Here i will prefer to see an empty circle ( classic Lissajous figures ) !
Will it be possible to add in the plot tab (next to "scatter") option, a new option of scatter with no lines joining the points of the curve !

Can be named "scatter without lines" , "scatter w/o lines" or "scatter line free" ?

Thanks and have a nice day.

数据发送相关建议

image

  1. 发送数据过后能直接清空输入数据的栏的数据吗
  2. 发送的数据不能有换行的情况,导致 假如我发送多个数据,下面这个记录发送过的数据的框全都是没有换行的数据

[建议] 数据接收一栏,是否可以有个自动存储功能,可以实时存储数据并存放到设置的目录中

image

数据接收这块,希望有个开关可以开启自动存储功能:

  1. 每次连接上一个端口,按当前时间戳为文件名字自动生成一个txt文件,并实时存储数据。
  2. 如果端口重新连接,会自动以当前时间戳为名字重新生成一个txt文件,并实时存储数据。

这对挂机自动收发数据,并记录长时间交互日志,很有帮助。
另外,想确认下当前 导出功能,能导出的的最大缓存是多少?有没有上限?

Cannot open the serial port. Device is not open

Hey, I'm trying to use the program under Ubuntu 18.04. PL2303 USB to TTL converter is connected on ttyUSB0 port. However the program doesn't recognize its vendor or product IDs as shown.
Screenshot from 2023-01-09 19-38-10

when I try to open this port, it shows a message "Cannot open the serial port. Device is not open".
Screenshot from 2023-01-09 19-38-14

In terminal, vendor or product IDs are recognized as shown. How can I fix this?
Screenshot from 2023-01-09 19-40-32

请教:windows下编译经典蓝牙不生效

您好,我使用在线安装的qt5.15.2,编译了此工程,发现“蓝牙客户端”、“蓝牙服务器”是置灰的,跟踪代码,发现是auto BTAdapterList = QBluetoothLocalDevice::allDevices(); 这里返回的个数为0,导致经典蓝牙不可用, 但我下载你编译好的,经典蓝牙功能却是正常的。

然后我尝试把下面几句先注释掉,发现经典蓝牙的连接和数据收发也都是正常,只是搜索不到设备(需要提前在电脑系统里面先配对好需要连接的设备)
if(num == 0)
{
invalid += Connection::BT_Client;
invalid += Connection::BT_Server;
invalid += Connection::BLE_Central;
invalid += Connection::BLE_Peripheral;
}

请问这可能是什么问题呢?你有遇到过吗?是我漏安装了什么吗

dynamic memory Arduino UNO R3

Hi, I built the program flawlessly. I receive data (blink.ino with serial "on" and "off" :). Now I would like to plot your plot_cls.ino . But this compilation error comes up:
Global variables use 2251 bytes (109%) of dynamic memory, leaving -203 bytes for local variables. Maximum is 2048 bytes.
Not enough memory; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing your footprint.
Compilation error: data section exceeds available space in board}

I'm not good enough to change your sketch. Did you use another Arduino?
Thank you in advance, Bernard

macos qt6.4.2编译提示bluetooth模块找不到

编译错误提示

👎 error: Unknown module(s) in QT: bluetooth

系统信息

MacBook Pro
14英寸,2021年
芯片 Apple M1 Pro
内存 16GB
序列号 Y7YYNC6390
macOS Ventura 13.3.1 (a)

qt信息

Qt Creator 9.0.2
Based on Qt 6.4.2 (Clang 13.0 (Apple), arm64)

Built on Feb 21 2023 02:24:53

From revision 78218cd601

Copyright 2008-2022 The Qt Company Ltd. All rights reserved.

The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.