2013-12-17 18 views
9

Toplu aktarım gönderiyorum ve eylemi iptal etmek için cihazda saklıyorum (kablonun her iki ucuna da kodu yazarım). Son noktaya SET_FEATURE ENDPOINT_HALT evden kontrol transferi gönderiyorum ve iptal tamamlandığında, son noktayı geri almak ve tekrar kullanmak için CLEAR_FEATURE ENDPOINT_HALT ile takip ediyorum. Yerleşik hata ayıklayıcısında, cihazda temizlendiğini onaylayabilirim. Ancak, tarayıcıda, son noktadaki herhangi bir sonraki aktarım, çok yardımcı olmayan "Aktarım başarısız oldu" iletisiyle sona erer (kod 1). Ben internette bulunan kadarıylachrome.usb'deki duraktan nasıl kurtarılır?

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()); 
} 

, libusb uç nokta kurtarıldı çekirdek anlatmak için, ev sahibi tarafında bir tezgâh takas için özel bir işlevi vardır ve bu iç yapılarında bunu yansıtmalıdır. Bu işlev chrome.usb dosyasında açık değildir.

Chrome'da duraktan kurtulmanın bir yolu var mı? Ya da devam eden bir toplu aktarımın durdurulması için cihazdan alternatif bir kurtarılabilir yol var mı? Mac   OS   X ve Chrome Canary kullanıyorum.

+0

Ben cihazın tam yeniden alımını takiben) bir chrome.usb.resetDevice (yaparak bir durak sonra devam başardı düşünüyorum . – nraynaud

+5

Düzenleme/anonim oranı tavanın üzerindeydi, yakında bir Shakespeare kalitesinde yanıtlanmamış bir soru olacak. – nraynaud

cevap

1

Sen catched durak mesaj üzerinde bir interruptTransfer deneyebilirsiniz

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