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