diff options
Diffstat (limited to 'lab_control/jds6600.py')
-rw-r--r-- | lab_control/jds6600.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lab_control/jds6600.py b/lab_control/jds6600.py new file mode 100644 index 0000000..eda8306 --- /dev/null +++ b/lab_control/jds6600.py @@ -0,0 +1,28 @@ +import serial + +from lab_control.function_generator import FunctionGenerator + +class JDS6600(FunctionGenerator): + def __init__(self, portName): + self._port = serial.Serial(portName) + self._port.baudrate = 115200 + self._port.bytesize = serial.EIGHTBITS + self._port.stopbits = serial.STOPBITS_ONE + self._port.parity = serial.PARITY_NONE + + 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 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}") + # TODO figure out error handling + + def setOff(self, channel: int) -> None: + pass |