2013-12-17 33 views
9

Tôi đang gửi một chuyển số lượng lớn và tôi sẽ chặn nó trong thiết bị (tôi viết mã trên cả hai đầu của cáp) để hủy thao tác. Tôi đang gửi một điều khiển được thực hiện tại nhà chuyển SET_FEATURE ENDPOINT_HALT đến điểm cuối và khi hủy bỏ hoàn tất, tôi theo dõi với một CLEAR_FEATURE ENDPOINT_HALT để phục hồi điểm cuối và sử dụng nó một lần nữa. Trong trình gỡ rối nhúng, tôi có thể xác nhận nó đã bị xóa trong thiết bị. Nhưng trong trình duyệt, bất kỳ chuyển tiếp theo nào trên điểm cuối sẽ kết thúc với thông báo "Chuyển không thành công" vô ích (mã 1).Cách khôi phục từ một gian hàng trong 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()); 
} 

Từ những gì tôi tìm thấy trên Internet, libusb có một chức năng đặc biệt cho thanh toán bù trừ một gian hàng ở phía máy chủ, để nói kernel rằng thiết bị đầu cuối đã được phục hồi, và nó sẽ phản ánh rằng trong cấu trúc nội bộ của mình. Hàm này không được hiển thị trong chrome.usb.

Có cách nào để khôi phục từ một gian hàng trong Chrome không? Hoặc là có một cách phục hồi thay thế từ thiết bị để ngăn chặn một chuyển số lượng lớn liên tục?

Tôi đang sử dụng máy Mac   OS   X và Chrome Canary.

+0

Tôi nghĩ rằng tôi cố gắng tiếp tục sau một gian hàng bằng cách thực hiện một chrome.usb.resetDevice() tiếp theo là một đầy đủ tái mua lại của thiết bị . – nraynaud

+5

Tỷ lệ chỉnh sửa/anwers là trên mái nhà, tôi sẽ sớm có một câu hỏi chưa được trả lời của Shakespeare. – nraynaud

Trả lời

1

Bạn có thể thử một interruptTransfer trên nhắn gian hàng đánh bắt của bạn

chrome.experimental.usb.interruptTransfer(integer device, 
string direction, 
integer endpoint, 
string data, 
function callback) 
Các vấn đề liên quan