Skip to content

Tektronix DPO7200xx and AWG70000A — Convenience Methods for Waveform Workflows - #7865

Open
Benn Thomsen (bennthomsen) wants to merge 12 commits into
microsoft:mainfrom
bennthomsen:feature/tektronix-combined
Open

Tektronix DPO7200xx and AWG70000A — Convenience Methods for Waveform Workflows#7865
Benn Thomsen (bennthomsen) wants to merge 12 commits into
microsoft:mainfrom
bennthomsen:feature/tektronix-combined

Conversation

@bennthomsen

@bennthomsenBenn Thomsen (bennthomsen) commented Feb 13, 2026

Copy link
Copy Markdown
Contributor

Adds convenience methods to the Tektronix DPO7200xx oscilloscope and AWG70000A waveform generator drivers to
streamline triggered acquisition and sequence upload workflows.

Files changed: 4 files, +133 / −2 lines

##DPO7200xx Oscilloscope
(DPO7200xx.py, +58 lines)

Three new convenience methods on TektronixDPO7000xx:

  • single() — puts the scope into single-acquisition mode, starts a run, and polls until both the acquisition
    completes and the trigger is ready (with timeout)
  • download_waveforms() — waits for acquisition to finish, then downloads waveform traces from all enabled channels
  • get_timebase() — returns a tuple of (time unit, time axis array) from the first channel

##AWG70000A Waveform Generator
(AWG70000A.py, +26 lines)

One new convenience method on TektronixAWG70000Base:

  • upload_seqx() — builds a .seqx file from input, uploads it to the AWG, loads it into playback memory, assigns
    tracks to channels 1 & 2, enables outputs, and starts playback

Other Changes

  • Station.ipynb — minor fix: updated import path from qcodes.utils.installation to qcodes.extensions

@codecov

codecovBot commented Feb 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 8.88889% with 41 lines in your changes missing coverage. Please review.
✅ Project coverage is 58.89%. Comparing base (d472c69) to head (21f3280).
⚠️ Report is 1180 commits behind head on main.

Files with missing linesPatch %Lines
...c/qcodes/instrument_drivers/tektronix/DPO7200xx.py8.57%32 Missing ⚠️
...c/qcodes/instrument_drivers/tektronix/AWG70000A.py10.00%9 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #7865 +/- ##
==========================================
- Coverage 59.94% 58.89% -1.06% 
==========================================
Files 352 352 Lines 31933 31978 +45 ==========================================
- Hits 19143 18832 -311 - Misses 12790 13146 +356 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

self.visa_log.debug(f"Response: {response}")
return response

def single(self):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
defsingle(self):
defsingle(self)->None:

) # This will trigger the actual download of the waveform
return wfms

def get_timebase(self) -> tuple:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
defget_timebase(self) ->tuple:
defget_timebase(self) ->tuple[str,np.ndarray]:

break
time.sleep(0.1)

def download_waveforms(self) -> tuple:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
defdownload_waveforms(self) ->tuple:
defdownload_waveforms(self) ->tuple[np.ndarray, ..,]:

If I understand correctly the tuple contains numpy arrays

"""
self.write("AWGControl:STOP")

def upload_seqx(self, seqx_input, sequence_name="seq") -> None:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
defupload_seqx(self, seqx_input, sequence_name="seq") ->None:
defupload_seqx(self, seqx_input: notsurewhatthetypeisherepleascheck, sequence_name: str="seq") ->None:

@jenshnielsen

Copy link
Copy Markdown
Collaborator

Benn Thomsen (@benn-thomsen) Thanks, In qcodes we require that the code should contain types for all input and output. I have added comments with most of them but please check that this is correct.

Sign up for freeto 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.

3 participants

@bennthomsen@jenshnielsen@benn-thomsen