Esempio n. 1
0
    def __init__(self, message_render, with_cold=True):
        self.message_render = message_render
        self.logger = logging.getLogger()

        # Inicialize
        self.bus = dbus.SystemBus()

        obj = self.bus.get_object('org.freedesktop.Hal',
                                  '/org/freedesktop/Hal/Manager')

        self.hal_manager = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')

        self.hal_manager.connect_to_signal('DeviceAdded', self.on_device_added)
        self.hal_manager.connect_to_signal('DeviceRemoved',
                                           self.on_device_removed)

        self.udi_dict = {}
        self.modify_handler_dict = {}
        self.devicelist = DeviceList()

        self.__init_actors()

        if with_cold:
            coldplug = ColdPlugListener(self)
            coldplug.start()

        self.logger.info("DeviceListener iniciado")
Esempio n. 2
0
    def __run(self):
        self.logger.info("ColdPlugListener thread started")
        dl = DeviceList()

        for ele in dl.get_added():
            try:
                self.logger.debug("Coldplug: DeviceAdded: " + str(ele[0]))
                self.devicelistener.on_device_added(ele[0]) #ele[0] contains the
                                                            #device udi
                time.sleep(0.5)
            except Exception, e:
                self.logger.warning(str(e))
    def __run(self):
        """ 
        [es] 
        -------------------------------------------------------------------
        [en] 
        """
        self.logger.info("ColdPlugListener thread started")
        dl = DeviceList()

        for ele in dl.get_added():
            try:
                self.logger.debug("Coldplug: DeviceAdded: " + str(ele[0]))

                # [es] ele[0] contiene el UDI del dispositivo
                # [en] ele[0] contains the device UDI
                self.devicelistener.on_device_added(ele[0]) 
                time.sleep(0.5)
            except Exception, e:
                self.logger.warning(str(e))
Esempio n. 4
0
    def __init__(self, message_render, with_cold=True):
        """
        [es] Registramos el monitor de cambios en el hardware y lo conectamos
             a las señales del bus que alertan de la conexión o desconexión de
             dispositivos.
             Parametros:
                 message_render: interfaz a la que enviar las notificaciones
                 with_cold: booleano para indicar si se lanza el Monitor
                            de dispositivos conectados en frio
        -----------------------------------------------------------------------
        [en] Register the device listener and attaches it to the corresponding
             bus signals that alert about devices connection or discnnection.
             Params:
                 message_render: interface for sending notifications through
                 with_cold: boolean indicating wether we launch the Cold Plug 
                            Listener
        """
        self.message_render = message_render
        self.logger = logging.getLogger()

        self.bus = dbus.SystemBus()

        obj = self.bus.get_object('org.freedesktop.Hal',
                                  '/org/freedesktop/Hal/Manager')

        self.hal_manager = dbus.Interface(obj, 'org.freedesktop.Hal.Manager')

        self.hal_manager.connect_to_signal('DeviceAdded', self.on_device_added)
        self.hal_manager.connect_to_signal('DeviceRemoved',
                                           self.on_device_removed)

        self.udi_dict = {}
        self.modify_handler_dict = {}
        self.devicelist = DeviceList()

        self.__init_actors()

        if with_cold:
            coldplug = ColdPlugListener(self)
            coldplug.start()

        self.logger.info(_("Device Listener started"))
Esempio n. 5
0
    def __run(self):
        """ 
        [es] Método privado que inicia la ejecución
        -------------------------------------------------------------------
        [en] Exec starting private method
        """
        self.logger.info(_("ColdPlugListener thread started"))

        # [es] Obtenemos la lista de dispositivos conectados al sistema
        # [en] We get a list we all the attached devices
        dl = DeviceList()

        for ele in dl.get_added():
            try:
                self.logger.debug(_("Coldplug: DeviceAdded: ") + str(ele[0]))

                # [es] ele[0] contiene el UDI del dispositivo
                # [en] ele[0] contains the device UDI
                self.devicelistener.on_device_added(ele[0])
                time.sleep(0.5)
            except Exception, e:
                self.logger.warning(str(e))
Esempio n. 6
0
    def __init__(self):
        super(MainUI, self).__init__()
        self.resize(960, 540)

        self.setFont(QFont("Microsoft YaHei"))
        self.main_widget = QWidget()
        self.main_layout = QHBoxLayout(self.main_widget)
        self.main_layout.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
        self.setCentralWidget(self.main_widget)
        # ----------------------设置窗口标题----------------------
        self.setWindowTitle("test")  # 设置窗口名
        # ----------------------设备栏----------------------
        self.devices_chose_list = foldWidget()  # type: foldWidget
        # self.init_devices_list()  # 初始化device_list
        # self.main_layout.addWidget(self.devices_chose_list)
        # ----------------------设备功能栏----------------------
        self.device_widget = QWidget(objectName='device_tool_widget')
        # device_widget设置为水平布局
        self.device_layout = QHBoxLayout(self.device_widget)
        self.device_layout.setObjectName('deviceLayout')
        self.device_layout.setAlignment(QtCore.Qt.AlignTop
                                        | QtCore.Qt.AlignLeft)
        # device_widget添加到主布局
        self.main_layout.addWidget(self.device_widget)

        # ----------------设备信息_常用操作界面-----------------
        # 将设备信息界与设备常用功能界面,放置在一个水平布局中.
        self.device_info_tool_widget = QWidget(
            objectName='deviceInfoAndToolWidegt')

        self.device_info_tool_layout = QHBoxLayout(
            self.device_info_tool_widget)
        self.device_info_tool_layout.setObjectName('deviceInfoAndToolLayout')
        self.device_info_tool_layout.setAlignment(QtCore.Qt.AlignTop
                                                  | QtCore.Qt.AlignLeft)
        self.device_layout.addWidget(self.device_info_tool_widget)
        # ----------------------设备选择按钮----------------------
        self.device_chose_widget = QWidget(objectName='deviceChoseWidget')
        self.device_chose_layout = QVBoxLayout(self.device_chose_widget)
        self.device_chose_layout.setObjectName('deviceChoseLayout')
        self.device_info_tool_layout.addWidget(self.device_chose_widget)
        self.device_chose_widget.setMinimumSize(QSize(230, 390))
        self.device_chose_widget.setMaximumSize(QSize(230, 390))

        self.device_chose = deviceChoseWidget()
        self.device_chose_layout.addWidget(self.device_chose)
        self.device_chose.setMinimumSize(QSize(220, 75))
        self.device_chose.setMaximumSize(QSize(220, 75))
        # ----------------------设备信息界面----------------------
        self.device_info_widget = deviceInfoWidget()  # type: deviceInfoWidget
        self.device_info_widget.setObjectName('deviceInfoWidget')
        self.device_chose_layout.addWidget(self.device_info_widget)
        self.device_info_widget.setMinimumSize(QSize(220, 300))
        self.device_info_widget.setMaximumSize(QSize(220, 300))
        # ----------------------常用工具界面----------------------
        self.device_tool_widget = deviceToolWidget()
        self.device_info_tool_layout.addWidget(self.device_tool_widget)
        self.device_tool_widget.setMinimumSize(QSize(500, 380))
        self.device_tool_widget.setMaximumSize(QSize(500, 380))

        # ----------------------主界面---------------------------
        # self.device_chose_widget.setStyleSheet('background-color: rgb(85, 170, 0);')
        self.selected_device = None
        self.devices_list = DeviceList()
        # 设置回调函数
        self.devices_list_thread = None
        self.device_info_thread = None
        # self.init_devices_list_loop()
        self.init_install_app_hook()