【发布时间】:2016-04-22 15:32:52
【问题描述】:
我有一个 javascript 函数可以将 HEX 转换为 ASCII,然后将其输出到串行连接。 但是在监控串口连接时,我可以看到转换后的输出不正确。
我有这个 javascript 代码:
function hex2a(hexx) {
var hex = hexx.toString();//force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}
return {payload: hex2a(msg.payload)}; // returns '2460'
例如,我想转换这个 HEX :
0340209c
但是,在监控串行连接时,我发现实际发送的是这样的:
03 40 20 c2 9c
因此设备以故障消息进行响应。 我在这里挠头。一些十六进制命令确实可以正确转换(例如 0340615b )。 我通过 node-red 输出到串行连接。 输出节点似乎只接受 ascii 文本而不接受 HEX。
我希望有人能指引我正确的方向。 感谢您的回复!
【问题讨论】:
-
你到底传递给你的函数什么?结果是什么?想要的结果是什么?
-
对不起,我传递了我给出的字符串作为示例:0340209c 我只想看到它转换为 ascii,当我监控串行连接时它应该输出“03 40 20 9c”但是现在它输出:“03 40 20 c2 9c”。
-
换句话说,您只想将该字符串拆分为两个字符块?
标签: javascript hex ascii node-red