Intégration de la reco d'image à l'interface borne

This commit is contained in:
Quentin Roussel
2023-03-22 14:39:56 +01:00
parent 15bc1c7714
commit d896767543
11 changed files with 131 additions and 156 deletions

View File

@@ -4,12 +4,14 @@ import math
import websockets
import random
import os
import hands
import time
from hands import getThumbState
values = []
class WebsocketServer:
def __init__(self,getEffects,port=os.getenv("PORT"),host=os.getenv("HOST")) -> None:
self.thumbResult = None
self.state = 0
self.host = host
self.port = port
self.getEffects = getEffects
@@ -21,19 +23,23 @@ class WebsocketServer:
async def handler(self,websocket):
while True:
start = time.time()
messages = self.getEffects()
hands.frame()
await websocket.send(json.dumps(messages))
# await asyncio.sleep(1/30)
delay = time.time() - start
values.append(1/delay)
avg = sum(values) / len(values)
dev = [(v - avg) ** 2 for v in values]
print(avg, math.sqrt(sum(dev)/len(dev)))
#Remplacer ça par la fonction qui récupère les effets (dans le module de reconnaissance de gestes)
if(self.state == 0):
messages, result = self.getEffects()
if(messages != False):
if(result == False):
await websocket.send(json.dumps(messages))
else:
self.thumbResult = result
self.state = 1
await websocket.send('{"type":"state","state":2}')
def getEffects():
return {"type": "effects", "effects": [{"type": "thumbs_up", "x":random.randint(0,100), "y": random.randint(0,100), "width": 50, "height": 50}]}
res = getThumbState()
if(res != False):
state, coords, size, result = res
return {"type": "effects", "effects": [{"type": state, "x":coords[0], "y": coords[1], "width": size, "height": size}]}, result
else:
return False,False
server = WebsocketServer(getEffects)
asyncio.run(server.run())