Отправка шестнадцатеричных значений через extraputy с добавлением ошибочных данных

#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 на «Использовать кодировку шрифта», и он записал шестнадцатеричные коды непосредственно так, как они были переданы ему.