问题描述
如何以给定的频率通过WebSocket将游戏手柄轴坐标发送到我的Electron App前端?
python脚本和Electron应用程序在同一RaspBerry Pi 4上运行。WebSocket连接(FastAPI)本身运行良好,Electron应用程序不断从python脚本接收输入。我尝试了很多事情,但无法使两个不同的循环相互配合。
import asyncio
from fastapi import FastAPI,WebSocket
from evdev import InputDevice,categorize,ecodes
app = FastAPI()
gamepad = InputDevice('/dev/input/event3')
x = 0.0
freq = 60 #frequency in Hz
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
await websocket.accept()
while True:
await asyncio.sleep(1/freq)
global x
# what should be here
# I kNow the nested loop is interfering with the WebSocket loop,but what to do?
for event in gamepad.read_loop():
if event.type == ecodes.EV_ABS:
x = event.value
await websocket.send_json(x)
非常感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)