最新稳定版

友善串口调试助手 6.6.8

集中查看本次更新,再选择适合你系统的原生版本。

Windows、macOS 和 Linux 已提供 SHA-256 校验

无需账户即可在本地开始使用。Free 没有时间限制;App Store 优惠以应用内显示为准。

版本亮点

6.6.8 有哪些更新

当前版本

以下发布说明适用于三个平台,具体下载信息请在平台选择区查看。

新特性

  • 只有 SPU Free 与 SPU Pro 两档,取消 Pro 试用: 直接下载版从首次启动起即为 SPU Free,不再附带 30 天 Pro 试用;SPU Free 没有时间限制。升级到本版时仍在试用期内的,试用照常持续到安装后第 30 天,之后回到 SPU Free。SPU Pro 来自购买:授权码(个人或企业,按期限)或 Mac App Store 订阅
  • 多端口、桥接与设置同步对 Free 开放: 添加多个连接、端口桥接、打开含多个端口或桥接的工程、账户设置同步都不再需要 SPU Pro。其余 Pro 功能改为额度:SPU Free 每次启动 SPU 有一份免费额度,用完时提示一次(可购买、输入授权码或暂不),重新启动 SPU 即重新计数;接收数据永远不受影响
  • Free 与 Pro(Modbus、文件传输、发送历史): Modbus 构帧每次启动插入与复制合计 5 次;X/YMODEM 每次启动传输 3 次,每个文件不超过 128 KB(发送、接收都算:YMODEM 按文件头的大小直接拒收,XMODEM 超出时中止并把已收部分存为 .partial),握手失败或没有传出数据的不计次数;发送历史每个端口保留最近 10 条、共 1 KB(SPU Pro 为 1,000 条、100 KB),超出的部分转入存档而不是删除,获得 SPU Pro 后自动合并回来,也可导出为文本;序列的「重复」(含直到停止)在 Free 下最多 3 遍
  • 状态栏的 SPU Free 用量: 状态栏的「SPU Free」列出本次启动各项额度用了多少、还剩多少;接收路径上的额度(自动应答、波形、解码、脚本时长)用完时只出现一条合并的非模态提示条,不打断操作。SPU Pro 授权到期前 7 天在状态栏提示,到期后说明一次哪些功能回到了额度
  • 自动应答:让 SPU 扮演设备: 工具 > 自动应答…(或接收区右键)为端口设置规则,收到匹配的数据就自动回复,没有设备也能联调上位机,例如 AT+VER? 回 +VER:1.2.0、Modbus 03 请求回一帧寄存器。匹配支持文本(\r\n、\xHH 转义)、十六进制(?? 任意字节)、通配符与正则,数据分几次到达也能匹配;TCP Server/UDP 下按客户端分别匹配,回复只发给发起请求的一方。回复为文本或十六进制,可追加校验、设延时;回复留空即吞掉这次匹配,端口级「装死」开关照常匹配和计数但不发送,每条规则还可设「每 N 次才回 1 次」、随机丢弃比例和最多匹配次数。编辑器带「试一试」栏,粘贴输入即显示命中哪条、回复什么字节;接收区顶部的角标显示状态,点击打开编辑器。规则随 .spu 保存;文件传输期间不会插入回复
  • Free 与 Pro(自动应答): Free 每个端口启用前 3 条规则,每次启动 SPU 所有端口合计自动回复 10 次,用完后暂停回复、接收照常;SPU Pro 不限
  • 远端串口 → 本地 TCP 服务器: 云菜单或 Live Sync 弹窗里的「远端串口 → 本地 TCP 服务器…」把一个 RFC 2217 客户端或实时中继(Live Relay)端口开成本机的 TCP 服务器,第三方工具和虚拟串口驱动就能使用远端的串口。默认走 RFC 2217 透传:客户端设置的波特率、数据位、校验、停止位、流控以及 DTR/RTS/Break 原样转发到远端串口,远端的答复和 modem 状态线传回客户端;也可选纯 TCP。建议端口从 3000 起,默认允许其他电脑连接(可限制来源地址),同一时间接一个客户端
  • 检查更新: 启动后在后台检查一次是否有新版本,有则在状态栏提示;帮助 > 检查更新… 可随时手动检查。Mac App Store 与 Microsoft Store 版本由商店负责更新,不显示此项
  • 发送框支持转义序列: 设置 > 发送 勾选「转义序列」后,文本发送可用 \r \n \t \0 \e \xHH \\ 等写控制字节,\xHH 是原样的字节、不经发送编码;写错的转义整帧拒发并在状态栏说明原因,不会猜一个字节发出去。默认关闭,随工程与设置同步保存
  • 命令库与命令面板: 常用命令存进命令库、按组做成按钮,放在窗口右侧的命令面板里(工具 > 命令库…、视图 > 命令面板),点一下就发往当前连接,也可以配快捷键(如 Ctrl+1,窗口内任意位置生效)。每条命令可选文本(总是识别 \r \n \xHH 转义)或十六进制(严格解析,写错一个字符会报错,不会悄悄发出 00),行尾(仅文本命令)和校验可以单独设,也可以跟随连接的发送设置;编辑时显示将要发出的字节。命令库属于工程:随 .spu 保存;没有打开工程时保存在本机,文件 > 新建也从这份开始,打开别人的工程不会覆盖它。面板默认隐藏,第一次添加命令后自动打开。命令面板在 Free 里完整可用
  • 序列:发送、等待、检查回复: 在命令库里把「发送命令」「等待」「期望回复」「标签」「重复」排成一条序列,在当前连接上一键运行。期望回复沿用自动应答的文本、十六进制(?? 任意字节)、通配符与正则四种匹配,只看上一次发送之后收到的数据,匹配到的字节会被用掉;超时即判失败,也可以记下失败继续跑完。重复可回到某个标签共运行 N 遍或直到停止。序列在发出第一个字节前整体检查,有问题指出是第几步。运行时接收区上方有进度条和停止按钮,结束后留下「通过/在第 N 步失败及原因/在第 N 步停止」的结论;每个期望步骤的结果也记在接收区里。关闭连接或开始文件传输会停止序列
  • .spucmd 命令文件: 整个命令库可以导出成一个文件交给同事或客户,导入时合并,重名的自动编号
  • 实时波形图: 把设备打印的数值实时画成曲线,适合电机调参、传感器标定和电赛调试(工具 > 波形图,或接收区右键「波形图」)。波形图位于接收区上方,可弹出为独立窗口。支持三种格式:文本(每行一个样本,逗号/空格/制表符分隔,兼容 VOFA+ FireWater 的 prefix:1,2,3 和 Arduino 串口绘图器的 temp:21.5 hum:40,标签自动成为通道名;夹杂的普通日志行会被忽略)、VOFA+ JustFloat(小端 float + 00 00 80 7F 帧尾,丢字节后自动重新同步)、正则表达式(命名捕获组即通道名)。横轴可选样本序号或到达时间;滚轮缩放、拖动平移并暂停、双击回到实时;悬停读出各通道数值。右侧图例同时是统计表:当前值、均值、最小、最大、峰峰值、标准差(按可见范围计算),可勾选隐藏、双击重命名。可导出 CSV(带 BOM,Excel 直接打开中文通道名)与 PNG;A/B 测量游标读出差值与 1/Δt。几万个点也能流畅显示,尖峰不会被抽稀丢掉;波形图关闭时不做任何解析。设置随 .spu 按端口保存
  • 选区导出与会话导出: 在接收区选中一段数据,右键「选区复制为」可得到 C 数组(const uint8_t name[] = {...};,带长度宏或 sizeof 注释和来源注释,可直接编译)、Hex Dump(偏移 + 十六进制 + ASCII)或十六进制字节;「选区另存为…」保存为 .c、.txt 或 .bin,数组名、每行字节数、长度写法可设并记住。导出的是这段显示背后的原始字节,而不是屏幕上的文字:Hex 显示下精确到字节,文本显示下 ASCII/UTF-8 精确,其他编码按整帧导出并在状态栏说明。文件 > 导出会话…(或接收区右键)把焦点端口或全部端口本次会话收发的数据按时间合并导出为 CSV(带 BOM,Excel 直接打开;带公式注入防护)、JSON Lines(供脚本与日后的回放使用)或文本,可选只导出最后一次清空之后的数据。会话记录在收发的源头记下每个字节,不受暂停、显示格式和清空影响,即使忘了开日志也能导出;每个端口保留 2–8 MB、全部端口合计不超过 32 MB。文件 > 导出序列报告… 把焦点端口最近几次序列运行逐步导出为表格或 JSON
  • 诊断包: 帮助 > 导出诊断包… 把排查问题所需的材料打成一个 .zip:应用与系统版本、串口列表、Live Sync 状态、工程(家目录下的路径以 ~ 代替,不含分享名与访客名)、每个端口的设置与收发数据(包含你发送的全部内容)、序列报告、桥接设置与抓包末尾,另附中英双语的 README 和机器可读的清单。按白名单收集:注册码、激活数据、账户、机器码(CID)、MAC 地址、CPU ID、用户名与计算机名永远不会进包,发送历史默认不勾选;不会自动上传,文件交给谁由你决定
  • Free 与 Pro: Free 每次启动 SPU 可运行 3 次序列,每条运行前 5 步(超出时询问是否只跑前 5 步),可以导入并运行 .spucmd;.spucmd 导出与不限次数、不限步数需要 SPU Pro。波形图在 Free 里绘制前 2 个通道、每次启动共 120 秒(用完后停在最后一帧),CSV 导出与测量游标需要 SPU Pro。选区导出与序列报告完全免费;导出会话在 Free 里每个端口导出最近 500 条记录,诊断包在 Free 里每个端口包含最近 256 KB 数据、不限次数,SPU Pro 导出完整的会话记录
  • 协议解码视图: 接收区下方新增可收起的「帧」面板(接收区右键 > 协议解码,或视图 > 协议解码面板),把收发的字节按帧列成表:Modbus RTU/ASCII/TCP 自动拆帧并校验 CRC/LRC,请求与响应自动配对并显示往返时间,功能码、异常码、寄存器与线圈逐项解释,寄存器同时给出 PDU 原始地址和 40001 这类惯用参考号,免去「差一」的心算。RTU 按 CRC 拆帧,不依赖串口时序,USB 转串口与「串口服务器 + RTU over TCP」合包、拆包都能正确分帧;收发双向都解码,TCP Server/UDP 下按客户端分开。选中一行显示字段明细,点字段会在帧的十六进制条里高亮对应字节;右键可转到配对帧、复制十六进制,或在(Hex 显示的)接收区里查找这一帧。面板默认隐藏,隐藏时不做任何解码
  • 自定义帧模板: 工具 > 帧模板…,用「帧头 + 长度字段」「帧头 + 定长」「分隔符」「空闲间隔」描述私有协议的帧,校验可选 SUM8、XOR8、SUM16 或 CRC 计算器里的全部算法(含自定义参数),字段支持 8~64 位有无符号整数、浮点、十六进制、ASCII 与位字段,四种字节序,倍率与偏置、单位、取值标签(如 0=关;1=开),以及「某字节为某值时才显示」的条件字段。模板编辑器自带测试框:粘贴一段十六进制,立即用与运行时相同的解码器看结果。模板随 .spu 保存,没有打开工程时保存在本机
  • 导出与复制: 帧表可导出为 CSV(每帧一行,或每个字段一行,方便做透视表),UTF-8 带 BOM,Excel 双击即可打开;也可以在帧表里选中若干行按 Ctrl+C 复制,直接粘贴到表格里
  • Free 与 Pro(协议解码): Free 每次启动 SPU 可解码 120 秒(全部连接、全部解码器合计;只计解出帧的秒数,同一秒里不论多少帧、多少端口都只算 1 秒,无法识别的字节不计;回放窗口里的解码不计),用完后停止解码、接收区照常;用列表中的第一个模板解码;模板的编辑与测试、复制选中行都不受限。不限解码时长、全部模板与 CSV 导出需要 SPU Pro
  • 会话录制: 文件 > 录制会话… 把窗口里全部端口的收发按时间合并,持续写进一个 .spulog 文件,直到你停止;可选从 SPU 已经保留的本次会话数据开始录(「刚才那一下」也在里面)。写盘每 250 ms 一次,SPU 或电脑意外退出最多丢最后不到一秒,文件照样能打开;默认每 100 MB 换一个新文件并自动衔接。录制期间状态栏显示红色 REC、时长与大小,点一下可停止或打开回放。现场看到异常时按 F9,就在当前时刻打一个书签,不弹任何窗口,回到办公室再命名。录制文件就是会话导出的 JSON Lines 格式,脚本同样能读
  • 会话回放: 文件 > 打开录制… 在独立窗口里按原来的时间间隔重放 .spulog 录制或会话导出的 .jsonl,不需要连接任何端口,回放的数据也绝不会发往端口、触发自动应答或进入桥接。速度可选 0.25x 到 100x 与「最快」,超过 5 秒的空闲默认压缩(可调可关);时间轴显示收发疏密与书签,拖动或 Ctrl+G 跳到任意时刻,「.」「,」逐帧前进后退。多端口并排显示,可切竖排或隐藏端口;每个端口有自己的 Hex/文本、时间戳、编码和查找栏,也能打开实时波形图与协议解码面板,按录制时间重现。Ctrl+Shift+F「在录制中查找」搜整份文件(文本或十六进制,跨分包也能匹配),直接跳到还没播到的问题时刻。书签可命名、加备注、上一个/下一个([ ]),保存回录制文件;培训演示可全屏(F11)并在两个书签之间循环播放。文件 > 回放本次会话 不用先导出就能回放 SPU 已保留的数据;回放窗口里还能把一段时间「导出区间」为 JSON Lines、CSV 或文本,正在录制的文件按 F5 就能读到新写入的部分
  • Free 与 Pro(录制与回放): 录制、打开录制、时间轴、书签与「在录制中查找」完全免费,现场用户不必购买就能录下问题交给你。回放在 Free 里播放每份录制的前 10 分钟(回放本次会话取最近 10 分钟),之后的时间轴画斜线、书签照常可见;SPU Pro 回放整份录制
  • 脚本自动化(Lua): 工具 > 脚本… 打开脚本窗口,用 Lua 5.4 写需要变量、条件、循环、计算或解析二进制回复的流程——只需发送、等待、检查回复的,命令库里的序列不用编程就能做。脚本是普通的顺序代码:sendLine("AT")、expect("OK", 1000)、sleep(500),等待时界面照常响应,死循环也能随时停止。expect 超时即判失败并指出行号,tryExpect/tryExpectAny 超时返回 nil 由脚本自己处理;expectHex(?? 任意字节)、expectRegex(捕获组)、read、readLine 读取回复,string.pack/unpack 拼装与解析二进制帧,checksum/appendChecksum/verifyChecksum 支持 SUM8、XOR8 与 CRC-8/16/32/64 共 50 余种预置算法(含 CRC-16/MODBUS、CCITT-FALSE、XMODEM 与各种 CRC-32),校验可按低字节或高字节在前追加,sendCommand 发送命令库里的命令,onReceive 扮演设备自动回复,onStop 在运行结束(包括被停止)时打印汇总。窗口里有带行号和语法高亮的编辑器、运行端口选择、「检查」语法、输出区(出错的行可点击跳转,常见错误附带中文提示,例如全角标点、!=、elif、未定义的变量;右键可全部复制或另存为文本),以及 AT 指令回归、Modbus RTU 从站、PING/PONG 应答三个示例;脚本可导入导出为 .lua 文件。脚本库随 .spu 工程保存,没有打开工程时保存在本机。运行在沙盒里:不能读写文件、访问网络或启动程序;诊断包不包含脚本。开始、结束与 log() 的内容也记在端口的接收区里;关闭连接、断链或开始文件传输会停止脚本
  • Free 与 Pro(脚本): 编辑、检查、示例、导入导出与随工程保存完全免费。Free 每次启动 SPU 可运行 3 次脚本,每次最长 5 分钟;运行不满 30 秒就失败或被停止的不计次数(每次启动最多这样退还 3 次),语法错误也不计。SPU Pro 不限次数与时长
  • 删除账户: 云 > 删除账户… 在浏览器中打开 alithon.com 的账户删除页面(账户中心也有入口);删除立即生效,授权码继续有效并解除与账户的绑定,订单按法律要求保留
  • 设备名称: 云 > 设备名称… 设置本机在账户、实时终端和实时分享中显示的名称;默认为「系统 · CID 末四位」(如「Windows · 3F9C」),不再使用计算机名

界面改进

  • 深色模式: 视图 > 外观 可选跟随系统、浅色或深色,切换立即生效;提醒卡片、查找高亮、状态栏和自定义的收发文字颜色都随之调整,颜色在深色底上看不清时自动改用可读的颜色
  • 标签页布局: 视图 > 标签页 让每路连接占一个标签页,和原有的分栏布局随时切换,各自保留状态;布局随工程保存
  • 每日一次的 Free 与 Pro 提醒: 原来按启动次数弹出的注册提醒改为每天最多一次,新安装的前 7 天不弹;点提醒里的广告或「3 天内不再提醒」可静音 3 天,当天已出现过额度提示时也不再弹。SPU Pro 不弹
  • 授权码在别处被激活: 同一个授权码在另一台电脑上被激活时,本机保留 SPU Pro,每天首次启动以非模态方式提醒一次
  • cid 冲突提示: 同一个设备标识(CID)下同时运行了两份 SPU(本机开了第二份,或克隆的系统)时,两份会互相抢远程命令,实时终端和实时中继会随机失败;现在每次运行提示一次(信息栏与状态栏,不弹框),命令行 spu 向 stderr 打印一行
  • 实时中继连接更快: 选择器在等待设备上报时固定每 2 秒刷新、约 45 秒后停止并如实提示,已选中的端口在刷新后保留;设备收到命令后立刻恢复 2 秒一次的轮询,open_relay 不再多等一个 30 秒周期
  • 本地 RFC 2217 服务器上报 modem 状态: 本地 RFC 2217 桥接(含 Live Sync 的 RFC 2217 快捷分享)的客户端现在能看到 CTS/DSR/RI/DCD 的变化
  • 隐私与联网功能: 首次启动时询问是否允许软件连接 alithon.com,并列出会发送的内容(设备标识、版本、操作系统、使用计数、SPU Free 额度的使用计数);不允许时软件以 SPU Free 离线正常运行,本机已激活的授权照常有效,登录、在线激活授权、云服务、额度统计上报和状态栏公告在允许前都不联网,检查更新照常可用。可随时在「帮助 > 隐私与联网功能…」中更改,关闭时会停止上报、退出登录并关闭本机的云服务
  • 注册账户需同意条款: 在软件中注册 Alithon 账户时需勾选同意服务条款并已阅读隐私政策
  • 命令行同样需要联网许可: spu login、-S/--share 和 --invite 在未允许联网功能时说明原因并以退出码 5 结束;--accept-privacy 可在命令行中给出许可。本地终端和 -l 不受影响
  • 授权条款: Windows 安装包的授权条款改为中英双语,说明 SPU Free 没有时间限制、联网功能需经同意

修复

  • 实时中继从未真正协商 RFC 2217: 实时中继端口的 RFC 2217 控制字节一直没有发出去,协商 3 秒后退回纯字节模式,因此端口参数、DTR/RTS、Break 和 modem 状态订阅都没有到达设备。现已修复:取消勾选「沿用远端串口的现有配置」时,本端的参数第一次真正作用到远端设备,设备端的 modem 状态线也会上报
  • RFC 2217 服务器确认流控设置时回了旧值: SPU 作为 RFC 2217 服务器时,对「设置流控」的确认用的是端口原来的值,pyserial 因此对每个 SPU 服务器都报 rtscts 被拒;现在设置按请求值确认,查询才回当前值
  • 日志设置里的四个选项此前不起作用: 设置 > 日志 的「追加写入/覆盖写入」「开始记录时询问文件名」「连接后自动开始记录」现已生效:覆盖在每次开始记录时替换一次文件,提示文件名时取消即不开始记录;旧工程按原有行为(追加、不提示、不自动开始)读取
  • 中文界面下 Qt 自带的按钮和菜单仍是英文: 消息框的标准按钮、输入框的右键菜单、文件对话框等现在也显示中文
  • 系统提示行之后的数据沿用了它的颜色: 接收区里一行带颜色的程序提示(如文件传输的 -- … --)之后,没有颜色的数据会一直显示成蓝色,现在恢复为接收区本身的颜色
  • 隐私:上报只保留授权所需: 启动和退出时的上报不再包含用户名、计算机名、MAC 地址、日志文件路径、显示与发送设置和 CPU ID;新生成的设备标识不再含 MAC 信息(已有的设备标识保持不变);实时终端心跳不再发送计算机名;设置同步不再记录设备名;实时分享访客名不再默认取系统用户名
版本归档

历史版本

选择平台,查看历史版本及其发布说明。

6.6.7

文件
SerialPortUtility-v6.6.7.dmg
文件大小
27.1 MB
SHA-256
32059a984648bd315e01b845e308cdc3bc4dab1fd56ef7ff55131da43a28a495

新特性

  • 被限制的设备启动时会被告知原因,而不是悄悄照常运行: 服务器现在可以按设备把一台机器列入限制名单(比如某张授权码在它上面激活后又申请了退款)。列入后,下次启动上报信息时软件会关闭所有端口、弹出「设备受限」说明——服务器给的原因、联系邮箱、服务条款链接——确认后退出。这个判定会缓存在本机:再次启动先向服务器核对一次(最多等 5 秒),只有服务器明确说「未受限」才显示主窗口;核对不通或联网失败一样只弹说明,并提示「若限制已解除,请联网后重新启动」。从未被限制过的机器完全不受影响,服务器不可达时照旧放行。App Store 版不参与此机制

界面改进

  • 注册提示改为说明 Free 与 Pro 的分界: 直装版启动时那个「30 天免费试用」窗口沿用的是共享软件年代的措辞——「试用期满后必须注册或从计算机中删除」,与现在的产品并不相符:试用结束后仍可继续用 Free。窗口现在标题改为「Free 基础版与 SPU Pro」,正文说明直装版首次启动附带 30 天 Pro 试用、之后 Free 仍可用;Free 支持一个连接与本地日志,Pro 解锁多连接、桥接、Modbus 请求构建器、文件传输与设置同步,已保存的工程与日志都会保留;个人版授权绑定账户后登录即激活,企业版按购买席位数激活;Live Sync 在 Free 里也可用、只受云流量额度限制。按钮改为「购买 SPU Pro」与「继续试用」/「继续使用 Free」(按当前状态二选一)。App Store 版的订阅说明同样先说明 Free 基础调试无需订阅。Windows 安装包里的许可文本也改成了同一口径

修复

  • 企业版授权码绑定账户后,同事登录自己的账户就被拒: 授权码一旦绑定账户,此前不分个人版还是企业版,一律只认绑定者的登录——可企业版买的是若干席位,装在好几个人各自登录的机器上,买家很少就是键盘前的那个人。买家一勾绑定,同事输入同一个授权码就得到「此授权码已绑定到另一个账户」,启动时登录自己的账户还会把机器上已激活的企业授权清掉。现在企业版的绑定只表示由谁管理:授权码出现在管理者的仪表盘里、可以从那里释放席位,而同事照常用自己的账户激活席位,退出登录也不释放;只有个人版的授权码才是绑定者独占的。授权窗口里的绑定提示对企业版也改为说明这一点
  • 退款或被停用的授权码在原机器上一直是 Pro: 服务器把一张授权码停用(退款、管理员操作)之后,客户端每次启动只是多弹一个「授权已禁用」的警告框,本机的授权信息一个字节都没动,Pro 功能照用到过期为止。现在收到停用回复会像退出登录释放那样清掉本机授权、切回免费版,只提醒一次,软件继续运行

6.6.6

文件
SerialPortUtility-v6.6.6.dmg
文件大小
27.1 MB
SHA-256
9aee830eb68cd07768be346c79c3299b8d664b7b6e7aa202df40d4ec767dae8f

新特性

  • App Store 版收留官网买的授权码: 在官网购买过永久授权的用户装上 App Store 版后,授权本身是被认可的,却没有任何界面能把授权码输进去——换一台新 Mac 就彻底断了路,只能改装直装版。现在订阅窗口里多了「输入授权码」入口,打开的就是直装版那个授权管理窗口(按 App Store 规则不含购买入口);绑定到 Alithon 账户的授权码更简单——登录即激活、退出登录即释放,与直装版一致;已装有授权码的副本启动时也会像直装版一样向服务器核对续期与禁用状态
  • 开着的串口改参数立即生效: 在快速设置里改波特率、数据位、校验或流控,此前对已打开的串口毫无作用——新值只是存下来等下一次打开,状态栏照旧显示端口实际在跑的参数,屏幕上也没有一个字说明这一点;它是全软件唯一不立即生效的参数路径(切换端口会重开、RFC 2217 客户端下发 SET-BAUDRATE、实时终端改配置也重开)。现在改动就地应用到打开的端口上,而不是关一次再开一次——重开会拉低 DTR、把多数开发板顺手复位一遍,这并不是「改个波特率」想要的。驱动拒绝的值会连同已接受的一起回滚,端口不会跑出一半新一半旧的组合;传输进行中会拒绝改动并说明原因。实时终端与无界面 CLI 下发参数也走这条路:失败时保持端口打开并回滚,不再断开重连

界面改进

  • 停止位也收进快速设置的抽屉里: 连接组默认隐藏的字段此前只有数据位与校验,停止位(几乎总是 1)现在同样默认不占面板,设置对话框里照旧可改;自己配置过该组显示字段的用户不受影响
  • Microsoft Store 版装完桌面上有图标了: Store 版此前只出现在开始菜单里。现在安装即建桌面快捷方式(需要 Windows 10 build 19645 及以上;更早的系统照常安装,只是没有快捷方式)

修复

  • App Store 版帮助菜单里订阅出现了两次: 「订阅 SPU Pro…」与「SPU Pro 订阅…」打开的是同一个订阅窗口,没订阅时两条甚至一字不差。现在只留一项,标签随订阅状态在两种写法间切换
  • App Store 版把老授权叫成订阅: 持有永久授权的用户在两处被告知自己「订阅」了:注册按钮写着「已订阅」,帮助菜单写着「SPU Pro 订阅…」——可他们从没订阅过。现在这两处跟随授权的实际来源写「已授权」与「SPU Pro 授权…」,与关于框里的「SPU Pro(传统授权)」口径一致
  • 切到网络目标时旧串口会话没有停: 把一个开着的串口在行内编辑器里改成网络目标(实时中继、RFC 2217、TCP/UDP),只有串口句柄被关掉,会话状态还停在「运行中」——工具栏的开始一直灰着、停止一直亮着,而新目标根本没有拨号,这个假状态要手动停止再开始才能解开。设置对话框改模式的洞更深一层:旧会话没结束就换上了新模型,旧的传输层整个泄漏,停止再也够不着它。现在两条路都先停掉旧会话再切
  • 暂停放久了吃内存,恢复时又把窗口冻住: 「暂停」把每个到来的字节都塞进暂停缓冲,没有任何上限——忙碌链路上按下暂停放一下午就是一场无限增长的分配;恢复时又把全部积压当一帧回放,一次解码、一次插入,窗口冻住数秒。现在暂停缓冲以显示缓冲大小为上限、丢最旧留最新(恢复后看到的正是最新的内容),Rx 计数改在字节到达时统计、不因丢弃而缩水;恢复按 64 KB 一帧回放、刷新每轮 256 KB 预算,窗口全程保持响应
  • 持续收流时开着查找栏会把界面拖死: 查找栏开着时,每个携带数据的 20 ms 刷新都把整个接收文档重扫一遍——查找、过滤、高亮各来一次,大文档加持续流量能把界面钉死。流量触发的重扫现在合并为每 250 ms 至多一次;键入关键词、F3、选项开关、发送回显、停止、清屏这些用户操作仍然即时刷新
  • 许可证密钥不再写进日志: 校验授权时,原始密钥、它的各种哈希与签名此前会随调试输出一起打到标准错误——在 macOS 上那就是系统日志。这类调试输出现在默认全部关闭,按模块分类、需要排查时才单独开启;许可证路径的这些行则彻底删除。启动时那条字体族缺失的告警连同它背后 70–80 毫秒的字体别名扫描也一并消失

6.6.5

文件
SerialPortUtility-v6.6.5.dmg
文件大小
27.1 MB
SHA-256
fa002a4c1ada0074c2a21b3e614318a69e687658dac56868403f79725563ad65

新特性

  • 许可证绑定账户,登录即激活: 注册码和 Alithon 账户此前互不相识——注册码只认机器码,账户只认设备和订单,于是每换一台机器都得重新去翻交付邮件。现在结账时勾选「将许可证绑定到我的 Alithon 账户」(个人版默认勾选,企业版默认不勾),密钥就记在买家邮箱名下;之后在软件里用该邮箱登录,你所在的那台电脑会自动激活,退出登录时自动释放。已经装好密钥的机器,首次登录时会问一次要不要绑定;「许可证管理」对话框里也有「同时绑定到我的账户」勾选。一个密钥只能绑定一个账户且之后无法更改,因此每个入口都会先说明并要求确认
  • 激活需要登录账户: 「许可证管理」里的激活现在先登录再激活,这样服务端才知道是谁在激活——也正因如此,这里输入的密钥之后才能跟着账户走到下一台机器。已绑定的密钥不再接受旧版本的匿名激活,会提示升级并登录
  • 取消三次转移限制: 个人版密钥此前是一次激活加三次转移、用掉就没了——重装四次 Windows 授权就到头了。现在未绑定的密钥最多可同时用于三台机器,停用其中一台即刻释放名额;绑定到账户的密钥则完全没有设备数限制——它只在主人登录的地方生效
  • 无界面机器也能这样激活: spu login --email you@example.com 登录成功后会自动领取账户名下的许可证并激活本机,--bind-license 可顺带把本机已装的密钥绑定到该账户
  • Live Sync 全版本可用: RFC 2217 服务器、实时终端、实时中继、实时分享——以及「远端串口 (RFC 2217)」端口类型——不再要求 SPU Pro;免费版全部可用,无界面的 spu --invite 也一样。Pro 授权改变的只是每月云流量额度:免费账号每方向 10 MB,Pro 1 GiB,用完后消耗购买的流量包。额度现已真正执行——实时终端或实时中继会话超出额度后以 quota_exceeded 停止,而不是继续跑。没有 Pro 的副本启动时只恢复 RFC 2217 快捷分享这一类桥接链路,其余链路原样保存、等授权到位再恢复
  • 实时分享(Live Share)——把串口分享给没有账号的同事: 实时中继此前要求两台机器登录同一个账号。现在可以为一个已打开的串口签发一张有时限的邀请码:在"云 > 分享串口给访客…"里选有效期(1/4/12/24 小时,默认 12 小时)、可选口令和一句标签,把 XXXX-XXXX-XXXX 或那条链接发给同事,他在自己的软件里选"远端串口 (实时中继)"、在"用邀请码加入"里粘贴即可——不需要注册、不需要订阅、不需要绑定设备,流量记在分享方。它与"实时中继"互不隐含:那个开关管的是你自己名下的其他机器,邀请码管的是拿着这张码的这个人、这个口、这段时间。分享随端口关闭、实时终端关闭、退出登录或程序退出而结束;口令连续错 5 次会烧掉这张码;到期的码不再接受新的加入,但不会切断正在进行的会话
  • 状态栏的 Live Sync 状态: 状态栏的 Live Sync 格子在空闲时只是入口,一旦本机有任何一项在跑,它就把名字让给状态本身:琥珀色的已分享表示门开着还没人进来(RFC 2217 在监听、邀请码已签发、实时终端或实时中继已开启),橙色加粗的使用中表示有人正在驱动你的串口(只有一位时直接写出是谁,如「访客:张三」或「远端操作者」),红色的未在监听表示 RFC 2217 服务器要的 TCP 端口被占用、这条链路其实没在工作——这种情况此前只有一闪而过的一条提示,之后就再无声息。RFC 2217 服务器现在也算在内:此前状态栏只统计云端的分享与中继,本机开着 RFC 2217 服务器、甚至远端客户端正在占用串口时,状态栏都毫无表示。悬停可看四项各自的状态(哪个端口、哪个监听端口、哪位访客、什么时候接入),点击弹出的菜单上半段列出正在跑的每一项并给出对应的管理入口,下半段仍然是那四项开关
  • 无界面机器也能签发: spu -D /dev/ttyUSB0 --invite 直接打印邀请码与链接,--invite-ttl 接受 30m/4h/1d,--invite-passcode-stdin 从管道读口令,Ctrl-C 退出时自动撤销
  • 状态栏一键分享——把本地串口变成 RFC 2217 服务器: 此前要把一个串口暴露为 RFC 2217 服务器得走三个对话框:先占一格网格给 TCP 服务端面板、再开"工具 > 桥接"、再在五页编辑器里逐项核对默认值。现在状态栏多了一个 Live Sync(实时同步)入口,点击后三选一:分享为 RFC 2217 服务器、开关实时终端,或分享给访客(Live Share)。选 RFC 2217 只需回答一个问题——监听哪个 TCP 端口(自动建议空闲值),可选地限定允许连接的地址或网段;其余按安全默认值建链。网络端由桥接内置的监听器承担,不再占用网格里的端口位,也不受 16 个端口上限约束;在"工具 > 桥接"里它显示为 TCP :2217(内置),可以像其他链路一样改监听端口、看流量与状态
  • 浏览器访客——同事不装软件也能看这个口: 签发邀请码时可以定这张码在浏览器里能做什么:不开放、只看、看并发送、看并发送且可改串口参数(默认只看);另一个开关决定它是否还能在桌面端开一条实时中继(默认可以)。链接点开是一个说明页:这是哪台机器的哪个口、主人在不在线、是不是已经有人在上面、要不要口令;填个名字就进去,进去是一个只属于这个口的终端。无界面用 --invite-web 与 --invite-no-relay 指定同样这两件事。分享对话框与管理列表里会标出谁正从浏览器看
  • 一处管完所有访客分享: "云 > 管理访客分享…"列出账户名下每台机器上仍然有效的分享,按机器分组,写明每张码开的是哪个口、谁在上面,只有一个动作:停止。这张列表来自服务器而不是本进程,所以另一间屋子的笔记本上签发的码也在这里,在这里停掉它那边就真的停了。它只要求登录:授权过期的主人依然可以停掉自己开出去的分享;它不签发任何东西

界面改进

  • 统一命名: 状态栏 Live Sync(实时同步)入口下四项平级:RFC 2217 服务器、Live Console(实时终端,原云控制台)、Live Relay(实时中继,原云中继)、Live Share(实时分享,原远程协助)。云菜单里的「云控制台」「允许云中继」、端口列表里的「远端串口 (云中继)」随之改名;功能、设置与账号数据不变
  • 桥接角标可以直接关掉桥接: 接收区上方那条淡蓝色(有客户端接入时琥珀色)的桥接角标,右端新增关闭按钮:默认不显示,点一下角标才出现,再点它就移除这个端口参与的全部桥接链路并在状态栏说明——"注意到这个口被桥接了"和"把桥接拆掉"是两次分开的点击,不会误触。这也是快捷分享的"停止分享"入口
  • 状态栏显示用户名: 状态栏最右边的账户格此前显示登录邮箱,现在显示用户名——那才是账户的名字,也不必把邮箱地址一直摆在别人能看见的地方。点开的账户菜单和无界面的 spu login 一并跟随;「我的账户」对话框里邮箱与用户名照旧都列出。用户名为空的老账户仍回落到邮箱
  • 许可证窗口重做: "许可证管理"里那张二维码去掉了——它编码的正是旁边按钮已经打开的同一个网址,而那个网址在手机上是死路:下单页给回的是扫码付款的图,没人能用扫过来的那台手机再扫它一次;英文界面还会被硬塞一张微信码。腾出来的地方给了购买入口:一条分隔线、"还没有许可证?"和一个蓝色的"购买许可证…"按钮。默认尺寸也从 606×364 改到 820×520(布局本来就要 755×481),数值列跟着面板伸缩,不再为一张没有内容可滚的表格挂一条横向滚动条
  • 购买链接指向 Alithon 自己的下单页: "立即注册"与"许可证管理"里的购买入口此前把非中文用户送到旧的 shareit 商店;现在中文界面走微信支付下单页、其余走 PayPal 下单页
  • 状态栏的消息会自己消失,账户格可以点开: 状态栏最左边那条消息此前写上去就不走了——"设置已同步"会在那儿坐一整场,还被每次定时同步重写一遍;这个格子又排在最前面且宽度为零,每说一句话就把端口状态往右推一次。现在每条消息都带类型(信息、警告、错误,决定颜色)和超时,格子挪到端口与流量之后且不再影响其他格子的位置,放不下就省略、完整内容在悬停提示里。同步结果也归到它该在的地方:定时同步成功不再出声,点开账户格就能看到谁登录着、上次同步是什么时候、最近几条消息,以及账户相关的操作
  • 收发字节数合并为一格: 主窗口与每个端口的状态栏把 Rx 与 Tx 的计数合并显示在一格里

修复

  • 中继错误此前到不了调用方: 服务端的中继错误(端口已被占用、设备未就绪等)与实时终端的错误同形,原来一律被送进设备代理静默丢弃,操作端只能一直等——现在按请求来源分发,失败会立刻显示原因
  • 桥接的串口在无人接入时会失聪: 把一个串口对外提供为 RFC 2217 服务器(或桥接到 TCP 服务端)之后,只要还没有客户端连进来,这个串口就再也收不到东西了——键入照样发得出去,设备的回应却永远不显示,只有拆掉桥接才恢复。设备发来的第一个字节就足以触发:它进入出口队列,而向零个客户端广播写出的是零字节,桥接把这个零读成"传输层拒收",于是留住这一帧并给源端加限流——而限流会让整条读取路径停摆,接收区与桥接抽头都走这条路。现在"开着但没人连"与"写失败"被区分开来:无人接入时该帧计入丢弃,而不是把队列卡死等一个可能永远不来的客户端,链路状态也会写明"运行中,暂无客户端连接"。另外,没有 RTS/CTS 的串口本就无法真正限流,这类限流现在会被拒绝——不读串口并不能让设备慢下来,只会把字节丢在驱动缓冲里
  • 文件传输结束后"发送文件…/接收文件…"一直灰着: 一次传输之后——无论成功、失败还是取消——"连接"菜单里的发送文件与接收文件始终不可用、"取消传输"始终可用,只有重启程序才能恢复。菜单原先只在传输开始时刷新一次,现在跟随每个端口的传输状态与键盘焦点:传输一结束即恢复,某个端口传输中也不会把另一个端口的发送文件一并灰掉
  • 许可证窗口说了假话,也收不下从发票里粘来的密钥: 没装许可证的安装被告知自己持有"个人版"——判断只看了企业版标志,而没有许可证时它本来就是否,从没问过到底有没有许可证;现在写"未激活",并新增一行"状态",直接回答人们打开这个窗口想问的问题:已激活、试用中还剩几天、还是已过期。此前也没有任何办法卸掉一个许可证:卸载按钮的槽函数从 2017 年起就在等一个 .ui 里根本不存在的控件,现在按钮真的有了。密钥输入框则在拒收合法的密钥:长度检查只认 29 位带横杠的写法(而校验本来就先去横杠)、密钥字母表是大写且区分大小写、只裁两端所以邮件客户端带来的换行是致命的——现在统一归一化并回显被接受的写法,两句还会拒绝的提示也改成说清哪里不对(其中一句从来没被 tr() 包住,中文界面会显示英文,还带着拼错的 "licnese")
  • 中继来的按键在主人屏幕上一字一行、还带重影: 实时中继把远端操作者的键入一次一帧地送过来,而每一帧都走了 TX 回显、每个 TX 帧另起一行——于是访客敲的每个字符在主人这边独占一行;遇到会回显的设备(任何交互式控制台)还各出现两次,一句 uptime 读起来是六行叠字。中继写入现在交给"本地回显"这个本来就是为按键准备的开关:默认只显示设备回的内容,与访客自己屏幕上看到的一致;想看访客敲了什么,把本地回显打开即可。端口在别人手里这件事本来就有接管提示在说
  • macOS 上连接设置最底下一行被切掉: Aqua 控件会画到布局给它的格子之外,而堆叠页面被贴着尺寸提示零边距压紧,最底下那行复选框于是丢了字母的下伸部分——在实时中继与 RFC 2217 页面上表现为"沿用远端串口的现有配置"被削掉一截。现在向样式查询这部分外溢并计入页面下边距,没有外溢的样式不受影响
  • 接收设置页的标题被挤成半截: "Tx 时间格式"的标题被压到只剩六分之一行宽、显示成 "Tx Time Forma",两个输入框差了 40 px;自动换行那一行的六个控件想要 740 px 而页面只开 538 px,于是最宽的四个各被裁到 96 px,标题读作 "Auto feed"、"Minimal I"、"Line Mode"。两块都改成网格布局、共用标题列,把页面拉宽或缩到最小都保持完整
  • 账户对话框在等待应答时可以被反复点击(其中一种应答还会崩溃): 登录要往服务器跑一个来回,慢链路上好几秒屏幕上没有任何反应,于是被再点一次,而每一次都是一个新的登录请求。现在按下任一按钮,三个按钮一起置灰,页面写明正在做什么("正在登录…""正在发送验证码…""正在创建账户…"),应答或错误到达时恢复;20 秒看门狗兜住那种谁也收不到的应答。另外,在网络应答的处理函数里直接弹消息框是一次 use-after-free——Qt 还在收尾,而模态框跑的嵌套事件循环会删掉那个已交给 deleteLater 的 reply,关掉消息框时必崩——现在所有由应答触发的消息框都推迟到事件循环的下一轮
  • 状态栏弹出菜单会把状态提示留在栏里: 点开 Live Sync 格子、指针从"实时终端"移到弹出菜单自己的条目上,Qt 把清除提示发给了弹窗——它是一个独立的窗口,主窗口收不到,那句提示就在状态栏里留一整场,端口状态与流量计数一直被它盖住。现在这类提示统一转发到主窗口的状态栏

6.6.4

文件
SerialPortUtility-v6.6.4.dmg
文件大小
27.0 MB
SHA-256
302faf742ec9670f0b2184375ccf65584d2274f25da0b9331de5ecbf2587aeb8

新特性

  • 云中继(Cloud Relay)——使用另一台计算机上的串口: 现场机器在"云 > 允许云中继"打开开关,操作端在端口列表选择"远端串口 (云中继)",从账户下在线的计算机中挑一个串口,按下连接后它就像本地串口一样可用:波特率、数据位、校验、停止位、流控与 DTR/RTS 可远程设置,远端 CTS/DSR/RI/DCD 状态同步显示,X/YMODEM 文件传输与 Modbus 照常工作。两端只需能访问互联网,不需要公网地址、端口映射或 VPN。选择对话框会说明每台机器是否在线、是否允许中继;一个串口同一时刻只接受一个中继会话,串口被远程使用时本机会在状态栏提示;链路断开后不会自动重连,需要手动重新连接。中继流量计入账户的云流量额度
  • 桥接端口被远程使用时会提示: 对外提供 RFC 2217 或 TCP 服务的桥接端口,现在会在客户端接入和离开时给出状态消息,面板徽标显示"正被 <客户端> 使用"并变为琥珀色,远程客户端修改串口参数或控制线也会逐条记录——与云中继遵循同一条原则:被别处驱动的串口必须让人看得出来

界面改进

  • 远端串口显示"远端当前"参数: RFC 2217 与云中继页面勾选"沿用远端串口的现有配置"时,不再显示灰掉的五行本地参数(容易把灰色的"115200"误读成远端实情),改为一行只读的"远端当前",显示远端服务器报告的实际波特率、数据格式、流控及其签名
  • 云菜单分组: "云控制台"总开关与三个"允许…"开关分组显示,云控制台关闭时三个开关一并置灰——它们都经由云控制台通道生效,此前平铺的菜单让人误以为彼此独立

修复

  • 日志被写进名为 NULL 的文件: 日志文件名在首次成功打开前只是一个占位符,而暂停、停止或自动重连打开端口后触发的写入没有识别它,于是在程序工作目录里生成了一个名叫 "NULL" 的文件;现在这些写入会先按配置的文件名模板解析,再写入正确的文件
  • DTR 指示灯变灰后不恢复: 在连接编辑器里选过 RFC 2217 或云中继后切回本地串口,DTR 灯一直保持灰色(意为"未置位"),而 RTS 灯会正常恢复;现在两者一致恢复为绿色
  • RFC 2217 客户端的 DTR/RTS 灯整个连接期间都是灰色: 勾选"沿用远端串口的现有配置"时客户端从不下发 DTR/RTS,服务端也就无从确认,两盏灯始终显示"未询问";现在首次同步时会查询远端的当前电平,RFC 2217 与云中继两种模式下都能看到确认后的状态
  • 云控制台 HTTP 回退路径的命令延迟: 服务端未提供 WebSocket 通道时,排队的命令现在随心跳应答一起下发,最长等待从 30 秒缩短到一次 20 秒心跳;云端快照缺失或过期时也会按服务端提示立即重传,选择中继目标时不必再等一轮快照请求

6.6.3

文件
SerialPortUtility-v6.6.3.dmg
文件大小
26.9 MB
SHA-256
271505abfe5dcd699850075c1f7fdf55fcc7be02dfef3f2faa84c86efc2eca77

新特性

  • 本地回显: 终端直通模式下,敲下的字符会在接收区原位显示,对着不回显的嵌入式设备不再是盲打。它与"显示发送"相互独立——后者显示并记录发送框发出的整帧,本地回显只按输入顺序在接收区显示按键、不写入日志;默认关闭,避免设备自身回显时每个字符出现两遍
  • 指示灯开关: 快捷设置面板新增"指示灯"一项,可隐藏 TX/RX 与控制线指示灯,把空间让给收发区
  • 云控制台实时通道: 云端控制台改用 WebSocket 收发命令与状态,去掉轮询间隔带来的延迟;服务端未提供该通道时自动退回原有的 HTTP 轮询

界面改进

  • 快捷设置栏可以拖得更窄: 此前它的最小宽度被最长的端口名、最长的下拉条目和最宽的标签一起撑到约 300 像素;现在超长的下拉条目在原地省略(展开列表仍显示完整内容),共用标签列也不再无限变宽,这条栏可以拖到实际需要的宽度
  • 设置术语统一: 主窗口与多端口对话框的"选项…"改为"设置…",终端内的连接/接收/发送设置措辞统一,设置面板中的"选项"分组按其实际内容改名为"日志行为"

修复

  • 等宽字体缺失导致的列错位: 收发视图指定的 Monaco 在 macOS 之外并不存在(此前只替换了 Windows 的 Consolas),缺失时会退化成比例字体,HEX 与时间戳列随之错位;现在两种字体缺失时都会替换为系统等宽字体
  • Microsoft Store 版本缺少在线服务: MSIX 打包此前会把账户登录、云同步与云控制台整体编译掉,商店版本因此没有这些功能,现已与直接下载的版本一致

6.6.2

文件
SerialPortUtility-v6.6.2.dmg
文件大小
26.8 MB
SHA-256
5d5ca1e1365c18ddd87ed8e5f838b10828c8e8128feaad98bc129810c45e1290

新特性

  • X/YMODEM 文件传输: 在已建立的串口、TCP 或 RFC 2217 连接上直接收发文件,支持 XMODEM、XMODEM-CRC、XMODEM-1K、YMODEM 与 YMODEM-G。传输期间协议数据与普通终端数据隔离,非模态进度条实时显示文件名、进度、速率、剩余时间与重传次数;TCP 服务端可锁定指定客户端,远程固件升级无需再切换到其他终端工具
  • 单连接 RFC 2217 远程串口: 端口列表新增 RFC 2217 模式,可直接连接 Moxa NPort、ser2net 或另一台 SPU,并在同一连接中设置远端波特率、数据位、校验、停止位、流控和 DTR/RTS。默认保留设备服务器自身配置,只有用户明确接管后才下发参数;不支持 RFC 2217 的对端会给出警告并安全退化
  • RFC 2217 桥接客户端模式: 桥接可主动连接设备服务器,并把链路另一端的串口参数同步到远端串口;协商成功后一次性下发,之后只补发变化项,远端回执会记录在链路消息中但不会反向修改本机串口
  • 远程控制线状态: RFC 2217 连接可显示远端 CTS、DSR、RI 与 DCD 状态,让设备服务器后的串口握手状态也能直接观察

修复

  • RFC 2217 协商: 服务端现在会用 DO 回应客户端的 WILL——此前只对同时发送 DO 的客户端(如 pyserial)有效,只发 WILL 的客户端会一直等到超时并退化成普通 socket
  • RFC 2217 协商不再无限往复: 协商按选项记录状态,只有当回答会改变状态时才回复;此前两台互相对接的 SPU 会无休止地交换 WILL/DO
  • RFC 2217 兼容性: 按客户端与服务端角色分别处理 COM-PORT-OPTION 的拒绝响应,修复与 ser2net 协商后参数无法下发的问题
  • 网络连接终端直通: 修复终端键盘直通仅检查本地串口句柄、导致 TCP、UDP 与 RFC 2217 连接中键盘输入无效的问题
  • 桥接对端事件串台: 设备端出现新对端时不再向网络端发起协商

6.6.0

文件
SerialPortUtility-v6.6.0.dmg
文件大小
38.8 MB
SHA-256
3bb23798605390676cec2562d6008d1ec891e16cb17c83d8d09a4e5914099f95

新特性

  • 连接活动指示灯: 连接组新增可交互的 TX/RX 与控制线指示灯,实时闪烁反映收发与控制线状态;退役旧版控制线界面,改用指示灯呈现
  • 串口控制线: 新增串口控制线处理,设置对话框新增 Control Lines 标签页
  • Modbus 请求构建器: 工具菜单新增 Modbus 请求构建器
  • 逐项快捷设置: 所有分组均支持逐项快捷设置,快捷设置选择器移入设置对话框
  • 行结束符下拉框: 以 Line Ending 下拉框替代发送区的自动换行复选框
  • 恢复上次连接: 启动时自动恢复上次退出时打开的连接
  • 终端光标与真实发送统计: 终端模式新增光标显示,发送计数改为真实统计

界面改进

  • TCP/UDP 模式界面: 静默服务器错误弹窗,优化 TCP/UDP 模式界面
  • 工具栏: 重做日志记录与快捷设置的工具栏控件
  • 多处 UI 对齐与打磨: 统一接收 Auto FL 与发送 Loop 行、对齐 Line Ending 与 Append Checksum 下拉框等

修复与完善

  • 设置默认值: 补齐并保护设置面板中 Log/Display 相关默认值,不再保存空的 Rx/Tx 时间格式
  • .spu 会话加载: 以 toBool 解析 .spu 布尔标记,确保已保存的 true 值在重载后保留
  • 国际化: 中文界面将格式单选项标注为 Text 而非 ASCII
  • 日志目录: 打开日志文件前先创建日志目录