Skip to content

feat: add an oscilloscope simulator tool - #2

Merged
PierreRaybaut merged 1 commit into
feat/plugin-sdk-implementationfrom
feat/equipment-simulator
Oct 7, 2026
Merged

PierreRaybaut merged 1 commit into
feat/plugin-sdk-implementationfrom
feat/equipment-simulator

Conversation

@PierreRaybaut

@PierreRaybaut PierreRaybaut commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Follows #1 (merged).

Adds an Oscilloscope simulator... tool. It opens DataLab's instrument window (DataLab-Platform/DataLab#384, merged): live traces on the left, the settings on the right, and Acquire to add triggered shots to the workspace, ready for the Pulse methods.

  • Source tab, chosen first: amplitude, amplitude and trigger jitter and pulse width, then the settings of a laser pulse (Gaussian or asymmetric, timing and amplitude drifts), an amplifier step response (second-order: natural frequency and damping ratio) or a two-channel pulse pair (detector delay, gain, width and jitter). Settings that do not apply to the chosen source are greyed out.
  • Oscilloscope tab: time base, sample rate and trigger position; CH1 and CH2 scale and offset; ADC resolution (with clipping) and noise; triggers per acquisition and random seed.
  • New core/oscilloscope.py (host-independent): channel screen ranges, time axis with the trigger at t = 0, digitization, sources and acquire_traces.
  • Each acquisition goes to a new group such as "Oscilloscope - Pulse pair - acquisition 001", with shots titled CH1 shot 001 and the shot-number and channel metadata. A pulse-pair acquisition is ready for the two-channel delay method.
  • Acquisitions are capped at 5 million samples; preview and acquisition use separate seed streams.
  • The tool is declared in both the Desktop and Web adapters.

Tests

  • 6 new unit tests, including the step overshoot (Ôëê 30.9 %) and the constant-fraction delay of the pulse pair; full suite: 113 passed.

Docs: new doc/oscilloscope-simulator.md, linked from the README and doc/simulation.md; CHANGELOG updated.

Assisted-by: Claude Opus 5.5

Assisted-by: Claude Opus 5.5
@PierreRaybaut
PierreRaybaut changed the base branch from feat/multi-method-recipes to feat/plugin-sdk-implementation October 7, 2026 18:57
@PierreRaybaut
PierreRaybaut merged commit ca47aa7 into feat/plugin-sdk-implementation Oct 7, 2026
@PierreRaybaut
PierreRaybaut deleted the feat/equipment-simulator branch October 7, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant