示例#1
0
文件: red.py 项目: fscherwi/brickv
    def __init__(self, *args):
        PluginBase.__init__(self, REDBrick, *args)

        try:
            self.session = REDSession(self.device,
                                      self.increase_error_count).create()
        except Exception as e:
            self.session = None

            label = QLabel('Could not create session:\n\n{0}'.format(e))
            label.setAlignment(Qt.AlignHCenter)

            layout = QVBoxLayout(self)
            layout.addStretch()
            layout.addWidget(label)
            layout.addStretch()

            return

        self.image_version = ImageVersion()
        self.label_version = None
        self.script_manager = ScriptManager(self.session)
        self.tabs = []

        self.setupUi(self)

        self.tab_widget.hide()

        for i in range(self.tab_widget.count()):
            tab = self.tab_widget.widget(i)

            tab.session = self.session
            tab.script_manager = self.script_manager
            tab.image_version = self.image_version

            self.tabs.append(tab)

        self.tab_widget.currentChanged.connect(self.tab_widget_current_changed)

        actions = []

        for param, name in enumerate([
                'Restart Brick Daemon', 'Reboot RED Brick',
                'Shut down RED Brick'
        ]):
            action = QAction(name, self)
            action.triggered.connect(
                functools.partial(self.perform_action, param))
            actions.append(action)

        self.set_actions(['System', actions])

        # FIXME: RED Brick doesn't do enumerate-connected callback correctly yet
        #        for Brick(let)s connected to it. Trigger a enumerate to pick up
        #        all devices connected to a RED Brick properly
        self.ipcon.enumerate()
示例#2
0
    def __init__(self, *args):
        PluginBase.__init__(self, REDBrick, *args)

        try:
            self.session = REDSession(self.device,
                                      self.increase_error_count).create()
        except Exception as e:
            self.session = None
            self.report_fatal_error('Could not create session', str(e),
                                    traceback.format_exc())
            return

        try:
            self.script_manager = ScriptManager(self.session)
        except Exception as e:
            self.session.expire()
            self.session = None
            self.report_fatal_error('Could not create script manager', str(e),
                                    traceback.format_exc())
            return

        self.image_version = ImageVersion()
        self.label_version = None
        self.tabs = []

        self.setupUi(self)

        self.tab_widget.hide()

        for i in range(self.tab_widget.count()):
            tab = self.tab_widget.widget(i)

            tab.session = self.session
            tab.script_manager = self.script_manager
            tab.image_version = self.image_version

            self.tabs.append(tab)

        self.tab_widget.currentChanged.connect(self.tab_widget_current_changed)

        actions = []

        for param, name in enumerate([
                'Restart Brick Daemon', 'Reboot RED Brick',
                'Shut down RED Brick', 'Update Tinkerforge Software'
        ]):
            action = QAction(name, self)
            action.triggered.connect(
                functools.partial(self.perform_action, param))
            actions.append(action)

        self.set_actions([(0, 'System', actions)])

        self.dialog_update_tinkerforge_software = None

        # FIXME: RED Brick doesn't do enumerate-connected callback correctly yet
        #        for Brick(let)s connected to it. Trigger a enumerate to pick up
        #        all devices connected to a RED Brick properly
        self.ipcon.enumerate()

        self.extension_configs = []
        self.completed_counter = 0

        QTimer.singleShot(
            250,
            functools.partial(
                self.query_image_version,
                functools.partial(self.query_extensions,
                                  self.query_bindings_versions)))