Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
            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"
Ejemplo n.º 3
0
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