mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 02:20:17 +01:00
amélioration interface borne
This commit is contained in:
@@ -68,8 +68,6 @@ class HandDetector():
|
||||
thumbsUpCount = sum(map(lambda x : x == "thumbs_up", self.resultBuffer))
|
||||
thumbsDownCount = sum(map(lambda x : x == "thumbs_down", self.resultBuffer))
|
||||
|
||||
print(thumbsUpCount,thumbsDownCount)
|
||||
|
||||
if(thumbsUpCount > self.DETECTION_THRESHOLD * self.BUFFER_LENGTH):
|
||||
result = "thumbs_up"
|
||||
elif(thumbsDownCount > self.DETECTION_THRESHOLD * self.BUFFER_LENGTH):
|
||||
|
||||
@@ -2,6 +2,7 @@ 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
|
||||
@@ -15,6 +16,7 @@ class Manager():
|
||||
self.handDetector = HandDetector()
|
||||
print("Backend ready")
|
||||
|
||||
#Boucle principale
|
||||
def loop(self):
|
||||
while(True):
|
||||
if(self.state == 0):
|
||||
@@ -24,12 +26,14 @@ class Manager():
|
||||
|
||||
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):
|
||||
|
||||
@@ -70,8 +70,16 @@ services:
|
||||
- ./interface_admin/out:/usr/local/apache2/htdocs/
|
||||
container_name: interface_admin
|
||||
ports:
|
||||
- 80:80
|
||||
- 800:80
|
||||
|
||||
#Formulaire de retour d'avis
|
||||
Formulaire:
|
||||
image: httpd:latest
|
||||
volumes:
|
||||
- ./Formulaire:/usr/local/apache2/htdocs/
|
||||
container_name: Formulaire
|
||||
ports:
|
||||
- 80:80
|
||||
# #Backend de la borne : scripts pythons de reconnaissances video et audio
|
||||
# #Envoient les infos a l'interface de la borne par websocket pour mettre a jour l'interface rapidement
|
||||
# #Met a jour les avis en faisant des requêtes a l'API
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
* {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
html, body {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
@@ -25,3 +29,23 @@ html, body {
|
||||
#camera > canvas {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.instructions {
|
||||
width: max-content;
|
||||
height: 300px;
|
||||
margin: auto;
|
||||
background: #A6CC00;
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
border: 3px #6B8000 solid;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.instructions > .title {
|
||||
border-bottom: 3px #6B8000 solid;
|
||||
}
|
||||
3
code/interface_borne/assets/img/logo_tp.svg
Normal file
3
code/interface_borne/assets/img/logo_tp.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 34 KiB |
@@ -1,5 +1,5 @@
|
||||
class WebsocketClient {
|
||||
constructor(onNewEffects, onNewState) {
|
||||
constructor(onNewEffects, onNewGrade, onNewState) {
|
||||
this.socket = new WebSocket("ws://localhost:5000");
|
||||
this.socket.addEventListener("open", (event) => {
|
||||
this.socket.send("connected");
|
||||
|
||||
@@ -25,8 +25,6 @@ class StateManager {
|
||||
this._cameraPage.enabled = false;
|
||||
this._audioPage.enabled = false;
|
||||
this._thankYouPage.enabled = false;
|
||||
//TODO: Remove qd implémenté dans le backend
|
||||
document.getElementById("sleeping-page-continue").onclick = () => this.setState(STATE.video);
|
||||
}
|
||||
|
||||
setState(newState) {
|
||||
|
||||
@@ -15,19 +15,46 @@
|
||||
|
||||
<body>
|
||||
<div id="sleeping-page" class="page">
|
||||
<h1>Venez donner votre avis</h1>
|
||||
<!-- Boutton pour test -->
|
||||
<button id="sleeping-page-continue">Continuer</button>
|
||||
<div class="instructions">
|
||||
<div class="title">
|
||||
<h1>Votre avis nous intéresse</h1>
|
||||
</div>
|
||||
<span>Faites un</span>
|
||||
<img width=50 src="assets/img/thumbs_up.png">
|
||||
<span>ou un</span>
|
||||
<img width=50 src="assets/img/thumbs_down.png">
|
||||
<span> avec votre main pour commencer</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id="camera">
|
||||
<canvas id="overlay-canvas"></canvas>
|
||||
<video id="camera-video"></video>
|
||||
</div>
|
||||
<div id="audio">
|
||||
<div class="instructions">
|
||||
<div class="title">
|
||||
<h1>Enregistrement audio blabal</h1>
|
||||
</div>
|
||||
<p>Prononcez à voix haute les notes correspondant aux critères suivants dans l'ordre</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Critère</td>
|
||||
<th>Note / 10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Calme</td>
|
||||
<td> /10</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="thank-you">
|
||||
<h1>Merci pour votre avis !!!!!!!!!!</h1>
|
||||
<div class="instructions">
|
||||
<div class="title">
|
||||
<h1>Merci pour votre avis</h1>
|
||||
</div>
|
||||
<span>Nous esperons vous revoir bientôt</span>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/js/camera_page.js"></script>
|
||||
<script src="assets/js/network.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user