在JavaScript中将Byte数组转换为Binary

时间:2013-10-07 15:33:56

标签: javascript google-chrome-extension typed-arrays

我在JavaScript中有一个TypedArray字节,我需要将其转换为二进制,以便使用chrome.usb.controlTransfer发送到Chrome扩展程序中的USB设备。

简化示例:

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的值无效。属性“数据”:   期望'二元'但得到'对象'。

我不确定如何从Uint8Array到JavaScript中被认为是'二进制'的内容。这可能是特定于chrome的,但我找不到以这种方式调用此函数的任何示例。

我见过Mozilla Documentation,但这似乎特定于通过XMLHttpRequest发送数据。

1 个答案:

答案 0 :(得分:1)

似乎我错过了示例within the Chrome documentation

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

var binaryMessage = message.buffer;