我正在使用USB-RLY08-B中继设备(datasheet)。我可以使用以下命令来打开/关闭继电器开关:
echo -n -e '\x74' > /dev/ttyACM0
但是要获取继电器状态,我需要将十六进制5B代码传递给继电器。问题是我无法弄清楚如何在echo命令后读回响应。
我尝试了
read X < /dev/ttyACM0
但它挂了。
答案 0 :(得分:0)
read
等待从文件或设备中读取整行:
来自the MAN page:
读取-从标准输入中读取一行并将其拆分为字段。
由于设备仅返回一个字节,read
挂起,等待换行。
如果您使用-n
或-N
:
read -n 1 X < /dev/ttyACM0
然后read
将读取第一个字节,然后退出。
-n
和-N
的行为略有不同,但这可能与您的应用程序无关:
-n nchars return after reading NCHARS characters rather than waiting
for a newline, but honor a delimiter if fewer than NCHARS
characters are read before the delimiter
-N nchars return only after reading exactly NCHARS characters, unless
EOF is encountered or read times out, ignoring any delimiter