我试图将连接到raspberry pi的鼠标坐标发送到同一网络中的ESP8266。我刚写了这个bash脚本
#!/bin/bash
device='/dev/input/event1'
mouseX="*(REL_X), value*"
mouseY="*(REL_Y), value*"
evtest "$device" | while read line; do
case $line in
($mouseX) X=${line##*value }
curl 'http://192.168.0.4/ricevuto?X='"$X" &
;;
($mouseY) Y=${line##*value }
curl 'http://192.168.0.4/ricevuto?Y='"$Y" &
;;
esac
done命令"evtest“捕获鼠标移动,脚本提取坐标,curl发送数据。
它很管用,但它真的很慢!在卷发的末尾加上"&“会更快,但有时坐标会被弄乱.是否有一种方法来建立一个连接和只是传输数据,而不提出每次请求?
为了解释我的最终目标:我尝试在多个设备上使用一个连接到覆盆子皮的鼠标:在这种情况下,接收器(esp8266)将连接到一个arduino leonardo,它可以在安卓电视上重新创建鼠标运动。感谢您的帮助或任何其他更简单的解决方案!
发布于 2021-05-24 18:10:28
下面是如何避免shell循环的草图:
evtest "$device" | sed -un 's/.*(REL_\([XY]\)), value /\1=/p' | ……可以是像netcat或mosquitto_pub -l这样的命令。上面的内容将生成像X=2或Y=1这样的消息,但是可以通过使用\1=以外的其他替换来更改消息格式。
https://stackoverflow.com/questions/67673304
复制相似问题