我正在为项目使用串行设备,而我正在尝试完成PC端,正在侦听串行设备发送的命令,解释查询,根据查询运行一些代码,并传回结果.
说实话,我尝试使用PHP作为监听器,它很有效,不幸的是,使脚本充当接收器所需的无限循环将cpu加载到25%.所以这不是最好的选择.
我现在正在使用cygwin,我想使用linux native命令创建一个bash脚本.
我可以使用以下方式接收数据:
cat /dev/ttyS2
并发送回复:
echo "command to send" > /dev/ttyS2
我的问题是,如何使自动侦听器能够接收和发送数据?我遇到的主要问题实际上是如何在收到信息后停止cat / dev / ttyS2命令,将其放入变量中,然后我可以将其与交换机或一系列if else then块进行比较.然后发回一个响应并重新开始循环?
谢谢
解决方法
这不是你想要的吗?
while read -r line < /dev/ttyS2; do # $line is the line read,do something with it echo $result > /dev/ttyS2 done