鼠标移动实时传输来自raspberry pi

mouse movement real time transmission from raspberry pi

我正在尝试将连接到 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 发送数据。

它有效,但它真的很慢!卷曲末尾的“&”更快,但有时坐标会搞砸...... 有没有办法建立连接,只传输数据,而无需每次都发出请求?

只是为了解释我的最终目标:我正在尝试在多个设备上使用连接到 raspberry pi 的鼠标:在这种情况下,接收器 (esp8266) 将连接到一个 arduino leonardo可以在 android 电视上重现鼠标移动。 感谢您的帮助或任何其他更简单的解决方案!

下面是如何避免 shell 循环的草图:

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

可以是像 netcatmosquitto_pub -l 这样的命令。以上将生成 X=2Y=1 之类的消息,但可以使用 =.

以外的其他替换来更改消息格式