Commit da5d2b560886d30d5641d54fee7bda4333038453
1 parent
b12775c2
feat(Matrice): petit changement bdd + ajout de l'interface de la matrice
Showing
8 changed files
with
113 additions
and
14 deletions
Show diff stats
Python/client.py
1 | 1 | import socket |
2 | +import sys | |
2 | 3 | |
3 | 4 | if __name__ == '__main__': |
4 | 5 | # TODO : Prendre en arguments les donnees et l'adresse de la RPi |
5 | 6 | clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); |
6 | - data = "Hello Server!"; # TODO : Modifer les donnees a prendre | |
7 | - clientSocket.sendto(data.encode(),("172.26.145.62",9090)); # TODO : Modifier adresse avec adresse de la raspberry | |
7 | + data = sys.argv[2]; | |
8 | + clientSocket.sendto(data.encode(),(sys.argv[1],9090)); | |
8 | 9 | dataFromServer,sourceAddress = clientSocket.recvfrom(1024); |
9 | 10 | print(dataFromServer.decode()); | ... | ... |
Python/serveur.py
1 | 1 | import socket |
2 | 2 | |
3 | 3 | if __name__=='__main__': |
4 | - server.Socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); | |
4 | + serverSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); | |
5 | 5 | serverSocket.bind(("172.26.145.62",9090)); # Adresse du serveur à modifer selon l'IP de la RASPBERRY |
6 | 6 | while(True): |
7 | 7 | dataFromClient, sourceAddress = serverSocket.recvfrom(1024); |
8 | 8 | print("Data from %s is %s"%(sourceAddress,dataFromClient.decode())); |
9 | - serverSocket.sendto("Hello Client!".encode(),sourceAddress); # TODO : Modifier les donnees a renvoyer au serveur Web | |
9 | + serverSocket.sendto("Communication réalisée".encode(),sourceAddress); # TODO : Modifier les donnees a renvoyer au serveur Web | ... | ... |
bdd.sql
... | ... | @@ -7,6 +7,7 @@ |
7 | 7 | drop table if exists reservation ; |
8 | 8 | drop table if exists equipement ; |
9 | 9 | drop table if exists banc ; |
10 | +drop table if exists equip_type ; | |
10 | 11 | drop table if exists creneau ; |
11 | 12 | drop table if exists utilisateur ; |
12 | 13 | |
... | ... | @@ -22,11 +23,14 @@ create table creneau |
22 | 23 | create table banc |
23 | 24 | (NUMERO int PRIMARY KEY); |
24 | 25 | |
26 | +create table equip_type | |
27 | + (TYPE char(30) PRIMARY KEY); | |
28 | + | |
25 | 29 | create table equipement |
26 | 30 | (numero int REFERENCES banc, |
27 | 31 | IP char(15) PRIMARY KEY, |
28 | 32 | NOM char(50), |
29 | - TYPE char(30)); | |
33 | + type char(30) REFERENCES equip_type); | |
30 | 34 | |
31 | 35 | create table reservation |
32 | 36 | (numero int REFERENCES banc, |
... | ... | @@ -44,6 +48,11 @@ insert into utilisateur values ('admin','glopglop'); |
44 | 48 | |
45 | 49 | insert into creneau values (01/12/2021); |
46 | 50 | |
51 | +insert into equip_type values ("Oscilloscope"); | |
52 | +insert into equip_type values ("Generateur"); | |
53 | +insert into equip_type values ("Matrice"); | |
54 | +insert into equip_type values ("Multimetre"); | |
55 | + | |
47 | 56 | insert into banc values (1); |
48 | 57 | |
49 | 58 | /* Creation des vues pour faciliter l'utilisation de la BDD sur l'interface Web */ | ... | ... |
... | ... | @@ -0,0 +1,19 @@ |
1 | +<?php | |
2 | + if(isset($_POST['bout'])){ | |
3 | + $bout = $_POST['bout']; | |
4 | + foreach($bout as $value){ | |
5 | + $aaa = explode(':',$value); | |
6 | + $nouveau[$aaa[0]] = $aaa[1]; | |
7 | + } | |
8 | + $texte=''; | |
9 | + for($a = 1;$a<=25;$a++){ | |
10 | + if(!isset($nouveau[$a])){ | |
11 | + $nouveau[$a]=0; | |
12 | + } | |
13 | + } | |
14 | + for($a = 1;$a<=25;$a++){ | |
15 | + $texte = $texte.$nouveau[$a]; | |
16 | + } | |
17 | + $reponse_rpi = shell_exec("python3 Python/client.py $adresse $texte"); | |
18 | + } | |
19 | +?> | ... | ... |
... | ... | @@ -0,0 +1,62 @@ |
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | + <?php | |
4 | + echo '<div class="d-md-flex flex-md-equal w-100 my-md-3 pl-md-3">'; | |
5 | + echo '<div class="bg-light mr-md-3 pt-3 px-3 pt-md-5 px-md-5 overflow-hidden">'; | |
6 | + /* Commandes de l'appareil */ | |
7 | + echo '<div class="my-3 py-3">'; | |
8 | + echo '<h2 class="display-6 text-center">Panel de commande</h2>'; | |
9 | + echo '</div>'; | |
10 | + //$chemin = getcwd().'/'.$Appareil[$i]['type']; | |
11 | + //$files = array_diff(scandir($chemin),array('..','.')); | |
12 | + echo "Veuillez choisir les entrées et sorties à relier"; | |
13 | + if(isset($reponse_rpi)){ | |
14 | + echo "<br> Réponse de la matrice : $reponse_rpi"; | |
15 | + } | |
16 | + echo '<div class="d-md-flex flex-md-equal w-100 my-md-3 pl-md-3">'; | |
17 | + /* On parcourt l'arborescence pour trouver les fichiers 'form_fichiers.php' | |
18 | + * Ces fichiers affichent les différents boutons correspondant aux commandes de l'appareil */ | |
19 | + /* Affichage des appareils */ | |
20 | + echo "<table class='table table-striped'>"; | |
21 | + echo "<form method='POST' action='main.php'>"; | |
22 | + echo "<thead>"; | |
23 | + echo "<tr>"; | |
24 | + echo "<th></th>"; | |
25 | + echo "<th>Entrée 1</th>"; | |
26 | + echo "<th>Entrée 2</th>"; | |
27 | + echo "<th>Entrée 3</th>"; | |
28 | + echo "<th>Entrée 4</th>"; | |
29 | + echo "<th>Entrée 5</th>"; | |
30 | + echo "</tr>"; | |
31 | + echo "</thead>"; | |
32 | + echo "<tbody>"; | |
33 | + for($i=1;$i<6;$i++){ | |
34 | + echo "<tr>"; | |
35 | + echo "<td>Sortie $i</td>"; | |
36 | + for($j=0;$j<5;$j++){ | |
37 | + $calc=$i+(5*$j); | |
38 | + echo "<td><input type='checkbox' class='form-check-input' id='bout$calc' name='bout[]' value='$calc:0' onclick='boutton(bout$calc)'></button></td>"; | |
39 | + } | |
40 | + echo "</tr>"; | |
41 | + } | |
42 | + echo "</tbody>"; | |
43 | + echo "</table>"; | |
44 | + echo "<button class='btn-lg btn-primary' type='submit'> Changer les états de la matrice</button>"; | |
45 | + echo "</form>"; | |
46 | + echo '</div>'; | |
47 | + echo '</div>'; | |
48 | + echo '</div>'; | |
49 | + ?> | |
50 | + <script type="text/javascript"> | |
51 | + function boutton(numBout){ | |
52 | + var bout = document.getElementById(numBout.id); | |
53 | + var tab = bout.value.split(':'); | |
54 | + var valeur = tab[1]; | |
55 | + if(valeur=='0'){ | |
56 | + bout.value=tab[0]+':1'; | |
57 | + }else{ | |
58 | + bout.value=tab[0]+':0'; | |
59 | + } | |
60 | + }; | |
61 | + </script> | |
62 | +</html> | ... | ... |
html/Python/client.py
1 | 1 | import socket |
2 | +import sys | |
2 | 3 | |
3 | 4 | if __name__ == '__main__': |
4 | 5 | clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); |
5 | - data = "Hello Server!"; | |
6 | - clientSocket.sendto(data.encode(),("172.26.145.62",9090)); | |
6 | + data = sys.argv[2]; | |
7 | + clientSocket.sendto(data.encode(),(sys.argv[1],9090)); | |
7 | 8 | dataFromServer,sourceAddress = clientSocket.recvfrom(1024); |
8 | 9 | print(dataFromServer.decode()); | ... | ... |
html/gestionAppareil.php
... | ... | @@ -30,6 +30,9 @@ |
30 | 30 | $requete = "SELECT * FROM banc"; |
31 | 31 | $exec_requete = mysqli_query($db,$requete); |
32 | 32 | $banc = mysqli_fetch_all($exec_requete); |
33 | + $requete = "SELECT * FROM equip_type"; | |
34 | + $exec_requete = mysqli_query($db,$requete); | |
35 | + $equip_type = mysqli_fetch_all($exec_requete); | |
33 | 36 | mysqli_close($db); |
34 | 37 | /* Affichage des appareils */ |
35 | 38 | echo "<table class='table table-striped'>"; |
... | ... | @@ -62,7 +65,11 @@ |
62 | 65 | echo "</select></td>"; |
63 | 66 | echo "<td><input type='text' name='ip' required></td>"; |
64 | 67 | echo "<td><input type='text' name='name' required></td>"; |
65 | - echo "<td><input type='text' name='type' required></td>"; | |
68 | + echo "<td><select class='select' name='type' id='type' required>"; | |
69 | + foreach($equip_type as $value){ | |
70 | + echo '<option value="'.$value[0].'">'.$value[0].'</option>'; | |
71 | + } | |
72 | + echo "</select></td>"; | |
66 | 73 | echo "<td><button class='btn-lg btn-success' type='submit'>Ajouter l'appareil</button></td>"; |
67 | 74 | echo "</tr>"; |
68 | 75 | echo "</tbody>"; | ... | ... |
html/main.php
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | $_SESSION['banc']=$Banc; |
39 | 39 | $_SESSION['heure']=$heure; |
40 | 40 | $requete = "SELECT * FROM equipement WHERE |
41 | - num = $Banc"; | |
41 | + numero = $Banc"; | |
42 | 42 | $exec_requete = mysqli_query($db,$requete); |
43 | 43 | $reponse = mysqli_fetch_all($exec_requete); |
44 | 44 | foreach($reponse as $element){ |
... | ... | @@ -56,7 +56,7 @@ |
56 | 56 | $Banc = $_SESSION['banc']; |
57 | 57 | $heure = $_SESSION['heure']; |
58 | 58 | $requete = "SELECT * FROM equipement WHERE |
59 | - num =$Banc"; | |
59 | + numero =$Banc"; | |
60 | 60 | $exec_requete = mysqli_query($db,$requete); |
61 | 61 | $reponse = mysqli_fetch_all($exec_requete); |
62 | 62 | foreach($reponse as $element){ |
... | ... | @@ -87,7 +87,7 @@ |
87 | 87 | |
88 | 88 | /* Recherche des fichiers 'commandes_type.php' dans les dossiers des types d'appareils sélectionnés |
89 | 89 | * Ces fichiers vont effectuer les commandes de l'appareil si un bouton est utilisé */ |
90 | - /* TODO | |
90 | + /* TODO */ | |
91 | 91 | for($i=0;$i<count($Appareil);$i++){ |
92 | 92 | $chemin = $Appareil[$i]['type']; |
93 | 93 | $adresse = $Appareil[$i]['adresse']; |
... | ... | @@ -98,14 +98,14 @@ |
98 | 98 | include($cmd_path); |
99 | 99 | } |
100 | 100 | } |
101 | - }*/ | |
101 | + } | |
102 | 102 | ?> |
103 | 103 | </div> |
104 | 104 | <br/> |
105 | 105 | <?php |
106 | 106 | /* Recherche des fichiers 'main_type.php' dans les dossiers des types d'appareils sélectionnés |
107 | 107 | * Ces fichiers vont afficher une capture de l'appareil et les commandes que l'utilisateur peut utiliser */ |
108 | - /* TODO | |
108 | + /* TODO */ | |
109 | 109 | for($i=0;$i<count($Appareil);$i++){ |
110 | 110 | $chemin = getcwd().'/'.$Appareil[$i]['type']; |
111 | 111 | $adresse = $Appareil[$i]['adresse']; |
... | ... | @@ -118,7 +118,7 @@ |
118 | 118 | echo '</div>'; |
119 | 119 | } |
120 | 120 | } |
121 | - }*/ | |
121 | + } | |
122 | 122 | /* Appel du script du rafraichissement des images, un script par appareil */ |
123 | 123 | /* TODO for($i=0;$i<count($Appareil);$i++){ |
124 | 124 | include('Scripts/refresh_img.php'); | ... | ... |