0
我嘗試向硬件發送一個命令並想要返回結果。我確信當我發送如下命令時:echo "read" > /dev/ttyS0
,命令將被執行。抓住反饋時出現問題。爲此,我想使用這個腳本:在bash腳本中從/ dev/ttyS0讀取時出現奇怪的結果
#!/bin/bash
echo "READ" > /dev/ttyS0
#stty -F /dev/ttyS0 9600
stty -F /dev/ttyS0 raw
stty -F /dev/ttyS0 -echo
STR="result "
while read -r -s -t 1 -n 1 c && [[ $c != '>' ]]
do
STR+=$c
done < /dev/ttyS0
echo $STR
結果應該是這樣的。
Level 0
001,001, 002,002;>
但是當我執行腳本時,有時我得到正確的結果,但大多數時候我沒有得到任何回報。
也許超時時間太短?檢查「讀取」命令返回的內容。如果代碼超過128,則超時。 – pkalinow
'read -r -t 20 -d'>'STR dev/ttyS0'可能更簡單;那個輸出看起來不像是一次會在一個字節中流淌的東西。 – chepner
超時並不是問題,較短的建議也不起作用。 – kyromoto