Commit da5d2b560886d30d5641d54fee7bda4333038453

Authored by lwadbled
1 parent b12775c2

feat(Matrice): petit changement bdd + ajout de l'interface de la matrice

1 import socket 1 import socket
  2 +import sys
2 3
3 if __name__ == '__main__': 4 if __name__ == '__main__':
4 # TODO : Prendre en arguments les donnees et l'adresse de la RPi 5 # TODO : Prendre en arguments les donnees et l'adresse de la RPi
5 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); 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 dataFromServer,sourceAddress = clientSocket.recvfrom(1024); 9 dataFromServer,sourceAddress = clientSocket.recvfrom(1024);
9 print(dataFromServer.decode()); 10 print(dataFromServer.decode());
1 import socket 1 import socket
2 2
3 if __name__=='__main__': 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 serverSocket.bind(("172.26.145.62",9090)); # Adresse du serveur à modifer selon l'IP de la RASPBERRY 5 serverSocket.bind(("172.26.145.62",9090)); # Adresse du serveur à modifer selon l'IP de la RASPBERRY
6 while(True): 6 while(True):
7 dataFromClient, sourceAddress = serverSocket.recvfrom(1024); 7 dataFromClient, sourceAddress = serverSocket.recvfrom(1024);
8 print("Data from %s is %s"%(sourceAddress,dataFromClient.decode())); 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
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 drop table if exists reservation ; 7 drop table if exists reservation ;
8 drop table if exists equipement ; 8 drop table if exists equipement ;
9 drop table if exists banc ; 9 drop table if exists banc ;
  10 +drop table if exists equip_type ;
10 drop table if exists creneau ; 11 drop table if exists creneau ;
11 drop table if exists utilisateur ; 12 drop table if exists utilisateur ;
12 13
@@ -22,11 +23,14 @@ create table creneau @@ -22,11 +23,14 @@ create table creneau
22 create table banc 23 create table banc
23 (NUMERO int PRIMARY KEY); 24 (NUMERO int PRIMARY KEY);
24 25
  26 +create table equip_type
  27 + (TYPE char(30) PRIMARY KEY);
  28 +
25 create table equipement 29 create table equipement
26 (numero int REFERENCES banc, 30 (numero int REFERENCES banc,
27 IP char(15) PRIMARY KEY, 31 IP char(15) PRIMARY KEY,
28 NOM char(50), 32 NOM char(50),
29 - TYPE char(30)); 33 + type char(30) REFERENCES equip_type);
30 34
31 create table reservation 35 create table reservation
32 (numero int REFERENCES banc, 36 (numero int REFERENCES banc,
@@ -44,6 +48,11 @@ insert into utilisateur values ('admin','glopglop'); @@ -44,6 +48,11 @@ insert into utilisateur values ('admin','glopglop');
44 48
45 insert into creneau values (01/12/2021); 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 insert into banc values (1); 56 insert into banc values (1);
48 57
49 /* Creation des vues pour faciliter l'utilisation de la BDD sur l'interface Web */ 58 /* Creation des vues pour faciliter l'utilisation de la BDD sur l'interface Web */
html/Matrice/commandes_matrice.php 0 → 100644
@@ -0,0 +1,19 @@ @@ -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 +?>
html/Matrice/main_matrice.php 0 → 100644
@@ -0,0 +1,62 @@ @@ -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 import socket 1 import socket
  2 +import sys
2 3
3 if __name__ == '__main__': 4 if __name__ == '__main__':
4 clientSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM); 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 dataFromServer,sourceAddress = clientSocket.recvfrom(1024); 8 dataFromServer,sourceAddress = clientSocket.recvfrom(1024);
8 print(dataFromServer.decode()); 9 print(dataFromServer.decode());
html/gestionAppareil.php
@@ -30,6 +30,9 @@ @@ -30,6 +30,9 @@
30 $requete = "SELECT * FROM banc"; 30 $requete = "SELECT * FROM banc";
31 $exec_requete = mysqli_query($db,$requete); 31 $exec_requete = mysqli_query($db,$requete);
32 $banc = mysqli_fetch_all($exec_requete); 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 mysqli_close($db); 36 mysqli_close($db);
34 /* Affichage des appareils */ 37 /* Affichage des appareils */
35 echo "<table class='table table-striped'>"; 38 echo "<table class='table table-striped'>";
@@ -62,7 +65,11 @@ @@ -62,7 +65,11 @@
62 echo "</select></td>"; 65 echo "</select></td>";
63 echo "<td><input type='text' name='ip' required></td>"; 66 echo "<td><input type='text' name='ip' required></td>";
64 echo "<td><input type='text' name='name' required></td>"; 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 echo "<td><button class='btn-lg btn-success' type='submit'>Ajouter l'appareil</button></td>"; 73 echo "<td><button class='btn-lg btn-success' type='submit'>Ajouter l'appareil</button></td>";
67 echo "</tr>"; 74 echo "</tr>";
68 echo "</tbody>"; 75 echo "</tbody>";
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 $_SESSION['banc']=$Banc; 38 $_SESSION['banc']=$Banc;
39 $_SESSION['heure']=$heure; 39 $_SESSION['heure']=$heure;
40 $requete = "SELECT * FROM equipement WHERE 40 $requete = "SELECT * FROM equipement WHERE
41 - num = $Banc"; 41 + numero = $Banc";
42 $exec_requete = mysqli_query($db,$requete); 42 $exec_requete = mysqli_query($db,$requete);
43 $reponse = mysqli_fetch_all($exec_requete); 43 $reponse = mysqli_fetch_all($exec_requete);
44 foreach($reponse as $element){ 44 foreach($reponse as $element){
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
56 $Banc = $_SESSION['banc']; 56 $Banc = $_SESSION['banc'];
57 $heure = $_SESSION['heure']; 57 $heure = $_SESSION['heure'];
58 $requete = "SELECT * FROM equipement WHERE 58 $requete = "SELECT * FROM equipement WHERE
59 - num =$Banc"; 59 + numero =$Banc";
60 $exec_requete = mysqli_query($db,$requete); 60 $exec_requete = mysqli_query($db,$requete);
61 $reponse = mysqli_fetch_all($exec_requete); 61 $reponse = mysqli_fetch_all($exec_requete);
62 foreach($reponse as $element){ 62 foreach($reponse as $element){
@@ -87,7 +87,7 @@ @@ -87,7 +87,7 @@
87 87
88 /* Recherche des fichiers 'commandes_type.php' dans les dossiers des types d'appareils sélectionnés 88 /* Recherche des fichiers 'commandes_type.php' dans les dossiers des types d'appareils sélectionnés
89 * Ces fichiers vont effectuer les commandes de l'appareil si un bouton est utilisé */ 89 * Ces fichiers vont effectuer les commandes de l'appareil si un bouton est utilisé */
90 - /* TODO 90 + /* TODO */
91 for($i=0;$i<count($Appareil);$i++){ 91 for($i=0;$i<count($Appareil);$i++){
92 $chemin = $Appareil[$i]['type']; 92 $chemin = $Appareil[$i]['type'];
93 $adresse = $Appareil[$i]['adresse']; 93 $adresse = $Appareil[$i]['adresse'];
@@ -98,14 +98,14 @@ @@ -98,14 +98,14 @@
98 include($cmd_path); 98 include($cmd_path);
99 } 99 }
100 } 100 }
101 - }*/ 101 + }
102 ?> 102 ?>
103 </div> 103 </div>
104 <br/> 104 <br/>
105 <?php 105 <?php
106 /* Recherche des fichiers 'main_type.php' dans les dossiers des types d'appareils sélectionnés 106 /* Recherche des fichiers 'main_type.php' dans les dossiers des types d'appareils sélectionnés
107 * Ces fichiers vont afficher une capture de l'appareil et les commandes que l'utilisateur peut utiliser */ 107 * Ces fichiers vont afficher une capture de l'appareil et les commandes que l'utilisateur peut utiliser */
108 - /* TODO 108 + /* TODO */
109 for($i=0;$i<count($Appareil);$i++){ 109 for($i=0;$i<count($Appareil);$i++){
110 $chemin = getcwd().'/'.$Appareil[$i]['type']; 110 $chemin = getcwd().'/'.$Appareil[$i]['type'];
111 $adresse = $Appareil[$i]['adresse']; 111 $adresse = $Appareil[$i]['adresse'];
@@ -118,7 +118,7 @@ @@ -118,7 +118,7 @@
118 echo '</div>'; 118 echo '</div>';
119 } 119 }
120 } 120 }
121 - }*/ 121 + }
122 /* Appel du script du rafraichissement des images, un script par appareil */ 122 /* Appel du script du rafraichissement des images, un script par appareil */
123 /* TODO for($i=0;$i<count($Appareil);$i++){ 123 /* TODO for($i=0;$i<count($Appareil);$i++){
124 include('Scripts/refresh_img.php'); 124 include('Scripts/refresh_img.php');