summaryrefslogtreecommitdiffstats
path: root/lab_control/connection
diff options
context:
space:
mode:
Diffstat (limited to 'lab_control/connection')
-rw-r--r--lab_control/connection/direct_connection.py2
-rw-r--r--lab_control/connection/tcp_connection.py22
2 files changed, 23 insertions, 1 deletions
diff --git a/lab_control/connection/direct_connection.py b/lab_control/connection/direct_connection.py
index 56a5cf3..8df1e42 100644
--- a/lab_control/connection/direct_connection.py
+++ b/lab_control/connection/direct_connection.py
@@ -10,7 +10,7 @@ class DirectConnection:
def close(self) -> None:
self.open = False
- def send(self, request: str) -> str:
+ def send(self, request: str, responseExpected=True) -> str:
return self.requestHandler(request)
def checkConfiguration(self) -> None:
diff --git a/lab_control/connection/tcp_connection.py b/lab_control/connection/tcp_connection.py
new file mode 100644
index 0000000..6af710c
--- /dev/null
+++ b/lab_control/connection/tcp_connection.py
@@ -0,0 +1,22 @@
+import socket
+
+class TCPConnection:
+ def __init__(self, ip: str, port: int):
+ self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ self._socket.connect((address, port))
+
+ def configure(self, config: dict) -> None:
+ self._socket.settimeout(parameters["timeout"])
+
+ def send(self, request, responseExpected=True):
+ self._socket.sendall(request.encode())
+
+ if responseExpected:
+ try:
+ response = self._socket.recv(4096).decode()
+ except TimeoutError:
+ response = None
+ return response
+
+ def checkConfiguration(self) -> None:
+ pass