所以我需要一个可以在嵌入式 Linux(OpenWRT 8.09)上运行的程序,通过命令行,我需要能够传输 8N1,我需要以十六进制(而不是 ascii)传输,最好也以十进制传输。
据我所知微软和微微通信不要传输十六进制。
编辑说明:我想以十六进制形式将数据输入程序,并让其发送每个 2 位十六进制对的二进制(8N1)表示。
答案1
尝试使用 CuteCom: http://cutecom.sourceforge.net/
它仍然是一个失败的项目,但是它运行良好,并且能够显示字符的十六进制表示。
但是它是图形化的,所以你不能在嵌入式 Linux 上使用它(如果你没有 X 支持和 QT4)。
答案2
如果程序不允许您以十六进制传输,则有其他解决方法。您可以通过管道传输信息,od
将其转换为十六进制,然后再将其发送到 microcom 或 picocom。
例如,将“一些文本”转换为十六进制:
echo "一些文本" | od -tx1 | cut -c 8- | tr -d " "
答案3
我认为ssterm
应该对你有用。它是用 Python 编写的(可能不太好),但它是基于控制台的,并且支持十六进制输入和输出。
你可以像这样启动它:
ssterm /dev/ttyAMA0 -b 9600 -i hex -o split
然后它应该从标准输入读取十六进制字符,将每两个字符转换为字节,并将该字节发送到串行。
它还将从设备读取数据并以hexdump
类似的方式显示:左边是十六进制表示,右边是 ASCII 表示。