class ConnectionManager(QtCore.QObject): result = QtCore.pyqtSignal(bool) def __init__(self, incomming_q, outgoing_q): super(ConnectionManager, self).__init__() self.in_q = incomming_q self.out_q = outgoing_q self.tcpClient = None self.comClient = None def __del__(self): if self.tcpClient is not None: self.tcpClient.join() if self.comClient is not None: self.comClient.join() @QtCore.pyqtSlot() def check(self): if self.tcpClient and not self.tcpClient.isAlive(): self.tcpClient = None Logger.getInstance().error("WiFi connection closed unexpectedly") self.result.emit(False) if self.comClient and not self.comClient.isAlive(): self.comClient = None Logger.getInstance().error("COM connection closed unexpectedly") self.result.emit(False) @QtCore.pyqtSlot(tuple) def connect(self, parameters): self.stopAll() if parameters[0] == "WiFi": try: self.tcpClient = TCPClient( (str(parameters[1]), int(parameters[2])), self.out_q, self.in_q) except Exception as e: self.tcpClient = None Logger.getInstance().error("Cannot start WiFi connection: " + str(e)) else: self.tcpClient.start() Logger.getInstance().info("Connected to WiFi server") elif parameters[0] == "COM": try: self.comClient = COMClient(str(parameters[1]), int(parameters[2]), self.out_q, self.in_q) except Exception as e: self.comClient = None Logger.getInstance().error("Cannot start serial connection: " + str(e)) else: self.comClient.start() Logger.getInstance().info("Connected to COM server") if self.comClient or self.tcpClient: self.result.emit(True) else: self.result.emit(False) @QtCore.pyqtSlot() def setup(self): self.runTimer = QtCore.QTimer() self.runTimer.timeout.connect(self.check) self.runTimer.start(100) def stopAll(self): if self.tcpClient is not None: self.tcpClient.join() self.tcpClient = None Logger.getInstance().info("Stopping TCP Client") if self.comClient is not None: self.comClient.join() self.comClient = None Logger.getInstance().info("Stopping COM Client")
Logger.log_game("Started Motion Tracking") # SPI-SERVER if useSPI: Logger.log_spi("Starting spi-server") spi_thread.start() Logger.log_spi("Started spi-server") # GAME Logger.log_game("Starting game") game_thread.start() Logger.log_game("Started game") # TCP-SERVER Logger.log_tcp("Starting tcp-server") tcp_thread.start() Logger.log_tcp("Started tcp-server") # Send Thread send_thread = SendThread(game_thread, tcp_thread) # INPUT while True: # line = raw_input() # if line == "quit": # break if not q_tcp_read.empty(): recv = q_tcp_read.get() print recv if recv.startswith("start"): print "START"
from TCPClient import TCPClient import time app = TCPClient() # Create new class object app.address = ('localhost', 5000) # Set up ip and port for connection app.start() # Start connection and running forever time.sleep(5) # Delay 5 secs app.send("test1") # Send message time.sleep(2) # Delay 2 secs print(app.rcvmsg) # Print out to see receive message time.sleep(1) # Delay 2 secs app.stop() # Stop running