经过 v2.1.0、v2.1.1、v2.1.2、v2.1.5、v2.2.0 共5个版本的迭代(基于v2.0.0),以下是所有新增功能、Bug修复和优化的汇总。
一、新增功能
1. 示波器模式(v2.1.0 起可用,v2.2.0 增强子通道)
| 功能 | 版本 | 说明 |
|---|---|---|
| J-Scope数据格式 | v2.1.0 | 自动识别7种固定格式:int8/uint8/int16/uint16/int32/uint32/float |
| 采集控制 | v2.1.0 | 开始/停止/暂停/恢复采集;设备断开自动停止 |
| 高速模式自动切换 | v2.1.0 | <2000样本/s普通模式,>5000样本/s自动切换高速模式(独立QThread + 30FPS降采样) |
| 硬件时间戳支持 | v2.1.0 | 支持带硬件时间戳的JScope数据包解析和波形显示 |
| 子通道拆分显示 | v2.2.0 | JScope合并buffer模式(如JScope_u4u4)自动拆分为独立子通道,命名格式CH11、CH12 |
2. 烧录固件(v2.2.0)
| 功能 | 说明 |
|---|---|
| 工具栏烧录按钮 | 一键烧录固件到MCU,支持J-Link(pylink)/DAP-Link/ST-Link(pyocd) |
| 固件文件管理 | 配置面板支持多条路径、打开/替换/删除操作 |
| 烧录进度窗口 | 实时日志、成功绿色/失败红色标签、2秒自动关闭 |
| 固件与Map联动 | 固件路径与RTT map文件路径双向联动 |
| 错误提示 | 文件不存在/调试器未配置/格式不支持等弹窗提示 |
3. 主题与界面(v2.1.0)
| 功能 | 说明 |
|---|---|
| 暗色/亮色主题切换 | 支持主题切换,暗色模式下禁用状态显示更清晰(虚线边框+暗色文字) |
4. 国际化 i18n(v2.1.2 起,v2.2.0 增强)
| 功能 | 版本 | 说明 |
|---|---|---|
| 中英文切换 | v2.1.2 | 基础i18n框架支持语言切换 |
| 烧录UI国际化 | v2.2.0 | 烧录UI(工具栏/配置面板/进度窗口)支持语言切换,16个i18n翻译键值 |
| Pack弹窗国际化 | v2.1.5+ | EN/CN按钮逻辑修正、调试器选中色适配、pack列暗色可见性修复 |
5. 其他新增
| 功能 | 版本 | 说明 |
|---|---|---|
| 检查新版本 | v2.1.0 | 自动或引导下载新版本 |
| 自适应轮询策略 | v2.1.5 | 有数据时快速轮询(2ms),空闲时降频(10ms),多通道动态计算 |
| CH0日志UI节流 | v2.1.5 | 50ms定时器批量合并插入,性能提升约7-10倍 |
| 智能滚动跟踪 | v2.1.5 | 滚动条在底部自动跟踪,手动上拉停止跟踪,拖回底部自动恢复 |
| 诊断日志管理 | v2.1.5 | 日志菜单新增"日志管理",可查看/清空3个诊断日志 |
| 按键效果优化 | v2.1.5 | 暗色/亮色模式下按钮增加边框,按压有下沉反馈 |
| Pack直接下载 | v2.1.2 | urllib直接下载.pack文件到runtime/packs/,显示进度和下载链接 |
| cpm_cache本地化 | v2.1.2 | 缓存从%LOCALAPPDATA%改为runtime/cpm_cache/,新电脑无需联网即可搜索Pack |
| pyvenv.cfg自动修复 | v2.1.2 | 启动时自动检测修复无效路径,项目移动后无需手动修改 |
| RTT通道名和缓冲区大小显示 | v2.1.1 | 接收区/发送区GroupBox标题显示通道名和MCU缓冲区大小 |
| 配置持久化完善 | v2.2.0 | config.json启动时生成,缺失字段补全,窗口尺寸/最大化/工具栏位置保存恢复 |
| 环形缓冲区满告警 | v2.1.0 | RingBuffer写满时通过error_occurred信号发出告警(含丢弃字节数和通道号),带防刷屏逻辑 |
二、Bug修复
关键修复
| 修复项 | 版本 | 说明 |
|---|---|---|
| RTT日志行丢失 | v2.1.5 | pyocd后端ch.read(length=1024)硬编码截断,改为无参数调用一次读完所有可用数据;JLink后端默认4096+积压读取循环 |
| 多通道+硬件时间戳波形乱套 | v2.1.1 | 双路分发导致时间戳和值重复,改为batch_received单一路径;JScope包跨RTT读取边界截断,增加残缺包缓冲区 |
| 示波器子通道波形显示 | v2.2.0 | JScope_u4u4等多字段格式只显示1条波形,引入SubChannelSplitter拆分为独立子通道 |
| Pack自动下载失败(打包后致命Bug) | v2.1.2 | subprocess调用venv python因pyvenv.cfg无效路径失败,改为in-process import + urllib直接下载 |
| 无探针时点击连接闪退 | v2.1.1 | JLink DLL原生弹窗在QThread中触发段错误,禁用DLL弹窗+抛明确错误 |
| J-Link断开后重连失败 | v2.1.0 | disconnect未置空wrapper,断开时未强制清理残留资源 |
一般修复
| 修复项 | 版本 | 说明 |
|---|---|---|
| UI接收区滚动条强制拉到底部 | v2.1.5 | 改用QTextCursor直接操作文档插入,仅在底部时自动滚动 |
| 环形缓冲区满警告刷屏 | v2.1.5 | 降级为debug日志,不影响UI显示 |
| 高速模式频率/周期计算错误 | v2.1.1 | 降采样前对原始数据计算频率,各通道频率文本按索引垂直偏移 |
| 硬件时间戳基准跨通道共享错位 | v2.1.1 | 改为每通道独立的_hw_ts_origins[channel]字典 |
| 缓冲数据读取非原子 | v2.1.1 | 截取min(len(ts), len(vals))保证返回长度一致,消除deque竞态窗口 |
| 频率乱闪 | v2.2.0 | 限制最近500样本+每10次flush才重算 |
| UnboundLocalError | v2.2.0 | 提取_resolve_channel_key()辅助方法消除局部导入遮蔽 |
| 快速连接时未配置探针无提示 | v2.1.1 | 立即提示用户去配置页面刷新探针 |
| Pack下载断网误报成功 | v2.1.2 | 下载后验证.pack文件是否实际存在 |
| Pack下载无进度显示 | v2.1.2 | 下载对话框显示链接、文件大小、10%粒度进度 |
| 依赖管理窗口打包后卡顿 | v2.1.2 | Python版本用sys.version_info获取,包版本用importlib.metadata读取 |
| config.json硬编码开发机路径 | v2.1.2 | map_file_path默认值改为null |
| pyocd烧录.srec格式 | v2.2.0 | 自动替换为同名.elf文件 |
| Down buffer信息读取 | v2.1.1 | 发送区显示MCU未配置Down缓冲区提示 |
| RTT CB地址签名验证 | v2.1.1 | auto模式搜索增加验证,避免搜到内存中碰巧含SEGGER RTT字节的错误地址 |
| Worker线程终止 | v2.2.0 | 烧录线程正确终止(abort+wait) |
三、性能优化
| 优化项 | 版本 | 效果 |
|---|---|---|
| 分阶段加载启动 | v2.1.0 | 窗口显示速度从1200ms优化至450ms,首次点击不再白屏 |
| 移除QThread.terminate() | v2.1.0 | 改用协作式退出,避免J-Link DLL状态损坏和USB句柄泄漏 |
| 错误日志修正 | v2.1.0 | J-Link后端不再打印误导性pyocd rtt命令行,改为输出正确的JLinkRTTLogger命令 |
| Pack操作去掉subprocess | v2.1.2 | 搜索0ms(字典搜索),下载用urllib直接下载 |
| 依赖版本读取 | v2.1.2 | importlib.metadata读元数据代替import整个包(快100倍) |
| Signal合并 | v2.1.5 | 同一轮询周期内多次CH0读取合并为1次data_received信号发射 |
四、界面优化(v2.1.0)
-
优化发送区宽度、位置和发送换行提示
-
优化收发计数重置按钮位置
-
优化定制按钮位置
-
优化字体修改后保存
-
优化状态栏连接状态提醒色
五、打包优化
| 优化项 | 版本 | 说明 |
|---|---|---|
| pyqtgraph+numpy打包进exe | v2.1.0 | 示波器开箱即用,无需系统安装 |
| venv移除冗余包 | v2.1.0 | 移除PyQt5(142MB)/pyqtgraph(7MB)/numpy(30MB),减小分发体积约179MB |
| shebang/pyvenv.cfg修复 | v2.1.2 | build.py自动修复venv Scripts的shebang和pyvenv.cfg路径 |
| cpm_cache索引复制 | v2.1.2 | build.py复制index.json到分发目录 |
六、功能演进概览

七、新增配置项汇总
| 配置项 | 默认值 | 版本 | 说明 |
|---|---|---|---|
ring_buffer_size |
65536 | v2.1.5 | 环形缓冲区大小 |
ring_buffer_full_log_level |
DEBUG | v2.1.5 | 缓冲区满警告级别 |
log_level.rtt_system |
INFO | v2.1.5 | rtt_system日志级别 |
log_level.pyocd_diag |
INFO | v2.1.5 | pyocd_diag日志级别 |
log_level.rtt_debug |
INFO | v2.1.5 | rtt_debug日志级别 |
firmware_paths |
\[\] | v2.2.0 | 固件文件路径列表 |
active_firmware_index |
0 | v2.2.0 | 当前激活的固件路径索引 |
pylink_read_size |
4096 | v2.1.5 | JLink后端RTT读取缓冲区大小 |
迅雷下载 GitHub:
https://github.com/cl234583745/RTT-Assistant/releases/download/v2.2.0/RTT-Assistant.v2.2.0.7z
CSDN:
https://download.csdn.net/download/cl234583745/92870951
gitee:
https://gitee.com/292812832/RTT-Assistant/releases/download/v2.2.0/RTT-Assistant v2.2.0.7z.001
https://gitee.com/292812832/RTT-Assistant/releases/download/v2.2.0/RTT-Assistant v2.2.0.7z.002
