Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0826b2b
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] May 26, 2025
10c3f89
First draft of qcodes wrapper
shumpohl Jun 24, 2025
9809575
Add failing measurement test
shumpohl Jun 24, 2025
f7416ca
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 24, 2025
f514230
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 24, 2025
5c243ea
Fix measurement test impl
shumpohl Jun 25, 2025
4c51960
Move test setup to conftest file
shumpohl Jun 25, 2025
9f5d12c
Improve measurement code testing and add qumada device test
shumpohl Jun 25, 2025
3e3e584
Properly isolate test's global instrument state
shumpohl Jun 25, 2025
e80d997
Fix typo in test
shumpohl Jun 25, 2025
ef2c13e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 25, 2025
f7204ad
Inject live plotter into measurement script
shumpohl Jun 25, 2025
c7a64aa
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 25, 2025
8de1bfd
More tests
shumpohl Jun 26, 2025
d6d5f35
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 26, 2025
7567a4d
Python 3.9 compatible type unions
shumpohl Jun 26, 2025
583c387
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 26, 2025
30af084
Do not use dummy dmm voltage
shumpohl Jun 26, 2025
1e18b55
Use dond wrapper for live_plotting
shumpohl Jun 26, 2025
9d804e0
Include plotter use in test
shumpohl Jun 26, 2025
3522361
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 26, 2025
a620c71
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 26, 2025
f2a8ef8
Fix tests for qumada 3
shumpohl Jun 26, 2025
feee8ca
Only use Measurement wrapping when live plotting is configured
shumpohl Jun 26, 2025
c83e3b5
Flush to database on every measurement (slow but faster than easy alt…
shumpohl Jun 26, 2025
f83adca
Merge branch 'feature/liveplotting_3.0' of github.com:qutech/QuMADA i…
shumpohl Jun 26, 2025
ab08f7b
Improve dataset saving and use terminal labels
shumpohl Jun 27, 2025
188b2ce
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 27, 2025
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
8 changes: 4 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- repo: https://github.com/asottile/pyupgrade
rev: v3.19.1
rev: v3.20.0
hooks:
- id: pyupgrade
args: [--py39-plus]
- repo: https://github.com/pycqa/isort
rev: 5.13.2
rev: 6.0.1
hooks:
- id: isort
args: ["--profile", "black"]
- repo: https://github.com/psf/black
rev: 24.10.0
rev: 25.1.0
hooks:
- id: black
args: ["--line-length", "120"]
- repo: https://github.com/pycqa/flake8
rev: 7.1.1
rev: 7.2.0
hooks:
- id: flake8
2 changes: 1 addition & 1 deletion docs/device_object.rst
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ This stores all parameter values (of parameters that can be set). With

you can reset it to the stored
configuration. Alternatively you can use "device.save_state(name)" and "device.set_state(name)" to store and set multiple working points with
custom names. They can also be accessed via "device.states" in case you forgot the name. To store a state in json-file, use device.save_to_file(name, path), you can load it
custom names. They can also be accessed via "device.states" in case you forgot the name. To store a state in json-file, use device.save_to_file(name, path), you can load it
via "device.load_state_from_file(name, path)" to load it (use "device.set_state(name)" afterwards to set it) or with "device.set_state_from_file(name, path)" to directly apply the configuration to the device.
For all of those methods the parameters are ramped to the final state by default (with the default QuMada ramp rate), again depending on the "device.ramp" setting.

Expand Down
10 changes: 6 additions & 4 deletions src/qumada/instrument/custom_drivers/ZI/MFLI.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ class MFLI(Instrument):
"""

def __init__(
self, name: str, device: str,
self,
name: str,
device: str,
serverhost: str = "localhost",
existing_session: Session = None,
allow_version_mismatch = False,
**kwargs
existing_session: Session = None,
allow_version_mismatch=False,
**kwargs,
):
super().__init__(name, **kwargs)
if isinstance(existing_session, Session):
Expand Down
8 changes: 4 additions & 4 deletions src/qumada/instrument/mapping/Dummies/DummyDac.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ def ramp(

if not start_values:
start_values = [param.get() for param in parameters]
print("Ramping...")

print("Ramping...")
instrument._triggered_ramp_channels(
[param._instrument for param in parameters], start_values, end_values, ramp_time, num_points
)
Expand Down Expand Up @@ -96,7 +96,7 @@ def pulse(

def setup_trigger_in():
pass

def force_trigger(self):
self._instrument.force_trigger()
self._instrument._is_triggered.clear()
self._instrument._is_triggered.clear()
10 changes: 6 additions & 4 deletions src/qumada/instrument/mapping/Harvard/Decadac.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@
# - Till Huckeman


import logging

from qcodes.instrument.parameter import Parameter

from qumada.instrument.custom_drivers.Harvard.Decadac import Decadac
from qumada.instrument.mapping import DECADAC_MAPPING
from qumada.instrument.mapping.base import InstrumentMapping
import logging

logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -159,6 +161,6 @@ def trigger_in(self, trigger: str | None) -> None:
def force_trigger(self):
string = ""
for b in range(0, 6):
for c in range(0,6):
string+=f"B{b};C{c};G0;"
self._instrument.write(string)
for c in range(0, 6):
string += f"B{b};C{c};G0;"
self._instrument.write(string)
3 changes: 2 additions & 1 deletion src/qumada/instrument/mapping/QDevil/qdac.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class QDacMapping(InstrumentMapping):
def __init__(self):
super().__init__(QDAC_MAPPING)
self.max_ramp_channels = 8

def ramp(
self,
parameters: list[Parameter],
Expand Down Expand Up @@ -72,7 +73,7 @@ def ramp(

def setup_trigger_in(self):
raise Exception("QDac does not have a trigger input!")

def force_trigger(self):
pass
# Not required as QDac has no trigger input and starts ramps instantly.
2 changes: 1 addition & 1 deletion src/qumada/instrument/mapping/QDevil/qdac2.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def setup_trigger_in(self):
"QDac2 does not have a trigger input \
not yet supported!"
)

def force_trigger(self):
pass
# Currently no trigger inputs are supported, thus all ramps are started
Expand Down
6 changes: 4 additions & 2 deletions src/qumada/instrument/mapping/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,10 @@ def pulse(
**kwargs,
) -> None:
"""Defining qumada pulse. Requires proper implementation for each instrument"""
raise Exception("Pulse not properly implemented for this instrument!\
You cannot use pulsed measurements with this instrument.")
raise Exception(
"Pulse not properly implemented for this instrument!\
You cannot use pulsed measurements with this instrument."
)

@abstractmethod
def setup_trigger_in(self, trigger_settings: dict) -> None:
Expand Down
Loading
Loading