from hand_detector import HandDetector from network import WebsocketServer import time #Classe qui coordonne les différents modules et qui s'occupe de construire l'avis au fur et a mesure class Manager(): def __init__(self): self.state = 0 self.avis = { "note": None, "commentaire": None, "notes_autres": {} } self.server = WebsocketServer(None) self.server.start() self.handDetector = HandDetector() print("Backend ready") #Boucle principale def loop(self): while(True): if(self.state == 0): self.sleep() if(self.state == 1): self.camera() time.sleep(0.01) #Fonction qui est executée pendant que la borne est en veille, reveille la borne si une main est detectée def sleep(self): res = self.handDetector.detect() if(res != False): self.state = 1 self.server.sendMessage({"type": "state", "state": 1}) #Envoie la position de la main a l'écran et passe a l'étape suivante si une main est detectée pendant assez longtemps def camera(self): res = self.handDetector.detect() if(res != False): state, coords, size, finalDecision = res self.server.sendMessage({"type": "effects", "effects": [{"type": state, "x":coords[0], "y": coords[1], "width": size, "height": size}]}) if(finalDecision != False): self.avis["note"] = 10 if finalDecision == "thumbs_up" else 0 self.state = 2 self.server.sendMessage({"type": "state", "state": 2})