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