我有一个甚高频无线电通过串口连续发送状态信息,我需要将这些信息作为十六进制数据存储在文本文件中
我尝试了如下所示的hexdump命令,而且我从vhf收音机得到的数据是正确的,但是这个脚本的问题是,当我执行它时,它不会结束,直到我按下ctrl-c < / p>
d -A n -t x1 -w128 /dev/ttyS0 > file.txt
所以我尝试了另一个命令,它是一个读命令,如下所示:
COUNTER=0
while [ $COUNTER -lt 10 ]; do
read -r -t1 -N128 DATA < /dev/ttyS0
echo $DATA >> file1.txt
od -A n -t x1 -w128 file1.txt >> file2.txt
let COUNTER=COUNTER+1
done
但是存储在file2.txt中的数据不正确。
我从收音机收到的信息不是按照无线电协议文件解释的格式。所以当我说数据不正确时,我的意思是该消息无法解释(随机收到)
请注意,我在执行两个脚本之前设置了串口,如下所示:
stty -g /dev/ttyS0 raw
stty -F /dev/ttyS0 9600
所以,请帮我解决这个问题。或者给了我另一种从串口读取的方法。
此致
答案 0 :(得分:5)
问题解决了:)
我尝试通过将-N设置为KB来使用hexdump命令,并且它成功运行
它从串口读取直到1000字节并停止
od -A n -N KB -t x1 -w128 /dev/ttyS0 > /tmp/filename.txt
所以,谢谢你们的合作。我非常感兴趣。