如何在nodejs中将字符串'0x900x100xe8'转换为缓冲区?

t0m*_*aka 1 node.js

我正在开发一个项目,其中微控制器设备将数据发送到网络服务器。

我创建了一个网页,用户可以在其中使用表单向设备发送命令,并可以在同一页面上看到设备的响应。

问题是设备只理解十六进制命令。所以我需要从页面发送十六进制命令,例如

0x800xe80x10

现在我可以从网页上的表单读取用户提交的命令,但我无法将其按原样转换为十六进制。我读过有关 Buffer 的内容,但它将每个 ASCII 字符更改为十六进制。所以0x80给出类似的东西

30 78 38 30

而我想要的是

80

谢谢

log*_*yth 5

缓冲区可以传递十六进制数据,它们只是不期望0x在每个字节之前,所以你可以这样做:

var userHex = '0x800xe80x10';
var buf = new Buffer(userHex.replace(/0x/g, ''), 'hex');
// buf == <Buffer 80 e8 10>
Run Code Online (Sandbox Code Playgroud)