bash从串口读取超时

时间:2017-11-29 11:05:12

标签: bash serial-port

我正在尝试Linux serial port listener and interpreter?

之类的东西

但是,我想要超时

#!/bin/bash
stty -F /dev/ttyUSB1 300 cs7 parenb -parodd
echo -n -e 'Sending '
echo -n -e "\x2F\x3F\x21\x0D\x0A">/dev/ttyUSB1
read LINE -r -t1 </dev/ttyUSB1
echo -n "Read "
echo $LINE

如果我没有得到输入,我想继续;它只是挂起。

(它是读取功率计https://electronics.stackexchange.com/questions/305745/ir-data-from-landisgyr-e350的输入程序的一部分)

1 个答案:

答案 0 :(得分:0)

基于this answer,我认为您可以使用timeout功能获得您想要的内容。
您可能需要进行一些格式化并将文件重定向到stdout,就像在this answer中一样,所以它看起来像这样:

LINE="$(timeout 1 cat /dev/ttyUSB1)"  
echo -n "Read "  
echo $LINE

您也可以使用睡眠和杀戮的组合,例如in here