diff options
Diffstat (limited to 'lab_control/jds6600.py')
-rw-r--r-- | lab_control/jds6600.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lab_control/jds6600.py b/lab_control/jds6600.py index eda8306..7e7640d 100644 --- a/lab_control/jds6600.py +++ b/lab_control/jds6600.py @@ -1,4 +1,5 @@ import serial +import re from lab_control.function_generator import FunctionGenerator @@ -12,17 +13,25 @@ class JDS6600(FunctionGenerator): def _sendRequest(self, opcode: str, args: str) -> str: request = f":{opcode}={args}.\r\n" - print(f"Script writing request to port: {request}") self._port.write(request.encode()) - print(f"Script waiting for response") responseRaw = self._port.readline() return responseRaw.decode().strip() + def closePort(self) -> None: + self._port.close() + + def _queryOnOff(self) -> list[int, int]: + response = self._sendRequest("r20", "") + return [response[5], response[7]] + def setOn(self, channel: int) -> None: - args = ",".join(["1" if i == channel else "0" for i in [1, 2]]) - response = self._sendRequest("w20", args) - print(f"Script got response {response}") + state = self._queryOnOff() + state[channel - 1] = '1' + response = self._sendRequest("w20", f"{state[0]},{state[1]}") # TODO figure out error handling def setOff(self, channel: int) -> None: - pass + state = self._queryOnOff() + state[channel - 1] = '0' + response = self._sendRequest("w20", f"{state[0]},{state[1]}") + # TODO figure out error handling |