Пример #1
0
    def engine_server_setup(self, server_ip_host=None):
        server_ip, server_name = server_ip_host or (None, None)
        old_ip = None
        old_hostname = None
        if hasattr(self, 'server_ip'):
            old_ip = self.server_ip
            old_hostname = self.server_hostname

        self.server_ip = str(server_ip)
        self.server_hostname = str(server_name)
        ctx = None
        if server_ip is None:
            self.server_ip = '127.0.0.1'
            self.server_hostname = socket.gethostname()

        if hasattr(self, 'engine'):
            client = self.engine.client
            ctx = client.ctx
        else:
            self.engine = None

        if old_ip != self.server_ip and old_hostname != self.server_hostname:

            if self.engine is not None:
                self.engine.cleanup()
                self._disconnect_signals()

                # self.engine.deleteLater()
                sip.delete(self.engine)
                del self.engine
                self.engine = None


            client = obci_script.client_server_prep(server_ip=self.server_ip,
                                                    zmq_ctx=ctx,
                                                    start_srv=True)
            if client is None:
                self.quit()
            self.exp_states = {}
            self.engine = OBCILauncherEngine(client, self.server_ip)
            self._connect_signals()

        if self.server_ip and self.server_hostname != socket.gethostname():
            self.setWindowTitle(self.basic_title + ' - ' + 'remote connection ' + \
                                ' (' +self.server_ip + ' - ' + self.server_hostname + ')')
        else:
            self.setWindowTitle(self.basic_title + ' - ' + 'local connection (' +\
                                                self.server_hostname + ')')

        if old_ip is not None:
            self.engine.update_ui.emit(None)