1
我有發送的狀態消息時間可持續通過串口VHF頻帶的,我需要,我一定是在存儲爲十六進制的數據在一個文本文件十六進制
我的消息如下圖所示,而我從甚高頻電臺獲得了數據試圖hexdump都命令是正確的,但是,當我執行它,它不會結束與該腳本的問題,直到我按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
所以,請幫我弄清楚這一點。或者給我另一種方式來讀取串口。
問候,
所以你想腳本終止時?一旦有一定數量的字節到達,或? –
是的,我希望一旦接收到一定數量的字節就終止腳本。收音機的狀態信息約爲45字節,但由於收音機正在不斷髮送,我想確保收到了一個完整的狀態信息。所以可以說我需要接收100個字節然後終止腳本。 – Latifa
對於獲取所需數據的第一條命令,能否請您在問題中發佈數據樣本(比如說100個字節)? –