diff options
Diffstat (limited to 'lab_control/sds1000xe.py')
-rw-r--r-- | lab_control/sds1000xe.py | 28 |
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 - |