Wie erholt man sich von einem Stand in chrome.usb?

9

Ich sende eine Bulk-Übertragung aus und stalle sie in das Gerät (ich schreibe den Code an beiden Enden des Kabels), um die Aktion abzubrechen. Ich sende einen selbst erstellten Kontrolltransfer SET_FEATURE ENDPOINT_HALT an den Endpunkt und wenn der Abbruch abgeschlossen ist, führe ich einen CLEAR_FEATURE ENDPOINT_HALT durch, um den Endpunkt wiederherzustellen und ihn erneut zu verwenden. Im eingebetteten Debugger kann ich bestätigen, dass es im Gerät gelöscht wurde. Aber im Browser wird jede nachfolgende Übertragung auf dem Endpunkt mit der sehr nicht hilfreichen Nachricht "Übertragung fehlgeschlagen" (Code 1) enden.

%Vor%

Nach dem, was ich im Internet gefunden habe, hat libusb eine spezielle Funktion, um einen Stand auf der Host-Seite zu löschen Informieren Sie den Kernel, dass der Endpunkt wiederhergestellt wurde, und dies sollte in seinen internen Strukturen widergespiegelt werden. Diese Funktion ist in chrome.usb nicht verfügbar.

Gibt es eine Möglichkeit, sich von einem Stand in Chrome zu erholen? Oder gibt es einen alternativen, wiederherstellbaren Weg vom Gerät, um eine fortlaufende Massenübertragung zu stoppen?

Ich verwende Mac OS X und Chrome Canary .

    
nraynaud 17.12.2013, 23:35
quelle

1 Antwort

1

Sie können einen InterruptTransfer auf Ihre catched Stall Nachricht versuchen

%Vor%     
RecycleRobot 04.06.2014 13:42
quelle