Waveform Designer#1710
Open
bennthomsen wants to merge 54 commits into
Open
Conversation
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…oadbean into JSONserialisation
…dbean into plotly_plotting
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…adbean into feature/designer
for more information, see https://pre-commit.ci
…adbean into feature/designer
for more information, see https://pre-commit.ci
…adbean into feature/designer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a web-based Waveform Designer to broadbean — a Django-powered application for visually creating,
editing, sequencing, and uploading waveform sequences to arbitrary waveform generators (AWGs). It also introduces a
hardware instrument abstraction layer with a registry-based factory pattern for AWGs and oscilloscopes.
Note: This branch depends on JSONserialisation PR#1695, lut PR#1696, plotly_plotting PR#1694, and main. The changes described below are only those unique to this branch.
##Waveform Designer App
(src/broadbean/designer/)
A full Django application providing five main interfaces:
and custom segment types. Each segment supports up to 2 markers with configurable delay/duration.
logic, and per-channel flags (A–D).
hardware-free testing.
multi-parameter).
The designer exposes REST API endpoints for programmatic access to elements, sequences, configurations, upload, and
capture. It creates a local SQLite database to manage and store the generated waveforms and instrument configs
##Instrument Abstraction Layer
(src/broadbean/instruments/)
##Factory Interfaces
(src/broadbean/interface/)
##Supporting Infrastructure
designer/sequencer/upload/instruments)
##Changes to Existing Code
sequence data. Fixed flags handling (already a list, removed unnecessary .tolist() call). Removed unused import.
and setuptools package-data configuration for templates/static/migrations/CSV files.
files, and updated docs/conf.py for markdown support.
Installation
Designer only (mock instruments)
pip install broadbean[designer]
With hardware support (Tektronix AWGs/Scopes via QCoDeS)
pip install broadbean[designer, hardware]
Run the designer
broadbean-designer runserver