Skip to content
newMallocPublic

About

Windows 串口调试助手(C#/WPF/.NET 8):HEX/文本收发、断帧、定时与文件发送、终端模式、日志落盘、自动重连;可发布为单文件绿色版

Topics

Resources

Stars

39 stars

Watchers

3 watching

Forks

Repository files navigation

SeriTerm

CI Release License: MIT

English | 简体中文

Windows 串口调试助手(C# / WPF / .NET),用于接收数据、发送命令与记录日志: 长时运行不卡顿,日志上限 20 万行,断线自动重连,单文件免安装;内置 MCP,AI 可直接读取设备输出。

SeriTerm-intro-1080p-upload.mp4

网页版

下载

从 Releases 下载。两个产物功能相同,均为 win-x64 单文件,无需安装:

产物 运行时 适用场景
SeriTerm-<版本>-win-x64.exe 需 .NET 桌面运行时,缺失时自动安装 常规分发(推荐)
SeriTerm-<版本>-win-x64-full.exe 随 exe 打包,不联网 离线 / 内网分发

功能

v1.2 工作台

  • 左栏固定宽度且不显示滚动条,长设置页支持滚轮与键盘访问;预设、高级连接、日志文件与 AI 设置按组折叠。
  • 黑灰深色背景配蓝色主操作,另有浅色主题和窗口置顶;HEX 显示与跟随最新位于左栏「接收与显示」,日志顶部仅保留一行工具栏。
  • 设备插拔每 2 秒自动检查;设备拔出后保留原端口,避免误切到其他设备。
  • 发送区默认单行,支持多行编辑,Ctrl+Enter 发送、Enter 换行;HEX 错误即时显示,悬停输入框查看有效字节数与实际字节预览。
  • 「更多」展开发送历史、定时、文件发送和终端设置,运行中的停止 / 取消入口始终可见。
  • 最近 30 条成功发送可回填,并恢复 HEX、行尾和编码;回填不会自动发送。发送草稿随配置保存。
  • 收发速率、计数复位、停止本次重连;文件发送有独立取消按钮。
  • 搜索条独占一行,查找和暂停提示不遮挡日志;原始 .bin 日志可从「日志文件」打开,仅查看、不发送。
  • 暂停显示仍记录文件和 MCP 帧;显示缓冲上限 1 万行 / 16 MB,达到上限时提示淘汰数量。

连接

  • 端口列表显示设备友好名(COM5 (USB-SERIAL CH340))
  • 波特率 / 数据位 / 校验 / 停止位 / 流控;配置预设可命名保存并复用
  • 启动时自动打开上次使用的端口;掉线后按指数退避自动重连

接收

  • 文本 / HEX 双模式;UTF-8、GB2312 等多编码,跨数据块解码不产生乱码
  • 断帧方式:空闲间隔 / 分隔符 / 不断帧,可设缓冲区上限;按帧输出,不粘连、不输出半包
  • 日志视图虚拟化,显示上限 20 万行,超出按段淘汰;支持暂停、清空、保存
  • 时间戳、自动换行、字号可调;自动滚动在上翻时暂停,并在底部提示新增行数

发送

  • 文本 / HEX,行尾 CR / LF / CRLF
  • 定时发送;文件分块发送(可取消、带进度)
  • 终端模式:逐键发送,回车 / 退格 / Ctrl+C 透传,本地回显

查找与复制

  • Ctrl+F 实时搜索:命中计数、上下跳转、字符级高亮
  • 关键字收藏位于搜索条下方,可折叠;点击回填搜索框并跳到首个命中
  • 日志按字符选择,支持行内与跨行;Ctrl+C 复制所选内容

日志落盘

  • 文本日志与原始字节日志(可重放回日志区),按大小分卷
  • 后台异步写队列,落盘不阻塞接收

AI 接入(MCP)

  • 内置 MCP 服务端,Claude Desktop / Cursor / VS Code 可直接读取设备输出; 在左栏「AI 接入」点「复制配置」接入
  • serial_wait_for_pattern 阻塞等待指定内容出现(重启后的首行、OK、panic),无需轮询
  • 读取结果为已按断帧设置切分的帧,带到达时间、方向与游标;按游标续读不重复、不遗漏
  • 默认只读:写入类工具不出现在工具清单中;勾选「允许 AI 发送数据(完全权限)」后开放发送,状态栏显示当前档位
  • 写入上限 4096 字节 / 次、速率 3 次/秒,每次发送在日志中留下 [AI] 审计行
  • 仅通过本机命名管道通信(限当前用户),不开放网络端口;详见 AI 接入文档

界面

v1.2.2 固定左栏与单行发送工作台

v1.2.2 WPF 离屏布局预览。深浅主题、小窗口和搜索布局的验证范围见 验证记录。

  • 深 / 浅两套主题,运行中可切换;自绘标题栏;窗口背景模糊(可关闭)
  • 标题栏「关于」或 F1:版本号、提交号、运行时与仓库入口

环境要求

Windows 10 1809 或更高版本(64 位)。完整版无需任何运行时;启动器需要 .NET 桌面运行时(缺失时自动安装)。 从源码构建需要 .NET SDK(目标框架见各项目 csproj)。

构建与测试

dotnet build SeriTerm.sln
dotnet run   --project src/SeriTerm.App
dotnet test  SeriTerm.sln

逻辑、WPF 应用层与布局回归测试由 dotnet test 一次跑完,最新结果见 验证记录。 回环测试需要把 USB-TTL 的 TX 与 RX 短接,默认使用 COM5;换端口不必改源码 ($env:SERITERM_LOOPBACK_PORT = 'COM3')。机器上没有回环硬件时,该组测试自动跳过,不会失败。

MCP 链路跨三个进程(AI 客户端 → --mcp-stdio 桥 → 界面进程)。单测覆盖协议与护栏; 发版前用 pwsh -File tools/mcp-smoke.ps1 -Exe <exe> 做一次端到端验证(用法见 AI 接入文档)。

发布

pwsh -File tools/publish.ps1                     # 启动器(默认,分发用)
pwsh -File tools/publish.ps1 -All                # 启动器 + 自包含完整版
pwsh -File tools/publish.ps1 -SelfContained      # 只出自包含完整版
pwsh -File tools/publish.ps1 -FrameworkDependent # 框架依赖单文件(开发自用)

启动器由 NativeAOT 编译为原生 exe, 自身不含 .NET 运行时,在未安装运行时的机器上也能启动。程序本体(框架依赖单文件)经 Brotli 压缩后内嵌其中, 启动时解包到 %LocalAppData%\SeriTerm\app\<版本>\,升级后自动清理旧版本。

推送 v* 标签后,release.yml 以 -All 构建,并把两个 exe 附到同名 Release。 Release 正文取自 CHANGELOG.md 对应版本一节,缺失时流程报错中止。

配置

  • 设置:%AppData%\SeriTerm\settings.json
  • 诊断日志:%AppData%\SeriTerm\ui-errors.log(仅出错时写入)
  • 便携模式:在程序同目录创建空文件 SeriTerm.portable,设置改存到同目录 data/settings.json,不覆盖原有用户配置。实时日志目录仍在界面单独选择,诊断日志仍在 AppData。
  • 历史记录最多保存 30 条,每条最多 8192 字符;草稿保存上限 65536 字符。

已知边界

  • 「被占用」与「已拔出」无法区分:两者在 Win32 层都是 ERROR_ACCESS_DENIED。仅当端口仍在系统枚举中、 却打不开时提示「被其它程序占用」,其余情况按设备拔出处理。
  • 背景模糊使用桌面壁纸的模糊副本,非实时桌面:窗口只覆盖桌面一部分时,背景中不会出现桌面图标与其它窗口。
  • 查找开启时占用日志上方的高度;收藏默认折叠,小窗口可关闭查找以恢复更多日志空间。
  • 窗口较矮时左侧设置栏需滚动;「打开串口」始终位于首屏。
  • MCP 依赖界面进程:读取数据时 SeriTerm 需保持运行,退出后工具返回 [not_connected]。 「复制配置」给出的是当前运行 exe 的路径,升级后路径变化,需重新复制。
  • 单文件版本首次启动需解压到临时目录,启动略慢于常规发布。

许可

MIT

设计取舍、验证数字与开发脚本说明见 开发规格与里程碑 与 验证记录;AI 接入(MCP)的用法与工具清单见 docs/mcp.md。

About

Windows 串口调试助手(C#/WPF/.NET 8):HEX/文本收发、断帧、定时与文件发送、终端模式、日志落盘、自动重连;可发布为单文件绿色版

Topics

Resources

Stars

39 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages