{"id":14982551,"url":"https://github.com/wh201906/serialtest","last_synced_at":"2025-05-16T00:07:46.473Z","repository":{"id":37875079,"uuid":"274386713","full_name":"wh201906/SerialTest","owner":"wh201906","description":"Data transceiver(monitor)/realtime plotter/shortcut/file transceiver over serial port/Bluetooth/network on Windows/Linux/Android/macOS | 跨平台串口/蓝牙/网络调试助手，带数据收发/实时绘图/快捷发送/文件收发面板，可在PC和Android设备上使用","archived":false,"fork":false,"pushed_at":"2024-06-17T11:33:30.000Z","size":20099,"stargazers_count":1363,"open_issues_count":19,"forks_count":241,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-14T22:42:37.918Z","etag":null,"topics":["android","bluetooth","bluetooth-le","f-droid","linux","macos","network","plot","qcustomplot","qt","qt5","serial","serial-monitor","serialport","tcp","udp","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wh201906.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.GPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-23T11:21:49.000Z","updated_at":"2025-05-14T04:22:15.000Z","dependencies_parsed_at":"2022-07-15T21:48:31.403Z","dependency_job_id":"c9bf1835-26fa-4fc1-baac-931bb59e23e0","html_url":"https://github.com/wh201906/SerialTest","commit_stats":{"total_commits":285,"total_committers":6,"mean_commits":47.5,"dds":0.03508771929824561,"last_synced_commit":"c6325192574323adce3c56b8c4478cee50a4b208"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh201906%2FSerialTest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh201906%2FSerialTest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh201906%2FSerialTest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wh201906%2FSerialTest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wh201906","download_url":"https://codeload.github.com/wh201906/SerialTest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442855,"owners_count":22071878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","bluetooth","bluetooth-le","f-droid","linux","macos","network","plot","qcustomplot","qt","qt5","serial","serial-monitor","serialport","tcp","udp","windows"],"created_at":"2024-09-24T14:05:38.082Z","updated_at":"2025-05-16T00:07:41.443Z","avatar_url":"https://github.com/wh201906.png","language":"C++","readme":"# SerialTest\n[![downloads](https://img.shields.io/github/downloads/wh201906/SerialTest/total?label=GitHub%20release%20downloads)](https://github.com/wh201906/SerialTest/releases)  [![downloads](https://img.shields.io/sourceforge/dt/serialtest.svg?label=SourceForge%20downloads)](https://sourceforge.net/projects/serialtest/)  [![installs](https://img.shields.io/flathub/downloads/io.github.wh201906.serialtest?label=Flathub%20installs)](https://flathub.org/apps/io.github.wh201906.serialtest)  [![translation](https://hosted.weblate.org/widgets/serialtest/-/svg-badge.svg)](https://hosted.weblate.org/engage/serialtest/)  \n[![Windows CI(MinGW-w64)](https://github.com/wh201906/SerialTest/actions/workflows/build-windows-mingw.yml/badge.svg)](https://github.com/wh201906/SerialTest/actions/workflows/build-windows-mingw.yml)  [![Windows CI(MSVC)](https://github.com/wh201906/SerialTest/actions/workflows/build-windows-msvc.yml/badge.svg)](https://github.com/wh201906/SerialTest/actions/workflows/build-windows-msvc.yml)  [![macOS CI](https://github.com/wh201906/SerialTest/actions/workflows/build-macos.yml/badge.svg)](https://github.com/wh201906/SerialTest/actions/workflows/build-macos.yml)  \nA versatile test tool running on Windows/Linux/macOS/Android.  \nWorks as data transceiver/realtime plotter/shortcut/file transceiver.  \nSupports serial port, Bluetooth SPP client/server, Bluetooth LE client, TCP client/server, UDP.  \n\n[中文介绍](doc/README/README_zh_CN.md)  \n\n[\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\"\n     alt=\"Get it on F-Droid\"\n     height=\"80\"\u003e](https://f-droid.org/packages/priv.wh201906.serialtest/)  \n[\u003cimg src=\"https://flathub.org/assets/badges/flathub-badge-en.png\"\n     alt=\"Download on Flathub\"\n     height=\"60\"\u003e](https://flathub.org/apps/io.github.wh201906.serialtest)  \n\n## Features\n\u003cdetails\u003e\n\u003csummary\u003eCross-platform\u003c/summary\u003e\n\n+ Supports Windows 7 and later\n+ Supports [most Linux distros](https://flathub.org/setup)\n+ Supports macOS 10.13 (High Sierra) and later\n+ Supports Android 5.0 (Lollipop) and later\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSerial port debugger\u003c/summary\u003e\n\n+ Show all available serial ports with parameters. No need to check Device Manager or dmesg  \n+ Set baud rate, data bits, stop bits, parity scheme, flow control and change them on the fly  \n+ Modify DTR/RTS signals, Show CTS, DSR, DCD, RI(RNG)signals  \n+ Save the parameters of the last connection\n+ Save connection parameters by port name or device ID then reuse them quickly\n+ (Android: support hardware serial port only, like `/dev/ttyXXX`)\n+ (Android: [Workaround](https://github.com/wh201906/SerialTest/discussions/11#discussioncomment-5892063) for USB serial devices)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eBluetooth SPP debugger\u003c/summary\u003e\n\n+ Supports commonly used Bluetooth modules(HC-05, HC-06, JDY-34, ...)\n+ Supports communication between PC and smartphone\n+ Supports client mode and server mode\n+ The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.\n+ Supports multiple local Bluetooth adapters (Experimental)\n+ Client: Supports specifying service UUID\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eBluetooth LE debugger\u003c/summary\u003e\n\n+ Show all services(primary and included services), characteristics and descriptors of connected device\n+ Specify different service for Rx/Tx\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTCP\u003c/summary\u003e\n\n+ Supports IPv4/IPv6\n+ Client：Supports spceifying local address and port\n+ Client：The remote address can be a IP address or a website\n+ Client：Supports storing connection parameters with user specified name then reuse them quickly\n+ Server：Supports listening on all NICs or specified NIC\n+ Server：The server can be connected by multiple devices. You can enable/disable the Tx/Rx function of them.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUDP\u003c/summary\u003e\n\n+ Supports IPv4/IPv6\n+ Supports listening on all NICs or specified NIC\n+ Supports storing connection parameters with user specified name then reuse them quickly\n+ Change remote address and port on the fly\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHigh performance\u003c/summary\u003e\n\n+ Fast response：UI update is separated from Data reception. Disable \"Realtime\" option in \"data\" tab for higher speed  \n+ Fast response：Time-consuming works run in dedicated threads\n+ Low memory cost：Received bytes to memory consumption is about 1:1, if the plot and \"Realtime\" option are disabled.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eData panel\u003c/summary\u003e\n\n+ Show data in hexadecimal\n+ Show timestamp of received data\n+ Show packets split by timeout with timestamp\n+ Export raw data or selected text\n+ Add suffix behind each sending(\\r, \\r\\n, string, hex data)\n+ Repeat\n+ Rich encoding support  \n(UTF8/16/32, GB2312/GB18030, BIG5, KOI8-R, Shift_JIS, EUC-KR, [......](https://doc.qt.io/qt-5/qtextcodec.html#details) )\n+ Unescape user input  \n（\\r, \\n, \\t, \\0, \\123, \\xFF, \\uABCD, ...）\n+ Enable/disable echo\n+ Show sended/received data only\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eRealtime plotter\u003c/summary\u003e\n\n+ Human-readable data format\n+ Drag or scroll the canvas by mouse\n+ Drag or scroll the canvas on touchscreen\n+ Showing the latest data or holding on\n+ Show up to 99 graphs\n+ Multiple X-axis mode\n+ Legends with customizable name and color\n+ Show/hide graphs\n+ Clear the canvas by specified data or \"Clear\" button\n+ [Demos of STM32/Arduino/STC8](demo/README.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eControl(shortcut) panel\u003c/summary\u003e\n\n+ Send spedified data by one click\n+ Send a number quickly by slider\n+ Send data in hexadecimal\n+ Unescaping support\n+ Add prefix/suffix\n+ Import/Export the whole panel\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eFile transceiver\u003c/summary\u003e\n\n+ Calculate CRC32 checksum quickly\n+ Send with throttle\n+ Stop receiving after specified number of bytes\n+ CRC32 and file IO are handled in separated threads for better performance\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHandy UI\u003c/summary\u003e\n\n+ Show multiple panels with your preferred layout on a single window\n+ Show panel as separated windows\n+ PC: Stays on top\n+ PC: Opacity\n+ PC: Start multiple instances with different modes, which are shown on the title bar\n+ Check connection parameters and disconnect/reconnect on status bar\n+ Customize font\n+ Select language\n+ Change theme(dark theme)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePortable\u003c/summary\u003e\n\n+ The app generates one single config file only\n+ Never touchs Windows Registry\n+ Use config file in current working directory or system default config directory\n+ Export/Import/Clear config\n+ Clear history \n+ Set maximum history count\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSupports Android\u003c/summary\u003e\n\n+ Small screen support: Force landscape mode\n+ Small screen support: Show sended/received data only\n+ Small screen support: Full screen mode\n+ Drag/Scale gesture support on Plotter\n+ Share text/file to SerialTest then send it\n\n\u003c/details\u003e\n\n## Previews\n| Data Panel | Plotter\u0026Data(GIF) | Control Panel(GIF) | Serial Port, Dark Theme |  \n| --- | --- | --- | --- |  \n| ![win_data](doc/previews/win_data.png) | ![mixed_plotter](doc/previews/mixed_plotter.gif) | ![ctrl](doc/previews/ctrl.gif) | ![dark_serial](doc/previews/dark_serial.png) |  \n\n| Bluetooth, Windows | Serial Port, Android | TCP Client, Linux | TCP Server |  \n| --- | --- | --- | --- |  \n| ![win_bluetooth](doc/previews/win_bluetooth.png) | ![android_serial](doc/previews/android_serial.png) | ![linux_tcp_client](doc/previews/linux_tcp_client.png) | ![tcp_server](doc/previews/tcp_server.png) |  \n\n[more previews](doc/previews/previews.md)  \n\n## Tutorials[WIP]\n[1.Connect](doc/tutorials/connect/connect.md)  \n[2.Send\u0026Receive Data](doc/tutorials/data/data.md)  \n[3.Plot](doc/tutorials/plot/plot_zh_CN.md)  \n\n## Demos\nYou can write programs on MCU according to the demos in the [demo/](https://github.com/wh201906/SerialTest/tree/master/demo) folder  \n[Demo README](demo/README.md)  \n\n## Binaries for Windows, Android and macOS\nYou can download pre-built binaries and Android APK in [release](https://github.com/wh201906/SerialTest/releases) page.  \n\nYou can also download them in SourceForge  \n[![Download SerialTest](https://a.fsdn.com/con/app/sf-download-button)](https://sourceforge.net/projects/serialtest/files/latest/download)  \n\nThe Android app is available on [F-Droid](https://f-droid.org/packages/priv.wh201906.serialtest/) as well.  \n[\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\"\n     alt=\"Get it on F-Droid\"\n     height=\"80\"\u003e](https://f-droid.org/packages/priv.wh201906.serialtest/)  \n\n## Build on Linux\n\n\u003cdetails\u003e\n\u003csummary\u003eSteps\u003c/summary\u003e\n\n### 1. Install depencencies\n```bash\n# sudo add-apt-repository universe\nsudo apt-get update\n# sudo apt-get install git build-essential\nsudo apt-get install qtbase5-dev qt5-qmake libqt5serialport5-dev qtconnectivity5-dev \n```\n### 2. Get the source code\n```bash\ncd ~\ngit clone https://github.com/wh201906/SerialTest.git --depth=1\ncd SerialTest\nmkdir build \u0026\u0026 cd build\n```\n\n### 3. Choose how to import QCustomplot \n#### Use QCustomPlot source file（recommended）  \nYou need to [download](https://www.qcustomplot.com/release/2.1.1/QCustomPlot-source.tar.gz) QCustomPlot archive, extract the qcustomplot.cpp and qcustomplot.h in the /src folder(replace the existing qcustomplot.h), then build.  \n```bash\nwget https://www.qcustomplot.com/release/2.1.1/QCustomPlot-source.tar.gz\ntar -xzf QCustomPlot-source.tar.gz\ncp qcustomplot-source/qcustomplot.* ../src\n```\n\n#### Use QCustomPlot library  \nIf 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.  \n### 4. Build and run\n```bash\nexport QT_SELECT=qt5\nqmake ../src\nmake -j4 \u0026\u0026 make clean\n./SerialTest \n```\n\n\u003c/details\u003e\n\n## Install from the Linux software repository\n\n### Flathub\n```bash\nflatpak install flathub io.github.wh201906.serialtest\n# run this app\nflatpak run io.github.wh201906.serialtest\n```\n\n### Arch Linux\n```bash\n# Install the release\nyay -S serialtest\n\n# Install the development version\nyay -S serialtest-git\n```\n\n## Translation\nThe project uses Weblate to manage translation.  \nIf you'd like to help with the translation, please visit the [Weblate translation page](https://hosted.weblate.org/engage/serialtest/) or create a PR to the `weblate` branch.  \n[![Translation status](https://hosted.weblate.org/widgets/serialtest/-/multi-auto.svg)](https://hosted.weblate.org/engage/serialtest/)  \n\n## Change Log\n[Change Log](CHANGELOG.md)\n\n## License\nThe `src/qcustomplot.h` and the files in `src/qdarkstyle/` are licensed under the same licenses as their respective projects.  \nThe source code in `src/` is licensed under [GPL 3.0](LICENSE.GPL).  \nThe source code in `demo/`(excluding dependencies), translations, documents and other parts of this project are licensed under [MIT](LICENSE.MIT).  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh201906%2Fserialtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwh201906%2Fserialtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh201906%2Fserialtest/lists"}