2013-12-17 3 views
9

Ich sende eine Bulk-Übertragung aus, und ich stalle es 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.Wie erholt man sich von einem Stand in chrome.usb?

if (errorCode == 4) { 
    var ENDPOINT_HALT = 0; 
    var CLEAR_FEATURE = 0x01; 
    controlTransfer(currentDevice, {direction: 'out', recipient: 'endpoint', requestType: 'standard', 
    request: CLEAR_FEATURE, value: ENDPOINT_HALT, index: 1, data: new ArrayBuffer(0)}, genericErrorFilter()); 
} 

Von dem, was ich im Internet gefunden hat libusb eine spezielle Funktion einen Stall auf der Host-Seite für das Clearing, dem Kernel zu sagen, dass der Endpunkt gewonnen wurde, und es soll, dass in ihren internen Strukturen widerspiegelt. 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 benutze Mac   OS   X und Chrome Canary.

+0

Ich denke, dass ich es geschafft, nach einem Stall zu weitermachen, indem ein chrome.usb.resetDevice tun(), gefolgt von einer vollständigen Wiedererwerb der Vorrichtung . – nraynaud

+5

Das Verhältnis edits/answers ist über dem Dach, ich werde bald eine Frage Shakespeare Qualität unbeantwortet haben. – nraynaud

Antwort

1

Sie können eine interruptTransfer versuchen auf Ihre catched Stall Nachricht

chrome.experimental.usb.interruptTransfer(integer device, 
string direction, 
integer endpoint, 
string data, 
function callback) 
Verwandte Themen