NetDebugX — Qt 原生重构

本机网络与串口调试台。从 Electron 重写为 Qt 三层壳(NetDebugX.exe → NetDebugXUI.dll → NetDebugXCore.dll),Core 零 Qt、纯 C ABI v8,支持 TCP/UDP/组播/串口、HTTP 客户与本机服务端、WebSocket 与数据模板。

本机 网络 / 串口 调试台。从 Electron 重写为 Qt 三层壳(NetDebugX.exe → NetDebugXUI.dll → NetDebugXCore.dll),Core 零 Qt、纯 C ABI v8。Electron 首发见 《功能介绍(Electron)》


一、软件概览

NetDebugX 面向嵌入式、IoT 与协议联调:建会话、连上设备、收发观察、套模板、留日志,一条链路在本机做完。会话、模板与日志只写 netdebugx.db,不上传云端。

Qt 版产品边界比 Electron 首发更完整:

首版不做通用 MQTT 客户端、抓包 / 协议逆向、云同步与账号体系。仅 Windows 桌面。

NetDebugX 主页

主页:八个模块入口,最近会话一键回填


二、主要功能

2.1 主页与侧栏

无边框窗口。侧栏默认收起为图标轨,悬停展开中文标签。底栏显示当前页与版本。

区域 说明
标题栏 品名、深浅色切换、最小 / 最大 / 关闭
侧栏 主页、网络四协议、扩展(串口 / HTTP / WebSocket)、模板、设置 / 帮助 / 关于
主页卡片 点卡片进入对应模块
最近会话 模块、名称、目标、时间;点一行回填参数

2.2 流式工作台(TCP / UDP / 组播 / 串口)

这四个模块共用同一套工作台:左侧连参数与快捷指令,右侧日志 + 发送框。

TCP 客户端

TCP 客户端:远端 IP/端口、快捷指令、ASCII/HEX 日志与变量宏发送

共同能力:

各协议差异:

模块 连上之后
TCP 客户端 填服务器 IP/端口,可绑定本机端口、超时、KeepAlive
TCP 服务端 本机监听,客户端列表,点对点或广播,可自动回复
UDP 绑定占端口可收,或仅发不占固定端口
组播 加入 224/239 段,管理多个组地址
串口 COM、波特率、数据位 / 停止位 / 校验,快捷 AT 指令

TCP 服务端

TCP 服务端:监听地址、已连接客户端、广播发送

串口

串口:COM 参数与 AT 快捷指令,日志与网络模块同一套

2.3 HTTP 客户端与本机服务端

同一页顶部 客户端 | 服务端 分段切换。切换只翻已有页面,不再拆掉重建。

HTTP 客户端

客户端:方法、URL、头与体;左侧历史带状态码与耗时

客户端发出真实请求(Core 走 sdtech_http_client / libcurl)。结果用消息对话框提示,不用右上角 toast。

HTTP 本机服务端

服务端:地址/端口、路由列表、模拟应答、接入记录

服务端能力:

2.4 WebSocket

独立页,Core 用 prebuilt libwebsockets 走真通道(ABI 仍为 v8)。

WebSocket

ws:// / wss://、快捷 JSON 指令、与流式页相同的日志和发送框

2.5 数据模板

左侧模板列表(筛选、导入、导出),中间编辑名称 / 格式 / 正文,右侧实时预览。点宏按钮插入 {TIME} {DATE} {TIMESTAMP} {SEQ} {LEN} {RANDOM:n} {CRC16:modbus} {CHECKSUM}。Modbus 模板可在预览里看到 Core 算出的 CRC。

数据模板

HEX 模板正文带 {CRC16:modbus},右侧预览已展开为真实字节

流式页发送区的「模板」按钮从这里取条目插入。

2.6 设置、帮助、关于


三、使用流程示例

示例 1:连设备发 Modbus

  1. 主页点「TCP 客户端」,或从最近会话回填
  2. 填设备 IP 与端口(如 192.168.1.100:502),连接
  3. 发送区切 HEX,插入模板「Modbus 读保持寄存器」,或手写 01 03 00 00 00 0A {CRC16:modbus}
  4. 日志里看 TX / RX

示例 2:HTTP 本机对打

  1. 打开 HTTP → 服务端,确认路由(如 GET /api/status
  2. 点「启动监听」,对话框确认 http://127.0.0.1:18080
  3. 「在客户端打开」或手改 URL 为 http://127.0.0.1:18080/api/status
  4. 发送;服务端「接入记录」出现一笔,客户端看到模拟 JSON

示例 3:串口 AT

  1. 打开串口,选 COM 与 115200
  2. 打开串口后,快捷指令发 AT / AT+GMR
  3. 需要组包时从模板插入,或直接写宏

四、从 Electron 到 Qt

维度 Electron 首发 Qt 重构
UI Chromium + 前端 Qt Widgets + QSS,ProtoType/ 先行
运行时 单一包 + Koffi 调 DLL 壳只 QLibrary 加载 Ui,Ui 不链 Core 导入库
协议 TCP / UDP / 组播 加上串口、HTTP 客户/本机服务端、WebSocket
提示 多为 toast HTTP 等改为消息对话框(与设置页同一套)
数据 本机存储 仍是本机 netdebugx.db,明确不做云同步
首发平台 宣称跨平台 仅 Windows 桌面

产品叙事从「Electron 网络助手」收到「本机调试台,通道在零 Qt 的 Core 里」。


五、工程架构

NetDebugX.exe  →  NetDebugXUI.dll  →  NetDebugXCore.dll
   (loader)         (Host run)           (零 Qt / C ABI v8)
        └──────── →  Upgrade.dll(仅壳加载)

三条硬边界:

  1. 不链接任何插件导入库,只认中性 Host ABI(sdtech_qt_ui_host_run
  2. Ui 只做窗口、页面与主题;经 CoreClient 调 Core
  3. Core 禁止 Qt;sqlite、套接字、HTTP 客户端、WebSocket、串口都在这里

Ui ↔ Core 是 C 函数表:create / destroy / kv_* / session_open / session_close / session_send / 事件回调 / http_request。会话用 protocol 字符串区分,例如 tcp-clienthttp-serverwebsocket

HTTP 本机服务端:session_open(..., "http-server", {host, port, routes}),热更新路由走 session_send;事件 listening / request / error / disconnected。实现是 Winsock HTTP/1.1,不升 ABI(仍为 v8)。

落盘大致是:

位置 内容
netdebugx.db Core 内 KV(偏好、最近会话、模板)
Function/prebuilt Qt 依赖以外的本树预编译库

依赖只认本树 Function/prebuilt。CMake 不写工作目录外盘符,不在本树编 SDK、不跑 vcpkg。


六、技术栈与构建

说明
语言 C++20
UI Qt 6 Widgets(sdtech::ui / Temple UiKit)
构建 CMake 3.21+,MSVC 2022 x64,源码树内生成 Function/NetDebugX.sln
Core sqlite3、sdtech_net、libcurl、libwebsockets、Winsock
测试 GTest(Core)+ Qt Test(页面 offscreen)

Function 目录配置并编译,产出在 Function/bin/。链 DLL 前若 NetDebugX.exe 仍在跑,先结束进程,否则 MSVC 会 LNK1168。


七、下载

版本 说明 下载链接
绿色版 解压即用 待补充
安装版 一键安装 待补充
源码包 Qt 工程源码 待补充

解压密码:1150。此处不放 Electron 旧包。


八、系统要求


九、结语

NetDebugX 适合板端协议联调、本机模拟一个 HTTP 服务给客户端对打、以及串口 AT / Modbus 收发。Qt 版把原型主路径做成可测的原生界面,并把通道关在零 Qt 的 Core 里。若有功能建议,欢迎反馈。

Electron 首发说明仍见 《功能介绍(Electron)》