From a0783e9f9698b3370c96eaab574d433e25372bc7 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Sun, 29 May 2022 19:20:09 +0200 Subject: Added JDS6600 initial implementation, test device doesn't work --- lab_control/jds6600.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lab_control/jds6600.py (limited to 'lab_control/jds6600.py') 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 -- cgit v1.2.3