我在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发送数据。
答案 0 :(得分:1)
似乎我错过了示例within the Chrome documentation。
var message = new Uint8Array(3);
message[0] = 1;
message[1] = 2;
message[3] = 3;
var binaryMessage = message.buffer;