通过extraPuTTY发送十六进制值,添加错误数据

时间:2016-10-05 03:58:33

标签: lua char hex putty

我尝试使ExtraPuTTY做相当于:

https://github.com/SolidRun/u-boot-armada38x/blob/u-boot-2013.01-15t1-clearfog/download-serial.sh

我想我可以使用lua脚本来中断启动序列,然后通过xmodem发送u-boot文件。

问题是当我尝试使用ExtraPuTTY发送时,第一个十六进制值从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:\test\WakeUpData_Send.bin]])
lua_senddata(data, false)

我最好的猜测是转换为Char,将额外的C2添加到数据块的开头。

使用:http://www.serialporttool.com/CommEcho.htm进行测试。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

事实证明,文本编码设置为UTF-8正在使用UTF-8代码表将字符代码转换为C2 BB。

在putty我更改了Window>翻译>远程字符集设置为'使用字体编码'它直接写成十六进制代码传递给它。