Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
8a746fb
rf-source: add M0 public contracts
Scaxlibur Aug 26, 2026
6fa9c48
rf-source: add M0 readonly service
Scaxlibur Aug 26, 2026
f3ae6d7
rf-source: expose M0 readonly CLI and doctor
Scaxlibur Aug 26, 2026
55474be
rf-source: add M0 run status
Scaxlibur Aug 26, 2026
e8ff1be
release: reserve 0.8.25 for rf-source M0
Scaxlibur Aug 26, 2026
cf53e14
rf-source: validate plugin dependency intervals
Scaxlibur Aug 26, 2026
11ed85b
docs: document RF source M0 boundaries
Scaxlibur Aug 26, 2026
4197ebf
docs: define RF snapshot evidence gate
Scaxlibur Aug 26, 2026
eb65f27
docs: require complete RF A1 evidence metadata
Scaxlibur Aug 26, 2026
27ec272
docs: record DSG830 A1 snapshot promotion
Scaxlibur Aug 26, 2026
bd9472f
rf-source: add offline CW contract
Scaxlibur Aug 26, 2026
efaf12a
rf-source: add offline CW CLI
Scaxlibur Aug 26, 2026
7a4bcb6
rf-source: wire offline CW run steps
Scaxlibur Aug 26, 2026
ace29db
rf-source: add guarded offline output transaction
Scaxlibur Aug 26, 2026
633e149
rf-source: route offline output through CLI and run
Scaxlibur Aug 26, 2026
0a519f9
docs: clarify RF source offline milestones
Scaxlibur Aug 26, 2026
2e8df11
docs: mark RF output offline milestone complete
Scaxlibur Aug 26, 2026
2901976
docs: record DSG830 A2 output promotion
Scaxlibur Aug 26, 2026
57def04
docs: prepare DSG830 A3 CW evidence
Scaxlibur Aug 26, 2026
37c971a
docs: record DSG830 A3 CW promotion
Scaxlibur Aug 26, 2026
84d969c
feat: add RF modulation M3 contracts
Scaxlibur Aug 26, 2026
0e57486
feat: add RF modulation M3 transaction
Scaxlibur Aug 26, 2026
c90ed15
feat: add RF modulation M3 CLI and run support
Scaxlibur Aug 26, 2026
c406e74
docs: clarify RF source M3 boundaries
Scaxlibur Aug 26, 2026
7991243
fix: support inactive FM PM selection switching
Scaxlibur Aug 26, 2026
8eeec0f
fix: separate RF modulation state preflight
Scaxlibur Aug 26, 2026
ab4de10
feat: add RF modulation disable transaction
Scaxlibur Aug 26, 2026
775bb41
docs: organize RF source documentation
Scaxlibur Aug 26, 2026
cc206c9
test: cover RF modulation disable capability
Scaxlibur Aug 26, 2026
db74fab
docs: record RF modulation validation status
Scaxlibur Aug 26, 2026
a753410
docs: describe RF profile diagnostic boundary
Scaxlibur Aug 26, 2026
ee790dc
feat: add RF pulse configuration contract
Scaxlibur Aug 26, 2026
8210299
feat: expose safe RF pulse configuration controls
Scaxlibur Aug 26, 2026
acb201c
docs: describe controlled RF pulse validation boundary
Scaxlibur Aug 26, 2026
f7f4722
docs: record verified DSG830 pulse capability
Scaxlibur Aug 26, 2026
d3481d8
feat: add RF step sweep configuration contract
Scaxlibur Aug 26, 2026
8ec1733
feat: add safe RF step sweep configuration service
Scaxlibur Aug 26, 2026
93bc594
test: cover RF step sweep capability mapping
Scaxlibur Aug 26, 2026
e04ed60
feat: expose safe RF step sweep configuration
Scaxlibur Aug 26, 2026
ee84148
docs: record RF step sweep offline boundary
Scaxlibur Aug 26, 2026
fafd937
docs: describe RF step sweep evidence boundary
Scaxlibur Aug 26, 2026
54bcd53
docs: promote DSG830 step sweep boundary
Scaxlibur Aug 26, 2026
5fc0e19
feat: retain RF modulation postcondition evidence
Scaxlibur Aug 26, 2026
da47642
docs: clarify RF modulation production boundary
Scaxlibur Aug 26, 2026
ab540b9
docs: define RF trigger entry conditions
Scaxlibur Aug 26, 2026
89fba16
feat: define read-only RF trigger snapshot contract
Scaxlibur Aug 26, 2026
9a19bfa
feat: add read-only RF trigger status path
Scaxlibur Aug 26, 2026
802b632
docs: define A5 read-only trigger boundary
Scaxlibur Aug 26, 2026
771b64c
docs: record A5 diagnostic harness boundary
Scaxlibur Aug 26, 2026
7e2f9be
docs: record A5 zero-write diagnostic result
Scaxlibur Aug 26, 2026
f9c46e2
feat: define modulated RF output capability contract
Scaxlibur Aug 26, 2026
6d8d0af
feat: add guarded modulated RF output transaction
Scaxlibur Aug 27, 2026
3ee2697
feat: expose profile-bound modulated RF output flow
Scaxlibur Aug 27, 2026
964b959
docs: document bounded modulated RF output
Scaxlibur Aug 27, 2026
188292d
feat: expose RF modulation disable cleanup
Scaxlibur Aug 27, 2026
48b9550
test: cover modulated output driver contract
Scaxlibur Aug 27, 2026
c99bf3c
docs: record DSG830 modulated output promotion
Scaxlibur Aug 27, 2026
c978feb
docs: describe A5 zero-write baseline review
Scaxlibur Aug 27, 2026
877645d
feat: add guarded RF pulse output contract
Scaxlibur Aug 27, 2026
3bbb696
docs: document bounded RF pulse output
Scaxlibur Aug 27, 2026
03cc940
docs: record DSG830 FM PM output profiles
Scaxlibur Aug 27, 2026
9635ba1
test: remove trailing whitespace from RF pulse service test
Scaxlibur Aug 27, 2026
c62c26a
test: avoid payload assertion collision with temp paths
Scaxlibur Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

WaveBench 是一个用 Python 编写的实验室自动测量台,面向电子设计竞赛调试和日常实验。它把仪器控制、实验步骤和采集证据放在同一条命令链中,支持先离线检查 plan,再决定是否连接硬件。

当前仓库开发线为 `0.8.24`,最新稳定 tag 为 `v0.8.0`。不同版本的命令和能力可能不同,以对应 tag 中的文档为准。
当前仓库开发线为 `0.8.25`,最新稳定 tag 为 `v0.8.0`。不同版本的命令和能力可能不同,以对应 tag 中的文档为准。

## 🌟 特别鸣谢

Expand Down Expand Up @@ -114,12 +114,22 @@ wavebench tui --fake
| 信号源 | RIGOL DG4000/DG4202 | 基本波形、频率控制、扫频和任意波上传 | 主包能力 |
| 电源 | RIGOL DP800 | 状态、保护、设定值和输出控制 | 主包能力 |
| 万用表 | RIGOL DM3000/DM3058 | 常用读数、功能和部分量程/触发状态 | 主包能力 |
| run plan | source、power、scope、dmm、sleep、频响步骤 | 多仪器编排、质量检查和恢复 | 主入口 |
| run plan | source、rf_source、power、scope、dmm、sleep、频响步骤 | 多仪器编排、质量检查和恢复 | 主入口 |
| TUI | 电源、万用表、信号源面板 | 人工查看和少量控制 | 实验性 |
| 插件 | `wavebench.instruments` 外部 driver | 添加或替换特定仪器实现 | 可选 |

详细的能力边界和参数见 [文档总览](docs/README.md)、[项目文档分类](docs/project/README.md) 及 `docs/project/reference/` 下的参考页。

## RF 信号源

`rf_source` 是独立于普通 `source` 的仪器领域。DSG830 当前已开放只读状态、RF OFF 时的单字段 CW 配置、RF-OFF 内部正弦 AM/FM/PM 配置及按模式关闭、具有完整 safety 配置的 `rf_out` ON/OFF、RF-OFF internal/single Pulse 配置,以及 RF-OFF 的 frequency-only Step Sweep 配置。PM 的 production profile 限于 `1.25 rad`。A4-MO 已将受限 `rf_source.modulated_output_enable` 提升到 production:仅接受已激活且精确匹配的 AM `50 %`/`1 kHz`、FM `20 kHz`/`1 kHz`、PM `1.25 rad`/`1 kHz` profile,最大功率均为 `-50 dBm`;普通 `rf_source.output` 仍要求调制关闭。FM/PM 的 WaveBench CH2 分析只记录波形质量,不计量频偏或相偏。Step Sweep 固定为 `STEP`/`FWD`/`RAMP`/`LIN`,配置后保持 Sweep disabled。

已完成的 A5 只覆盖一条后面板物理路径:DSG830 的「PULSE IN/OUT」按 output 方向、固定 internal/single/normal/`1 ms`/`100 μs` profile,提供 `rf_source.pulse_output` 与 `wavebench rf-source pulse-output`。它不启用 RF 输出,也不定义 Pulse input、`TRIGGER IN`、Sweep fire、sync/reference、Level Sweep 或 list。A5-0 仍仅是逻辑 Pulse/Sweep trigger configuration 的零写读取合同,DSG830 production descriptor 不声明 `rf_source.trigger_snapshot`。

- 日常配置与操作:[RF 信号源使用指南](docs/project/guides/WaveBench_RF信号源使用指南.md)
- 模型、安全语义和 capability 边界:[RF 信号源领域设计](docs/project/design/WaveBench_RF信号源设计.md)
- Core/插件的同步计划和证据状态:[RF 信号源开发里程碑](docs/project/design/WaveBench_RF信号源开发里程碑.md)

## 三条常用路径

### source → scope 完整流程
Expand Down
6 changes: 5 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[English](README_EN.md) · 中文

WaveBench 是一个用 Python 编写的实验室自动测量台,提供 CLI、实验性 TUI、显式 run plan、采集包和离线报告。当前开发线为 `0.8.24`,最新稳定 tag 为 `v0.8.0`。版本变化见 [更新日志](../CHANGELOG.md);旧版本原始文档可切换到对应 Git tag 查看。
WaveBench 是一个用 Python 编写的实验室自动测量台,提供 CLI、实验性 TUI、显式 run plan、采集包和离线报告。当前开发线为 `0.8.25`,最新稳定 tag 为 `v0.8.0`。版本变化见 [更新日志](../CHANGELOG.md);旧版本原始文档可切换到对应 Git tag 查看。

> [!WARNING]
> 部分命令会连接并控制真实仪器。示例会区分离线检查、连接读取和硬件写入;执行写入前,应确认接线和限制值。
Expand All @@ -26,6 +26,10 @@ wavebench run check --plan /tmp/wavebench-demo.toml
- [配置文件格式](project/reference/WaveBench_配置文件格式.md):TOML 查找顺序、字段和安全限制。
- 仪器型号命令和编程手册由 [仪器插件仓库](https://github.com/Scaxlibur/wavebench-instrument-plugins) 维护;本仓库只记录 WaveBench 的接入边界。

### 使用 RF 信号源

`rf_source` 不复用普通 `source` 的 Vpp、offset 或数字 channel 模型。先从 [RF 信号源使用指南](project/guides/WaveBench_RF信号源使用指南.md) 确认当前 production capability 和端接声明;DSG830 已开放固定 profile 的调制输出,以及唯一受验证的后面板 `pulse_in_out` output 路径。后者不代表 Pulse input、`TRIGGER IN` 或同步能力。需要实现新型号或查看证据门时,再阅读 [领域设计](project/design/WaveBench_RF信号源设计.md) 与 [开发里程碑](project/design/WaveBench_RF信号源开发里程碑.md)。

### 执行实验

- [run plan 使用指南](project/guides/WaveBench_run_plan_使用指南.md):模板、`run check`、`run verify`、执行、恢复和报告。
Expand Down
3 changes: 2 additions & 1 deletion docs/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[中文文档](README.md) · English

WaveBench is a Python measurement bench for laboratory debugging. It combines explicit instrument commands, run plans, capture packages, and offline reports. It requires Python 3.11 or newer. The current development line is `0.8.24`; the latest stable tag is `v0.8.0`.
WaveBench is a Python measurement bench for laboratory debugging. It combines explicit instrument commands, run plans, capture packages, and offline reports. It requires Python 3.11 or newer. The current development line is `0.8.25`; the latest stable tag is `v0.8.0`.

> [!WARNING]
> Some commands connect to and change real instruments. Check wiring, input impedance, output state, and voltage/current limits before running a hardware action.
Expand Down Expand Up @@ -59,6 +59,7 @@ For the terminal UI, install `.[tui]` and run `wavebench tui --fake`. The fake m
- Install or develop plugins: [plugin user guide](project/guides/WaveBench_可安装仪器插件.md) and [plugin development guide](project/contributing/WaveBench_插件开发指南.md)
- TUI and read-only HTTP MCP: [TUI](project/guides/WaveBench_TUI终端控制面板.md) and [HTTP MCP](project/guides/WaveBench_HTTP_MCP_只读接口.md)
- Example plans and their hardware boundaries: [plans README](../plans/README.md)
- RF-source domain and milestones: [guide](project/guides/WaveBench_RF信号源使用指南.md), [design](project/design/WaveBench_RF信号源设计.md), and [milestones](project/design/WaveBench_RF信号源开发里程碑.md). Core provides M0–M4 and one bounded A5 Pulse Output contract; DSG830 A1/A2/A3/A4/A4-MO/A5 evidence permits production identity, snapshot, OFF-only `rf_source.cw_configure`, RF-OFF internal-sine `rf_source.modulation_configure`, `rf_source.modulation_disable`, safety-gated `rf_source.output` ON/OFF, fixed-profile modulated output, internal/single Pulse configuration, `rf_source.pulse_output`, and frequency-only Step Sweep configuration that remains disabled. A5 covers only the declared `pulse_in_out` output route, not Pulse input, `TRIGGER IN`, trigger, sync, or Sweep execution. PM is limited to the verified `1.25 rad` production profile.

Most detailed pages are currently maintained in Chinese. Commands, identifiers, and schemas should match across languages.

Expand Down
12 changes: 12 additions & 0 deletions docs/project/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@

`docs/project/` 按文档用途分组。当前重点是让入口、参考资料和设计说明各自承担单一职责;文件名暂时保留原样,ASCII 文件名迁移另行处理。

## RF 信号源

`rf_source` 是与普通 `source` 平行的仪器领域:它使用 `port_id`、dBm、RF 输出、端接与 protection 状态,不能套用普通信号源的 Vpp、offset 或 channel 语义。

| 阅读目的 | 入口 |
| --- | --- |
| 配置仪器、声明端接和执行已开放操作 | [使用指南](guides/WaveBench_RF信号源使用指南.md) |
| 理解模型、事务与安全边界 | [领域设计](design/WaveBench_RF信号源设计.md) |
| 开发 Core/DSG830 或复核 capability 提升依据 | [开发里程碑](design/WaveBench_RF信号源开发里程碑.md) |

DSG830 当前 production 范围包括只读状态、RF-OFF CW、RF-OFF 内部正弦调制、受 safety 限制的 RF ON/OFF、保持 disabled 的 internal/single Pulse 和 fixed Step Sweep 配置。调制配置不授权调制开启时的 RF 输出;`rf_source.modulation_disable`、trigger、Sweep execute/fire、Level Sweep 与 list 仍不在 production 范围内。PM 的 production profile 仅为已验证的 `1.25 rad`。

## guides:使用指南

- [CLI 形态](guides/WaveBench_CLI形态.md)
Expand Down
Loading
Loading