一尘不染

Linux串行端口侦听器和解释器?

linux

我正在为项目使用串行设备,而我要在PC端完成的工作是侦听串行设备发送的命令,解释查询,根据查询运行一些代码,然后传回结果。

老实说,我尝试使用PHP作为侦听器,并且它可以工作,不幸的是,使脚本充当接收器所需的无限循环将CPU负载为25%。因此,这并不是真正的最佳选择。

我现在正在使用cygwin,我想使用linux本机命令创建一个bash脚本。

我可以使用以下方式接收数据:

cat /dev/ttyS2

并发送以下回复:

echo "command to send" > /dev/ttyS2

我的问题是,如何使自动侦听器能够接收和发送数据?我遇到的主要问题是,实际上,一旦收到信息,我如何停止 cat / dev / ttyS2
命令,将其放入一个变量中,然后可以将其与开关进行比较,否则将阻塞一系列(否则)。然后发回响应并重新开始循环吗?

谢谢


阅读 250

收藏
2020-06-03

共1个答案

一尘不染

这不是您要找的东西吗?

while read -r line < /dev/ttyS2; do
  # $line is the line read, do something with it
  echo $result > /dev/ttyS2
done
2020-06-03