将 MOS 放大器实验的 CSV、导入脚本、预览图、WaveForms preset 和一键入口打包进同一个 open-box 包,便于日后重新打开复查。
整理实验报告时,最常见的做法是先存几张 WaveForms 截图。
一张 WaveForms 窗口截图能说明“当时看到过什么”,但它很难说明数据从哪里来、通道怎么配、脚本怎么导入、后来能不能复查。如果几周后要回看 MOS 放大器实验,只有几张 PNG,很快就会遇到问题:这是现场采集还是旧 CSV?这个波形对应哪个测量条件?当时的 Wavegen 和 Scope 怎么设置?
更可靠的做法是把这些材料打包为一个 open-box 包。
公开仓库在这里:
https://github.com/GitLaughs/waveforms-lab-toolkitopen-box 包要解决什么
waveforms-lab-toolkit 的核心思路是把 MOS 实验的材料汇总为可以重新打开的 WaveForms 包。
除了 CSV,它还会把这些东西放在一起:
- 已测 CSV 快照。
- WaveForms 导入脚本。
- 离线预览图。
.dwf3work工作区 preset。- 一键打开入口。
- README 里的模式说明和重新实测命令。
打包后,材料里既有结果图,也有能重新打开、检查、继续测量的入口。
不触硬件也能整理证据
关键设计是:这个打包脚本不会启用硬件输出。
它只准备工作区、复制已测 CSV、生成导入脚本、渲染离线图、写入口说明。不会开启电源,不会打开 Wavegen 输出,也不会启动 Scope 采集。
这样能划清边界:整理报告材料和重新测量本来就是两件事。
更合理的分工是:
measurement scripts -> touch hardwareopen-box builder -> package existing evidenceplot scripts -> read files onlylauncher -> 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 一起保留。日后再打开时,至少还能知道这份波形从哪来、该怎么重画、要不要重新测量。
继续读