mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 10:30:17 +01:00
Début implémentation notes autres dans manager backend
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from hand_detector import HandDetector
|
||||
from hand_detector import HandDetector, FingerCountDetector
|
||||
from audio_detector import record, analyze, test
|
||||
from network import ApiClient, WebsocketServer
|
||||
import time
|
||||
@@ -20,10 +20,14 @@ class Manager():
|
||||
self.server = WebsocketServer(None)
|
||||
self.server.start()
|
||||
self.handDetector = HandDetector()
|
||||
self.fingerCountDetector = FingerCountDetector()
|
||||
self.api = ApiClient()
|
||||
self.timeLastChange = time.time()
|
||||
self.isLastHandPacketEmpty = False
|
||||
self.recongizer = sr.Recognizer()
|
||||
#For step 2
|
||||
self.criteria_list = self.api.get_criteria()
|
||||
self.currentCriteria = None
|
||||
print("Backend ready")
|
||||
|
||||
#Boucle principale
|
||||
@@ -34,14 +38,16 @@ class Manager():
|
||||
if(self.state == 1):
|
||||
self.camera()
|
||||
if(self.state == 2):
|
||||
self.audio()
|
||||
self.grade()
|
||||
if(self.state == 3):
|
||||
self.audio()
|
||||
if(self.state == 4):
|
||||
self.thankYou()
|
||||
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()
|
||||
res = self.handDetector.loop()
|
||||
if(res != False):
|
||||
self.state = 1
|
||||
self.timeLastChange = time.time()
|
||||
@@ -54,7 +60,7 @@ class Manager():
|
||||
self.reset()
|
||||
return
|
||||
|
||||
res = self.handDetector.detect()
|
||||
res = self.handDetector.loop()
|
||||
if(res != False):
|
||||
state, coords, size, finalDecision, progress = res
|
||||
self.server.sendMessage({"type": "effects", "effects": [{"type": "loading", "x":coords[0], "y": coords[1], "width": size, "height": size, "progress": progress},{"type": state, "x":coords[0], "y": coords[1], "width": size, "height": size}]})
|
||||
@@ -68,6 +74,24 @@ class Manager():
|
||||
self.server.sendMessage({"type":"effects","effects":[]})
|
||||
self.isLastHandPacketEmpty = True
|
||||
|
||||
def grade(self):
|
||||
if(self.currentCriteria == None):
|
||||
self.currentCriteria = 0
|
||||
self.server.sendMessage({"type":"new_criteria","criteria":self.criteria_list[self.currentCriteria]})
|
||||
return
|
||||
|
||||
grade = self.fingerCountDetector.loop()
|
||||
if(grade != None):
|
||||
self.avis["notes_autres"][self.criteria_list[self.currentCriteria]] = grade
|
||||
self.currentCriteria+=1
|
||||
if(self.currentCriteria < len(self.criteria_list)):
|
||||
self.server.sendMessage({"type":"new_criteria","criteria":self.criteria_list[self.currentCriteria]})
|
||||
self.fingerCountDetector.reset()
|
||||
else:
|
||||
self.state = 3
|
||||
self.server.sendMessage({"type": "state", "state": 3})
|
||||
|
||||
|
||||
def audio(self):
|
||||
time.sleep(3)
|
||||
self.server.sendMessage({"type":"recording_started"})
|
||||
@@ -96,8 +120,8 @@ class Manager():
|
||||
|
||||
#On passe a la suite
|
||||
time.sleep(5)
|
||||
self.state = 3
|
||||
self.server.sendMessage({"type": "state", "state": 3})
|
||||
self.state = 4
|
||||
self.server.sendMessage({"type": "state", "state": 4})
|
||||
|
||||
def thankYou(self):
|
||||
#On envoie l'avis à l'api
|
||||
@@ -111,6 +135,7 @@ class Manager():
|
||||
|
||||
def reset(self):
|
||||
self.state = 0
|
||||
self.currentCriteria = None
|
||||
self.avis = self.defualtAvis
|
||||
self.handDetector.reset()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user