From 6ebcec976c06a27d9afabdf336673bcc2e019198 Mon Sep 17 00:00:00 2001 From: Anton Tetov <anton@tetov.se> Date: Wed, 28 Sep 2022 21:51:54 +0200 Subject: [PATCH] first impl --- ur_py_ctl/client.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ur_py_ctl/client.py diff --git a/ur_py_ctl/client.py b/ur_py_ctl/client.py new file mode 100644 index 0000000..9199203 --- /dev/null +++ b/ur_py_ctl/client.py @@ -0,0 +1,38 @@ +"""Client for communication with UR robot over TCP socket.""" +import logging +import socket + + +class URClient: + """Client for communication with UR robot over TCP socket. + + Parameters + ---------- + hostname + hostname or ip for UR controller + port + TCP port on UR controller + timeout + Timeout for socket + """ + + def __init__(self, hostname: str, port=30003, timeout=2): + self.addr = (hostname, port) + self.send_sock = socket.socket() + self.send_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + self.send_sock.settimeout(timeout) + + def send_script(self, script: str) -> None: + """Send script to UR controller. + + Parameters + ---------- + script + + Raises + ------ + :py.exc:`TimeoutError` + """ + logging.debug(f"Will send script:\n{script}") + + self.send_sock.sendto(script.encode(), self.addr) -- GitLab