1

我在 JavaScript 中有一个 TypedArray 字节,我需要将其转换为二进制,以便使用chrome.usb.controlTransfer.

简化示例:

var message = new Uint8Array(3);
message[0] = 1;
message[1] = 2;
message[3] = 3;

var transferInfo = {
    direction: 'out',
    recipient: 'device',
    requestType: 'standard',
    request: 0,
    value: 0,
    index: 0,
    data: message
};

// 'device' is a valid handle to a device found with chrome.usb.findDevices
chrome.usb.controlTransfer(device, transferInfo, function(r) { console.log(r); });

这给了我错误:

未捕获的错误:参数 2 的值无效。属性“数据”:预期为“二进制”但得到“对象”。

我不确定如何从Uint8ArrayJavaScript 中被认为是“二进制”的任何内容中获取。这可能是 chrome 特有的,但我也找不到任何以这种方式调用此函数的示例。

我看过Mozilla 文档,但这似乎是特定于通过 XMLHttpRequest 发送数据的。

4

1 回答 1

1

看来我错过了Chrome 文档中的示例。

var message = new Uint8Array(3);
message[0] = 1;
message[1] = 2;
message[3] = 3;

var binaryMessage = message.buffer;
于 2013-10-07T15:45:30.947 回答