summaryrefslogtreecommitdiffstats
path: root/lab_control/test/mock_sds1000xe_device.py
diff options
context:
space:
mode:
Diffstat (limited to 'lab_control/test/mock_sds1000xe_device.py')
-rw-r--r--lab_control/test/mock_sds1000xe_device.py15
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"]
+