我有一个甚高频无线电通过串口连续发送状态信息,我需要将我作为十六进制数据存储的消息存储在文本文件中
我尝试了如下所示的hexdump命令,我从高清无线电获得的数据是正确的,但是这个脚本的问题是,当我执行它时,它不会结束,直到我按下ctrl-c
d -A n -t x1 -w128 /dev/ttyS0 > file.txt
Run Code Online (Sandbox Code Playgroud)
所以我尝试了另一个命令,即read命令如下:
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
Run Code Online (Sandbox Code Playgroud)
但存储在file2.txt中的数据不正确.
我从收音机收到的信息不是按照无线电协议文件我可以解释的格式.所以,当我说数据不正确时,我的意思是消息无法解释(它是随机收到的)
请注意我在执行两个脚本之前设置了串口,如下所示:
stty -g /dev/ttyS0 raw
stty -F /dev/ttyS0 9600
Run Code Online (Sandbox Code Playgroud)
所以,请帮我解决这个问题.或者给了我另一种从串口读取的方法.
问候,