2017-09-09 1 views
0

Ich hoffe, die neu veröffentlichte WebUSB API zu verwenden, um mit einem Gerät zu kommunizieren, das ich entwickelte. Dieses Gerät verwendet einen FT230X-USB-Seriell-Chip. Die Treiber dieses Chips sind auf den meisten Geräten installiert und die Kommunikation mit diesem Chip funktioniert reibungslos. Jetzt möchte ich versuchen, über den Browser mit ihm zu kommunizieren. Ich begann mit dem Download dieses Beispiels für arduino: webusb arduino. Ich habe den Filter auf {'vendorId': 0x0403, 'productId': 0x6015} gesetzt, was das Gerät anzeigt. Ich bin in der Lage, das Gerät zu finden, aber wenn ich versuche, eine Verbindung herzustellen, erhalte ich den Fehler: NotFoundError: Gerät nicht verfügbar.WebUSB mit FT230x seriellem Chip

Gibt es eine Möglichkeit, spezifischere Fehler zu finden? Sollte ich eine andere Schnittstelle einrichten oder muss ich andere Konfigurationen ändern? Ich bin neu bei USB-Treibern, also wäre jede Hilfe, die mich auf meinen Weg bringt, nett. Ich habe die (kurze) erste Dokumentation gelesen here. Ich benutze Ubuntu 16.04

Antwort

2

Der FT230X USB-zu-Seriell-Chip bietet keine USB-Schnittstelle, die Chrome die Kontrolle übernehmen kann. Dies liegt daran, dass die Treiber für diesen Chip mit Ihrem Betriebssystem verfügbar sind. Wenn der serielle Treiber angeschlossen ist, kann Chrome das Gerät nicht über die WebUSB-API für Ihre Seite verfügbar machen.

Das Arduino-Beispiel programmiert den Atmel 32u4-Chip auf vielen Arduino- und Arduino-kompatiblen Boards, um eine zusätzliche USB-Schnittstelle hinzuzufügen, die von keinem Systemtreiber beansprucht wird und daher für Chrome verfügbar ist.

Einige Entwickler hatten auch Erfolg, wenn sie entweder den Hersteller und die Produkt-ID ihres Geräts änderten, so dass die OS-Treiber dies nicht beanspruchen oder indem sie den Treiber manuell enthielten.

+0

Das ist sinnvoll, die Schnittstelle stellt jedoch im Betriebssystem einen COM-Port oder Tty bereit. Wäre es möglich, sich mit diesem zu verbinden, vielleicht mit einer anderen API? Ich habe gerade dieses Github-Thema über das Thema gefunden, https://github.com/WICG/webusb/issues/56, ein gutes Buch für alle Interessierten. Gibt es eine Lösung in der Pipeline? Ich habe das Gefühl, dass dies für viele Menschen ein großer Vorteil wäre. Danke für die Antwort! –

+0

einige relevante Informationen zum Ändern der Hersteller- oder Produkt-ID: http://www.ftdichip.com/Support/Documents/AppNotes/AN_124_User_Guide_For_FT_PROG.pdf https://macrofab.com/blog/ft-prog-programming-ft230x/ –

+0

Es gibt ein ähnliches Problem mit USB-HID-Geräten. Die beste Lösung für Geräte, die nicht geändert werden können, ist eine separate API, WebSerial wurde vorgeschlagen, aber kein Browser-Anbieter hat es implementiert. Eine Alternative ist die Implementierung von WebUSB, um serielle und HID-Anforderungen zu entpacken und sie an den seriellen oder HID-Treiber des Betriebssystems zu senden, so dass es funktioniert, unabhängig davon, auf welcher Ebene die Anforderung gestellt wird. Als ich ein anderes Thema kommentierte, denke ich, dass dies ein chaotischer Hack ist: https://github.com/WICG/webusb/issues/29#issuecomment-273364614 –

Verwandte Themen