gpt4 book ai didi

bash - 从串口读取并以十六进制存储

转载 作者:行者123 更新时间:2023-11-29 09:23:25 25 4
gpt4 key购买 nike

我有一个 vhf radio ,它通过串行端口连续发送状态消息,我需要将我得到的消息作为十六进制数据存储在文本文件中

我尝试了如下所示的 hexdump 命令,我从 vhf radio 获得的数据是正确的,但是这个脚本的问题是当我执行它时,它直到我按下 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中存储的数据不正确。

我从 radio 收到的信息不是我可以按照 radio 协议(protocol)文件解释的格式。所以当我说数据不正确时,我的意思是无法解释该消息(它是随机接收的)

请注意,在执行两个脚本之前我已经设置了串行端口,如下所示:

stty -g /dev/ttyS0 raw
stty -F /dev/ttyS0 9600

所以,请帮我解决这个问题。或者给了我另一种从串行端口读取的方法。

问候,

最佳答案

问题解决了:)

我尝试通过将 -N 设置为 KB 来使用 hexdump 命令并且它成功运行

它从串口读取到 1000 字节后停止

od -A n -N KB -t x1 -w128 /dev/ttyS0 > /tmp/filename.txt

所以,谢谢你们的合作。我真的很感激。

关于bash - 从串口读取并以十六进制存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32822719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com