У меня есть функция 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.
Я надеюсь, что кто-то может направить меня в правильном направлении. Спасибо за любой ответ!