Javascript 在 USB 流中编码“ENQ”ASCII 字符

问题描述

我正在使用 Node-USB 库:https://github.com/tessel/node-usb

输出方法

    transfer(data,callback(error)
    Perform a transfer to write data to the endpoint.)

我需要发送 05 4d。哪个是 ENQ M。

如果我做 .transfer("5M" --- 我得到 35 4D
如果我做 .transfer("ENQM" -- 我得到 45 4E 51 4D

如何获得将 ENQ M 编码为 05 4d 的传输?

解决方法

本示例中的

ENQ 并不表示三个字母 ENQ。它指的是 Unicode 控制字符 INQUIRY U+0005,它也恰好是 ASCII 中的 0x05。

要在字符串中表示,请使用 \u0005: .transfer("\u0005M");

为了可读性,你可以把它变成一个常量:

const ENQ = "\u0005";

// ...
foo.transfer(ENQ+"M");