def configure_hardware(self, device):
        from vmc.common.hardware.base import DeviceResolver
        def identify_dev_cb(model):
            self.device = device

            DeviceProfileCache.store(device)
            config.set_last_device(device.cached_id)

            hook_it_up(self.splash, DeviceListener(self.device), self.device)

        def identify_dev_eb(failure):
            failure.trap(SerialException)
            
            from vmc.gtk import dialogs
            info = dict(name=device.name, vmc=APP_LONG_NAME)
            message = _('Device setup not completed')
            details = _("""
%(vmc)s cannot connect with the selected device (%(name)s).
""") % info
            dialogs.open_warning_dialog(message, details)
            config.set_last_device('')
            self.detect_hardware()

        d = DeviceResolver.identify_device(device)
        d.addCallback(identify_dev_cb)
        d.addErrback(identify_dev_eb)
Esempio n. 2
0
        def process_device_added():
            properties = self.get_devices_properties()
            cached_id = None

            for device in DeviceProfileCache.get_cached_devices():
                if device in properties:
                    cached_id = device.cached_id

            for plugin in PluginManager.get_plugins(IDBusDevicePlugin):
                if plugin in properties:
                    try:
                        plugin.setup(properties)
                        if cached_id:
                            plugin.cached_id = cached_id
                        if (plugin.udi in self.udi_device):
                            continue
                        self.udi_device[str(plugin.udi)] = plugin
                        d = DeviceResolver.identify_device(plugin)

                        def select_and_configure(name):
                            try:
                                plugin = \
                                  PluginManager.get_plugin_by_remote_name(name)
                                plugin.setup(properties)
                                self.udi_device[str(plugin.udi)] = plugin
                                self.device_list.append(plugin)
                                self.view.device_added(plugin)
                            except Exception, e:
                                print e

                        d.addCallback(select_and_configure)
                    except Exception, e:
                        pass
Esempio n. 3
0
    def configure_hardware(self, device):
        from vmc.common.hardware.base import DeviceResolver

        def identify_dev_cb(model):
            self.device = device

            DeviceProfileCache.store(device)
            config.set_last_device(device.cached_id)

            hook_it_up(self.splash, DeviceListener(self.device), self.device)

        def identify_dev_eb(failure):
            failure.trap(SerialException)

            from vmc.gtk import dialogs
            info = dict(name=device.name, vmc=APP_LONG_NAME)
            message = _('Device setup not completed')
            details = _("""
%(vmc)s cannot connect with the selected device (%(name)s).
""") % info
            dialogs.open_warning_dialog(message, details)
            config.set_last_device('')
            self.detect_hardware()

        d = DeviceResolver.identify_device(device)
        d.addCallback(identify_dev_cb)
        d.addErrback(identify_dev_eb)
        def process_device_added():
            properties = self.get_devices_properties()
            cached_id = None

            for device in DeviceProfileCache.get_cached_devices():
                if device in properties:
                    cached_id = device.cached_id

            for plugin in PluginManager.get_plugins(IDBusDevicePlugin):
                if plugin in properties:
                    try:
                        plugin.setup(properties)
                        if cached_id:
                            plugin.cached_id = cached_id
                        if (plugin.udi in self.udi_device):
                            continue
                        self.udi_device[str(plugin.udi)] = plugin
                        d = DeviceResolver.identify_device(plugin)
                        def select_and_configure(name):
                            try:
                                plugin = \
                                  PluginManager.get_plugin_by_remote_name(name)
                                plugin.setup(properties)
                                self.udi_device[str(plugin.udi)] = plugin
                                self.device_list.append(plugin)
                                self.view.device_added(plugin)
                            except Exception, e:
                                print e
                        d.addCallback(select_and_configure)
                    except Exception, e:
                        pass
 def get_plugin_for_remote_dev(self, speed, dport, cport):
     dev = UnknownDevicePlugin()
     from vmc.common.hardware.base import Customizer
     dev.custom = Customizer()
     dev.dport, dev.cport, dev.baudrate = dport, cport, speed
     d = DeviceResolver.identify_device(dev)
     d.addCallback(self.get_plugin_from_name, dev)
     return d
 def get_plugin_for_remote_dev(self, speed, dport, cport):
     dev = UnknownDevicePlugin()
     from vmc.common.hardware.base import Customizer
     dev.custom = Customizer()
     dev.dport, dev.cport, dev.baudrate = dport, cport, speed
     d = DeviceResolver.identify_device(dev)
     d.addCallback(self.get_plugin_from_name, dev)
     return d
 def get_devices(self):
     devices = []
     try:
         found_plugins = self._get_dbus_devices()
     except:
         raise
     
     # found plugins might be potentially full of plugins that share the
     # vendor and product id (like Huawei's E220/E270/E272), we'll have to
     # do some cleaning
     while found_plugins:
         plugin = found_plugins.pop(0)
         model = waitForDeferred(DeviceResolver.identify_device(plugin))
         yield model; model = model.getResult()
         
         foundplugin = self.get_plugin_from_name(model, plugin)
         if foundplugin and foundplugin not in devices:
             devices.append(foundplugin)
     
     yield devices; return
Esempio n. 8
0
def get_unknown_device_plugin(dataport, controlport=None, baudrate=115200,
        name='Unknown Device', cached_id=None):
    """
    Returns a C{UnknownDevicePlugin} instance configured with the given params
    """
    from vmc.common.hardware.base import Customizer, DeviceResolver
    plugin = UnknownDevicePlugin()
    plugin.custom = Customizer()
    plugin.dport = dataport
    plugin.cport = controlport
    plugin.baudrate = baudrate
    plugin.name = name
    plugin.cached_id = cached_id
    def identify_device_cb(model):
        plugin.__remote_name__ = model
        return plugin
    
    d = DeviceResolver.identify_device(plugin)
    d.addCallback(identify_device_cb)
    return d
    def get_devices(self):
        devices = []
        try:
            found_plugins = self._get_dbus_devices()
        except:
            raise

        # found plugins might be potentially full of plugins that share the
        # vendor and product id (like Huawei's E220/E270/E272), we'll have to
        # do some cleaning
        while found_plugins:
            plugin = found_plugins.pop(0)
            model = waitForDeferred(DeviceResolver.identify_device(plugin))
            yield model
            model = model.getResult()

            foundplugin = self.get_plugin_from_name(model, plugin)
            if foundplugin and foundplugin not in devices:
                devices.append(foundplugin)

        yield devices
        return
Esempio n. 10
0
def get_unknown_device_plugin(dataport,
                              controlport=None,
                              baudrate=115200,
                              name='Unknown Device',
                              cached_id=None):
    """
    Returns a C{UnknownDevicePlugin} instance configured with the given params
    """
    from vmc.common.hardware.base import Customizer, DeviceResolver
    plugin = UnknownDevicePlugin()
    plugin.custom = Customizer()
    plugin.dport = dataport
    plugin.cport = controlport
    plugin.baudrate = baudrate
    plugin.name = name
    plugin.cached_id = cached_id

    def identify_device_cb(model):
        plugin.__remote_name__ = model
        return plugin

    d = DeviceResolver.identify_device(plugin)
    d.addCallback(identify_device_cb)
    return d
 def __init__(self):
     super(HardwareRegistry, self).__init__()
     self.resolver = DeviceResolver()