From bff307e33bd1eb6e39d5edc76ce8f4434aba484d Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Tue, 31 May 2022 11:22:18 +0200 Subject: Fixed bug in frequency measurement --- lab_control/sds1000xe.py | 4 ++-- lab_control/test/mock_sds1000xe_device.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lab_control/sds1000xe.py b/lab_control/sds1000xe.py index ef6627c..551c9ef 100644 --- a/lab_control/sds1000xe.py +++ b/lab_control/sds1000xe.py @@ -4,7 +4,7 @@ from lab_control.oscilloscope import Oscilloscope class SDS1000XE(Oscilloscope): PORT = 5025 - TIMEOUT = 0.2 + TIMEOUT = 1.0 AVAILABLE_CHANNELS = range(1, 5) def __init__(self, address): @@ -21,7 +21,7 @@ class SDS1000XE(Oscilloscope): try: # TODO add code to regex response = self._socket.recv(4096).decode() - m = re.search(r"C(?P\d):PAVA .+,(?P.+)V", response) + m = re.search(r"C(?P\d):PAVA .+,(?P[0-9.E+-]+)\w+", response) measurement = float(m.group("rawMeasurement")) except TimeoutError as e: measurement = None diff --git a/lab_control/test/mock_sds1000xe_device.py b/lab_control/test/mock_sds1000xe_device.py index ce752e9..b4dd222 100644 --- a/lab_control/test/mock_sds1000xe_device.py +++ b/lab_control/test/mock_sds1000xe_device.py @@ -54,11 +54,12 @@ class MockSDS1000XEDevice: if opcode == "PAVA": arg = m.group("arg") value = self._channels[channelIndex].get(arg) + unit = "Hz" if arg == "FREQ" else "V" if value is None: return None else: - response = f"C{m.group('channel')}:PAVA {arg},{value:.6E}V" + response = f"C{m.group('channel')}:PAVA {arg},{value:.6E}{unit}" return response def stop(self) -> None: -- cgit v1.2.3