У меня есть функция javascript для преобразования из HEX в ASCII, а затем вывод ее на последовательное соединение. Однако, наблюдая за последовательным подключением, я вижу, что преобразованный вывод неверен.Неправильное преобразование Hex to ascii
У меня есть этот яваскрипта код:
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). Я выводю на последовательное соединение через узел-красный. Выходной узел только, кажется, принимает текст ascii, а не HEX.
Я надеюсь, что кто-то может вести меня в правильном направлении. Спасибо за любой ответ!
Что вы точно передать вашей функции? Что вы получаете в результате и какой желаемый результат? – hindmost
Извините, Я передаю строку, которую я привел в качестве примера: 0340209c Я просто хочу, чтобы это преобразованное в ascii, и когда я контролирую последовательное соединение, он должен выводить «03 40 20 9c» Но теперь он выводит: «03 40 20 c2 9c ". – Bart
Другими словами, вы просто хотите разбить эту строку на два char-chunks? – hindmost