我有一个甚高频收音机,它通过串行端口连续发送状态消息,我需要将我必须作为十六进制数据存储在文本文件中的消息
我尝试了如下所示的 hexdump 命令,并且我从 vhf 无线电获得的数据是正确的,但是这个脚本的问题是当我执行它时,它直到我按 ctrl-c 才结束
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
所以,请帮我解决这个问题。或者给了我另一种从串口读取的方法。
问候,