Skip to content

WaveBench v0.8.0

Latest

Choose a tag to compare

@Scaxlibur Scaxlibur released this 24 Jul 13:32
· 375 commits to master since this release
v0.8.0
4799b12

WaveBench v0.8.0 发布说明

WaveBench v0.8.0 把仪器接入从“主包内固定驱动”扩展为“长期预装基线 + 可选外置发行版”的双层架构,并补齐可执行 Instrument API V2、本地受管插件生命周期、长波形可靠性和现场诊断能力。

主包仍永久预装 RTM2000/RTM2032、DS1104Z/DS1000Z、DG4000/DG4202、DP800 和 DM3000/DM3058 五个仪器族;首次使用不需要额外插件。外置包用于独立升级、特定 transport 或扩展,通过严格白名单接管 canonical ID,短 alias 始终保留在内建实现,卸载后自动回退。

主要变化

可执行仪器插件与本地生命周期

  • 新增 Instrument API V2、统一 descriptor、capability、权限、配置字段和 resource scheme 契约。
  • 新增本地 wheel/source package 检查,以及 plugin install/installed/upgrade/downgrade/remove/recover 受管生命周期。
  • 安装事务带账本、文件摘要、漂移检测、回滚和保守恢复;外置插件只能声明 canonical ID,不能覆盖短 alias。
  • DG4000、DM3000、DP800 和 RTM2000 支持受限 canonical 覆盖;DS1000Z 使用独立外置 canonical ID。
  • 插件仍是可信 Python 扩展,不是安全沙箱;安装器只接受用户明确指定的本地包,不下载插件、不自动获取依赖、不修改仪器配置。

仪器与采集

  • 新增 RIGOL DS1104Z/DS1000Z 四通道示波器支持,包括 BYTE 波形换算、RAW 分块读取、截图、autoscale 和错误队列处理。
  • 多通道示波器采集改为一次 acquisition 后统一读取,避免逐通道重新触发造成时间不一致。
  • 强化长波形读取:安全二进制查询、长度与 telemetry 校验、不可安全重放错误语义,以及调用级长传输超时。
  • RTM2000 可按插件声明优先使用 RsInstrument SocketIO,并保留 RsVisa、VXI-11/pyvisa-py 等显式兼容路径。
  • DM3000/DM3058 增加经校验的 RS-232 transport 配置;外置 DM3000 发行版严格限制为 TCPIP/LAN。
  • 新增 sweep analyzer 公共数据契约,为 query-only 扫频分析仪驱动保留安全、硬件无关的接入面。

Run plan、诊断与报告

  • Run plan 在一次执行中复用仪器 session,减少重复连接和状态漂移。
  • 新增保守的 run plan 模板、参数化模板和 source/scope 离散扫频模板。
  • wavebench doctor 可检查已配置仪器的 resource、IDN 和型号匹配,并在显式网段内只读发现候选设备。
  • 报告新增多点 sweep 摘要;scope capture 支持显式 autoscale 前置步骤和更完整的质量/一致性信息。

TUI

  • Textual TUI 继续作为 wavebench[tui] optional extra。
  • 产品范围冻结在电源、万用表和信号源三个快速控制面板;CLI、run plan 和 Service 仍是核心接口。
  • 修复退出时遗漏关闭信号源 session 的生命周期问题。

兼容性说明

  • Instrument API V2 和受管插件生命周期从 v0.8.0 起正式提供,不属于 v0.7.0。
  • 当前六个外置插件包统一要求 wavebench>=0.8,<0.9;它们不能与 v0.7.0 配套运行,也不自动声明兼容未来 0.9。
  • 五个内建仪器族继续随主包发布,原有短 driver alias 保持可用。

安装

python -m pip install wavebench-0.8.0-py3-none-any.whl

需要终端 TUI 时安装 optional extra:

python -m pip install "wavebench[tui]==0.8.0"

外置仪器插件独立发布;安装前请同时固定 WaveBench 与插件版本,并先运行本地 package check。