鼠标运动实时传输来自树莓派



我正试图将连接到树莓π的鼠标坐标发送到同一网络中的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,它可以在android电视上重现鼠标移动。感谢您的帮助或任何其他更简单的解决方案!

以下是如何避免shell循环的示意图:

evtest "$device" | sed -un 's/.*(REL_([XY])), value /1=/p' | …

CCD_ 1可以是类似于netcatmosquitto_pub -l的命令。以上将生成类似X=2Y=1的消息,但可以通过使用1=以外的其他替换来更改消息格式。

最新更新