Chrome experimental USB api no encuentra ningún dispositivo conectado

Quiero desarrollar una extensión de Chrome usando la API experimental USB. Nunca logré encontrar mi dispositivo USB conectado. Mi punto de partida para esta extensión es este código: ejemplo de perilla Cambié el vid y el pid para que coincidieran con mi dispositivo usb pero sin ningún éxito. Probé en Windows con Canary y el canal de desarrollo.

Al ver que no tenía ningún resultado, modifiqué el manifiesto a:

{
    "name": "USB Spinner",
    "version": "0.1",
    "manifest_version": 2,
    "app": {
        "background": {
            "scripts": ["background.js"]
        }
    },
    "permissions": [
        "app.window",
        "experimental",
        "usb"
    ]
}

Agregué el campo ans usb experimental en permisos. Pero todavía no hay resultados.

Mi código para acceder al dispositivo USB es:

var VENDOR_ID = 0x1234;
var PRODUCT_ID = 0x0006;

var usb = chrome.experimental.usb;

var deviceOptions = {
    onEvent: function(usbEvent) {
    }
};

usb.findDevice(
    VENDOR_ID,
    PRODUCT_ID,
    deviceOptions,
    function(device) {
        if (!device) {
            console.log('device not found');
            return;
        }
        console.log('Found device: ' + device.handle);
    }
);

Cualquier ayuda sería realmente apreciada.

Qué me estoy perdiendo ?

preguntado el 31 de julio de 12 a las 10:07

¿Ha habilitado las API experimentales en chrome://flags? -

Sí, la extensión experimental está habilitada -

@samux, su manifiesto es correcto. No se puede acceder a algunos dispositivos directamente, porque el kernel del sistema operativo los toma e interpreta antes de que el código de espacio del usuario tenga la oportunidad de hacerlo (por ejemplo, dispositivos HID en MacOSX). La compatibilidad con Chromium USB se basa en libusb (1.0.8 en Canary actual). Si desea probar si su dispositivo debe estar visible para su aplicación Chrome, puede probar con cualquier cliente basado en libusb. -

Por cierto, si desea publicar el ID de proveedor y el ID de producto, es más fácil ayudarlo. -

Desarrollé mi propio dispositivo USB (vid = 0x1234 y pid = 0x0006). Es un dispositivo HID. Puedo enviar y leer datos hacia y desde el dispositivo usando pyUSB con libusb (1.2.6) como backend. También probé con una memoria USB (vid = 0x13FE y pid = 0x1D00) sin éxito. -

1 Respuestas

Como dice mangini, chrome.usb no puede acceder a los dispositivos de clase HID porque el sistema operativo subyacente los adquiere antes de que la implementación de la API tenga la oportunidad. Afortunadamente, estamos arreglando eso. Seguir el error de seguimiento para agregar soporte USB HID y proporcione comentarios sobre la idoneidad de la API y la calidad de la implementación.

respondido 06 mar '14, 17:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.