|
- from telnetlib import Telnet
- import serial
-
- DEBUG = True
-
-
- class MAXCube:
- def __init__(self):
- self.client = None
-
- def disconnect(self):
- if self.client is not None:
- self.client.close()
- self.client = None
-
- def request(self, req):
- if self.client is not None:
- self.client.write(req.encode())
- self.client.write(b"\n")
- if DEBUG:
- print(">>> {}".format(req))
- else:
- print("Request while not connected!")
-
- def set_moritz_mode(self, moritz_mode_enable):
- if moritz_mode_enable:
- self.request("Zr")
- #return self.response()
- else:
- self.request("Zx")
-
- def version_string(self):
- self.request("V")
- return self.response()
-
- def is_connected(self):
- return self.client is not None
-
-
- class CUN(MAXCube):
- def __init__(self):
- self.client: Telnet = None
-
- def connect(self, host, ip):
- if self.client is None:
- self.client = Telnet(host, ip)
- self.set_moritz_mode(True)
-
- def request(self, req):
- if self.client is not None:
- self.client.write(req.encode())
- self.client.write(b"\n")
- if DEBUG:
- print(">>> {}".format(req))
- else:
- print("Request while not connected!")
-
- def response(self):
- if self.client is not None:
- response = self.client.read_some().decode()
- if DEBUG:
- print("<<< {}".format(response))
- return response
- else:
- print("Waiting for response while not connected!")
- return None
-
-
- class CUL(MAXCube):
- def __init__(self, addr: str):
- self.client: serial.Serial = None
- self.addr = addr
-
- def connect(self, port):
- if self.client is None:
- self.client = serial.Serial(port, 38400, timeout=1)
- self.set_moritz_mode(True)
-
- def response(self):
- if self.client is not None:
- response = self.client.read(100).decode()
- if DEBUG:
- print("<<< {}".format(response))
- return response
- else:
- print("Waiting for response while not connected!")
- return None
|