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")
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))
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"))
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))
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()