如何解决通过Python Websocket发送GameController轴位置FastAPI和evdev
如何以给定的频率通过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 举报,一经查实,本站将立刻删除。