Example #1
0
 def startConnection(self):
     self.connection = Client(host=lib.config.host,
                              port=lib.config.port,
                              callback=self.onNewMessageFromServer)
     self.connection.connect()
     # send who we are
     self.connection.sendMessage(self.clientId)
     # start listening
     Clock.schedule_interval(self.connectionListen, 0)
Example #2
0
 def startConnection(self):
     self.connection = Client(host=lib.config.host, port=lib.config.port, callback=self.onNewMessageFromServer)
     self.connection.connect()
     # send who we are
     self.connection.sendMessage(self.clientId)
     # start listening
     Clock.schedule_interval(self.connectionListen, 0)
Example #3
0
class Controller(Widget):
    def __init__(self, **kwargs):
        super(Controller, self).__init__(**kwargs)
        self.clientId = kwargs.pop('cid', 1)

        self.modes = [
            ScreenSaver(controller=self, modeId=1),
            Learning(controller=self, modeId=2),
            Discovering(controller=self, modeId=3),
            Credits(controller=self, modeId=4)
        ]

        self.currentModeId = -1

        self.startConnection()
        self.serverIsReady = False

    # messages from server arrive here
    #
    def onNewMessageFromServer(self, message):
        print "new message from server:", message

        if message == "reset_all":
            #TODO cleanup serverIsReady hack
            self.serverIsReady = False

            self.stopCurrentMode()
            self.reset_all_modes()
            self.currentModeId = -1

        elif message == "change_mode/1":  # mode 1 messages
            self.serverIsReady = True

            self.stopCurrentMode()
            self.currentModeId = 1
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            # only start if we are numero uno
            if self.clientId == "1":
                self.currentMode.start()

        elif message == "scan_start":
            if self.serverIsReady:
                self.currentMode.start()

        elif message == "scan_fadein":
            if self.serverIsReady:
                self.currentMode.fadein()

        elif message == "change_mode/2":  # mode 2 messages
            self.stopCurrentMode()
            self.currentModeId = 2
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        elif message == "change_mode/3":  # mode 3 messages
            self.stopCurrentMode()
            self.currentModeId = 3
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        elif message == "change_mode/4":
            self.stopCurrentMode()
            self.currentModeId = 4
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        else:
            print "message is not recognized:", message

    def sendMessage(self, message):
        print "Sending message ", message
        self.connection.sendMessage(message)

    def stopCurrentMode(self):
        if self.currentModeId == -1:
            return

        self.currentMode.stop()
        self.remove_widget(self.currentMode)

    def reset_all_modes(self):
        for mode in self.modes:
            mode.reset()

    def updateCurrentMode(self):
        # TODO: check over/under flows
        self.currentMode = self.modes[self.currentModeId - 1]

    # connection stuff
    #
    def connectionListen(self, dt):
        self.connection.listen()

    def cleanupOnExit(self):
        self.connection.close()

    def startConnection(self):
        self.connection = Client(host=lib.config.host,
                                 port=lib.config.port,
                                 callback=self.onNewMessageFromServer)
        self.connection.connect()
        # send who we are
        self.connection.sendMessage(self.clientId)
        # start listening
        Clock.schedule_interval(self.connectionListen, 0)
Example #4
0
class Controller(Widget):
    def __init__(self, **kwargs):
        super(Controller, self).__init__(**kwargs)
        self.clientId = kwargs.pop("cid", 1)

        self.modes = [
            ScreenSaver(controller=self, modeId=1),
            Learning(controller=self, modeId=2),
            Discovering(controller=self, modeId=3),
            Credits(controller=self, modeId=4),
        ]

        self.currentModeId = -1

        self.startConnection()
        self.serverIsReady = False

    # messages from server arrive here
    #
    def onNewMessageFromServer(self, message):
        print "new message from server:", message

        if message == "reset_all":
            # TODO cleanup serverIsReady hack
            self.serverIsReady = False

            self.stopCurrentMode()
            self.reset_all_modes()
            self.currentModeId = -1

        elif message == "change_mode/1":  # mode 1 messages
            self.serverIsReady = True

            self.stopCurrentMode()
            self.currentModeId = 1
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            # only start if we are numero uno
            if self.clientId == "1":
                self.currentMode.start()

        elif message == "scan_start":
            if self.serverIsReady:
                self.currentMode.start()

        elif message == "scan_fadein":
            if self.serverIsReady:
                self.currentMode.fadein()

        elif message == "change_mode/2":  # mode 2 messages
            self.stopCurrentMode()
            self.currentModeId = 2
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        elif message == "change_mode/3":  # mode 3 messages
            self.stopCurrentMode()
            self.currentModeId = 3
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        elif message == "change_mode/4":
            self.stopCurrentMode()
            self.currentModeId = 4
            self.updateCurrentMode()
            self.add_widget(self.currentMode)
            self.currentMode.start()

        else:
            print "message is not recognized:", message

    def sendMessage(self, message):
        print "Sending message ", message
        self.connection.sendMessage(message)

    def stopCurrentMode(self):
        if self.currentModeId == -1:
            return

        self.currentMode.stop()
        self.remove_widget(self.currentMode)

    def reset_all_modes(self):
        for mode in self.modes:
            mode.reset()

    def updateCurrentMode(self):
        # TODO: check over/under flows
        self.currentMode = self.modes[self.currentModeId - 1]

    # connection stuff
    #
    def connectionListen(self, dt):
        self.connection.listen()

    def cleanupOnExit(self):
        self.connection.close()

    def startConnection(self):
        self.connection = Client(host=lib.config.host, port=lib.config.port, callback=self.onNewMessageFromServer)
        self.connection.connect()
        # send who we are
        self.connection.sendMessage(self.clientId)
        # start listening
        Clock.schedule_interval(self.connectionListen, 0)