diff options
Diffstat (limited to 'lab_control/test/mock_sds1000xe_device.py')
-rw-r--r-- | lab_control/test/mock_sds1000xe_device.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/lab_control/test/mock_sds1000xe_device.py b/lab_control/test/mock_sds1000xe_device.py index b4dd222..68c2471 100644 --- a/lab_control/test/mock_sds1000xe_device.py +++ b/lab_control/test/mock_sds1000xe_device.py @@ -24,8 +24,8 @@ class MockSDS1000XEDevice: self._mainThread = threading.Thread(target=self._mainLoop) self._mainThread.start() - # Mock measured values - self._channels = [{"AMPL" : None} for i in range(0, 4)] + # Mock internal values + self._channels = [{"AMPL" : None, "VDIV" : None} for i in range(0, 4)] def _mainLoop(self) -> None: self._clientSocket, _ = _serverSocket.accept() @@ -35,7 +35,7 @@ class MockSDS1000XEDevice: while not self._stopFlag: try: request = self._clientSocket.recv(4096).decode() - response = self._handleRequest(request) + response = self._handleRequest(request.strip()) if response is not None: self._clientSocket.send(response.encode()) except TimeoutError as e: @@ -44,7 +44,7 @@ class MockSDS1000XEDevice: self._clientSocket.close() def _handleRequest(self, request: str) -> str: - m = re.search(r"C(?P<channel>\d):(?P<opcode>\w+)\?\s(?P<arg>\w+)", request) + m = re.search(r"C(?P<channel>\d):(?P<opcode>\w+)\??\s(?P<arg>.+)", request) if not m: return None @@ -61,6 +61,10 @@ class MockSDS1000XEDevice: else: response = f"C{m.group('channel')}:PAVA {arg},{value:.6E}{unit}" return response + elif opcode == "VDIV": + arg = float(m.group("arg").rstrip("V")) + self._channels[channelIndex]["VDIV"] = arg + return None def stop(self) -> None: self._stopFlag = True @@ -78,3 +82,6 @@ class MockSDS1000XEDevice: def setFrequency(self, channel: int, value: float) -> None: self._channels[channel - 1]["FREQ"] = value + def getVoltsPerDivision(self, channel: int) -> float: + return self._channels[channel - 1]["VDIV"] + |