#lua #char #hex #putty
#lua #символ #шестнадцатеричный #putty
Вопрос:
Я пытаюсь заставить extraputy выполнять эквивалент:
https://github.com/SolidRun/u-boot-armada38x/blob/u-boot-2013.01-15t1-clearfog/download-serial.sh
Я подумал, что могу использовать сценарий lua для прерывания последовательности загрузки, а затем отправить u-boot файл через xmodem.
Проблема в том, что когда я пытаюсь отправить с помощью extraputy, первое шестнадцатеричное значение изменяется с BB на C2 BB
lua_senddata(string.format("%c%c%c%c%c%c%c%c",0xbb,0x11,0x22,0x33,0x44,0x55,0x66,0x77), false);
Вывод:
Rec: C2 BB
Rec: 11
Rec: 22
Rec: 33
Rec: 44
Rec: 55
Rec: 66
Rec: 77
Я также написал двоичный файл и попытался прочитать его, а затем отправить, но столкнулся с той же проблемой.
function readAll(file)
local f = io.open(file, "rb")
local content = f:read("*all")
f:close()
return content
end
local data = readAll([[C:testWakeUpData_Send.bin]])
lua_senddata(data, false)
Мое лучшее предположение — это преобразование в Char, что добавляет дополнительный C2 в начало блока данных.
Использование: http://www.serialporttool.com/CommEcho.htm для тестирования.
Любая помощь будет оценена.
Ответ №1:
Оказывается, кодировка текста, установленная в UTF-8, переводила код символа с использованием кодовой таблицы UTF-8 в C2 BB.
В putty я изменил набор символов Window> Translation> Remote на «Использовать кодировку шрифта», и он записал шестнадцатеричные коды непосредственно так, как они были переданы ему.