summaryrefslogtreecommitdiffstats
path: root/lab_control/sds1000xe.py
diff options
context:
space:
mode:
authorEddy Pedroni <eddy@0xf7.com>2022-05-26 16:41:02 +0200
committerEddy Pedroni <eddy@0xf7.com>2022-05-26 16:41:02 +0200
commitb17f87f6e9bc938448c5aeef6241a6d1639f17af (patch)
treeec08ebd97d3ba3e4a4003ce69bcc844cd8201085 /lab_control/sds1000xe.py
parent1e1d5aafd5018e462a93fa5c528fd36b0b0bbde1 (diff)
Refactored, added peak-to-peak, RMS and frequency measurements
Diffstat (limited to 'lab_control/sds1000xe.py')
-rw-r--r--lab_control/sds1000xe.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/lab_control/sds1000xe.py b/lab_control/sds1000xe.py
index d86c1c7..c0654e0 100644
--- a/lab_control/sds1000xe.py
+++ b/lab_control/sds1000xe.py
@@ -14,26 +14,30 @@ class SDS1000XE(Oscilloscope):
self._socket.settimeout(SDS1000XE.TIMEOUT)
def measureAmplitude(self, channel: int) -> float:
+ return self._measure(channel, "AMPL")
+
+ def measurePeakToPeak(self, channel: int) -> float:
+ return self._measure(channel, "PKPK")
+
+ def measureRMS(self, channel: int) -> float:
+ return self._measure(channel, "RMS")
+
+ def measureFrequency(self, channel: int) -> float:
+ return self._measure(channel, "FREQ")
+
+ def _measure(self, channel: int, code: str) -> float:
assert channel in SDS1000XE.AVAILABLE_CHANNELS
- query = f"C{channel}:PAVA? AMPL"
+ query = f"C{channel}:PAVA? {code}"
self._socket.sendall(query.encode())
try:
+ # TODO add code to regex
response = self._socket.recv(4096).decode()
- m = re.search(r"C(?P<responseChannel>\d):PAVA AMPL,(?P<rawMeasurement>.+)V", response)
+ m = re.search(r"C(?P<responseChannel>\d):PAVA .+,(?P<rawMeasurement>.+)V", response)
measurement = float(m.group("rawMeasurement"))
- except (TimeoutError, AttributeError) as e:
+ except TimeoutError as e:
measurement = None
return measurement
- def measurePkToPk(self, channel: int) -> float:
- pass
-
- def measureRMS(self, channel: int) -> float:
- pass
-
- def measureFrequency(self, channel: int) -> float:
- pass
-