1441 字
7 分钟
- 次浏览
给实验报告多留一份 WaveForms 工程
读前导览

将 MOS 放大器实验的 CSV、导入脚本、预览图、WaveForms preset 和一键入口打包进同一个 open-box 包,便于日后重新打开复查。

正文
1441 字
阅读
7 分钟
结构
9 节
来源线索
GitLaughs/waveforms-lab-toolkit
waveforms-lab-toolkit:build_waveforms_openbox waveforms-lab-toolkit:save_waveforms_projects waveforms-lab-toolkit:create_waveforms_workspaces

整理实验报告时,最常见的做法是先存几张 WaveForms 截图。

一张 WaveForms 窗口截图能说明“当时看到过什么”,但它很难说明数据从哪里来、通道怎么配、脚本怎么导入、后来能不能复查。如果几周后要回看 MOS 放大器实验,只有几张 PNG,很快就会遇到问题:这是现场采集还是旧 CSV?这个波形对应哪个测量条件?当时的 Wavegen 和 Scope 怎么设置?

更可靠的做法是把这些材料打包为一个 open-box 包。

公开仓库在这里:

https://github.com/GitLaughs/waveforms-lab-toolkit

open-box 包要解决什么#

waveforms-lab-toolkit 的核心思路是把 MOS 实验的材料汇总为可以重新打开的 WaveForms 包。

除了 CSV,它还会把这些东西放在一起:

  • 已测 CSV 快照。
  • WaveForms 导入脚本。
  • 离线预览图。
  • .dwf3work 工作区 preset。
  • 一键打开入口。
  • README 里的模式说明和重新实测命令。

打包后,材料里既有结果图,也有能重新打开、检查、继续测量的入口。

不触硬件也能整理证据#

关键设计是:这个打包脚本不会启用硬件输出。

它只准备工作区、复制已测 CSV、生成导入脚本、渲染离线图、写入口说明。不会开启电源,不会打开 Wavegen 输出,也不会启动 Scope 采集。

这样能划清边界:整理报告材料和重新测量本来就是两件事。

更合理的分工是:

measurement scripts -> touch hardware
open-box builder -> package existing evidence
plot scripts -> read files only
launcher -> open views and presets

分工清楚后,后续维护会简单很多。可以安全地重跑打包脚本来更新预览图和入口文档,而不必担心它意外开启硬件输出。

CSV 要留下来#

截图适合展示,CSV 才适合复查。

如果保留了 CSV,后续可以重新计算峰峰值、均值、增益、时间轴,也可以换一种绘图风格。报告图片画得不好,可以重画;某个统计值有疑问,可以重算;想把同一份数据导入 WaveForms 查看,也有原始数据可用。

这比“截图看起来差不多”可靠得多。

在实验材料里,我会优先保留 CSV,截图和预览图主要用来快速查看。

导入脚本保留观看方式#

有了 CSV 还不够。

同一份 CSV 可以用很多方式看:哪个列是输入,哪个列是输出,横轴是时间还是扫描电压,单位是 V 还是 mA,Scope 的 Ref 通道怎么设置,脚本 plot 怎么画。这些信息如果只靠人记,很快会丢。

WaveForms 导入脚本做的就是把“怎么看这份数据”写下来。

它告诉工具:

  • 哪个 CSV 文件要读。
  • 哪些列对应横轴和纵轴。
  • 是否从时间列推采样率。
  • Scope 里用哪些 Ref 通道展示。
  • Script plot 里怎么画。
  • 需要打印哪些统计信息。

下次打开时,就能顺着脚本回到当时的查看方式。

live preset 和 CSV reference 要分开#

实验包里最好同时有两种模式。

一种是 live preset:用来配置 WaveForms 窗口,帮助重新测量。它可以打开需要的工具面板,设置频率、幅度、偏置、通道和窗口布局,但不该自动开始输出。

另一种是 CSV reference:用来查看已经测过的数据。它导入旧 CSV,生成 Ref 波形和预览图,不触发新的硬件动作。

这两个模式最好分清楚。

如果只是想复查旧数据,就不该冒着重新输出信号的风险。如果要重新实测,就应该明确知道自己打开的是 live preset,并且先确认接线和运行命令。

一键入口是为了少猜路径#

open-box 包里的一键入口,看似是为了方便双击,实际更有用的是统一入口。

如果每个人都自己打开不同的 .dwf3work、手动选择脚本、手动找 CSV,结果很容易不一致。入口脚本可以把模式固定下来:

  • 默认打开全部已测 CSV 总览。
  • 指定某个模式时打开对应 preset。
  • 需要旧数据视图时显式加 CSV reference 选项。
  • 需要复用已有 WaveForms 窗口时再显式选择。

这样能减少路径猜测,也能明确自己打开的是哪套视图。

README 是包的一部分#

实验包里光有脚本名还不够,README 也得把用途写明白。

README 应该写清楚:

  • 每个模式对应什么实验。
  • 每个 WaveForms 工程对应哪个导入脚本。
  • 每个数据文件来自哪类测量。
  • 重新实测应该运行哪个命令。
  • live preset 不会自动开启输出。
  • CSV reference 只看旧数据。

这些说明看似琐碎,但隔几天再回头看,能省下不少猜测文件和脚本关系的时间。

CI 能守住什么#

这种仓库的 CI 没法替你验证真实硬件测量。

它更适合守住基础质量:脚本能否被 Python 解析,离线打包逻辑是否还能加载,路径和入口是否还存在。真实硬件动作仍然留在本地实验环境里,由 dry-run 和显式 --run 控制。

CI 负责确认这个包能构建、能打开;真实电路测得对不对,还是要回到实验室机器上。

截图只是预览#

下次整理实验报告,我会把截图当作预览,把 CSV、导入脚本、preset 和 README 一起保留。日后再打开时,至少还能知道这份波形从哪来、该怎么重画、要不要重新测量。

给实验报告多留一份 WaveForms 工程
https://blog.sunmmyapi.xyz/posts/waveforms-openbox-before-screenshot/
作者
Sun
发布于
2026-05-29
许可协议
CC BY-NC-SA 4.0

继续读

相关内容