Blame view

python/main.py 3.97 KB
a400222a   rcavalie   deut application
1
2
3
4
5
6
7
8
9
10
11
12
  """
  Created on Thu Jan 11 15:22:56 2018
  @author: Robin Cavalieri 
  IMA5SC - PFE 2018
  P32 - Détection automatique de DoS sur réseau LoRa
  Main - prédictions, affichage, vérification du trafic 
  """
  ###############################################################################
  #LIBRAIRIES UTILES
  ###############################################################################
  import tkinter as tkr;
  import time;
f0cdc988   rcavalie   travail sur la ré...
13
14
15
  import ANN;
  import serial;
  import recoder;
a400222a   rcavalie   deut application
16
17
  ###############################################################################
  
f0cdc988   rcavalie   travail sur la ré...
18
19
20
21
22
23
24
25
  ###############################################################################
  #VARIABLES GLOBALES
  ###############################################################################
  ping_mesured=0; 
  rssi_mesured=0;
  cpt_trame=0;
  result=0;
  ###############################################################################
bdfec245   rcavalie   intégration du ré...
26
  
f0cdc988   rcavalie   travail sur la ré...
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  ##############################################################################
  #DEFINITION DE LA LECTURE DE PORT 
  ##############################################################################
  ser = serial.Serial(      
   #Pour Linux
   #port='/dev/ttyACM0',
   #Pour Windows
   port='COM4',
   #Vitesse de communication
   baudrate = 9600,
   #Parité 
   parity=serial.PARITY_NONE,
   #Bit de stop
   stopbits=serial.STOPBITS_ONE,
   #Taille du message 
   bytesize=serial.EIGHTBITS,
   #Out
   timeout=1
  )
  counter=0;
  ##############################################################################
bdfec245   rcavalie   intégration du ré...
48
  
a400222a   rcavalie   deut application
49
50
51
  ###############################################################################
  #FONCTIONS UTILES
  ###############################################################################
f0cdc988   rcavalie   travail sur la ré...
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  def Data_recover():
      x = ser.readline();
      debut = time.time();
      temp = debut;
      #Vérifier si la trame provient d'un emetteur connu
      #Travail ici avec un seul et unique emetteur
      if(cpt_trame == 0): #PREMIERE TRAME ET TRAME OK 
          #Récupération du ping
          debut = time.time();
          temp = debut;
          cpt_trame = cpt_trame +1;     
      elif(cpt_trame > 0 and ): #PAS LA PREMIERE ET TRAME OK
          #Récupération du ping
          fin = time.time(); 
          ping = (fin-temp)*1000;
          #Récupération de la trame
          trame = x;
          #Récupération de la puissance
          x = ser.readline();
          #Sortie de boucle
          cpt_trame = cpt_trame + 1;
      else: #TRAME INCONNUE PREMIERE OU AUTRE
          #TRAME INCONNUE = ATTAQUE
          result = 1;
  
a400222a   rcavalie   deut application
77
  def Draw():   
f0cdc988   rcavalie   travail sur la ré...
78
      result = ANN.predictions(ping_mesured, rssi_mesured);
a400222a   rcavalie   deut application
79
80
81
82
83
84
85
86
87
88
      #FRAME INFORMATIONS
      infos=tkr.Frame(root,width=1000,height=5000,relief='groove',background='white',bd=3);
      infos.place(x=10,y=10);  
      #DATE - HEURE
      global text;
      text=tkr.Label(infos,text='HELLO');
      text.config(font=('arial', 20, 'bold'));
      text.config(bg='white', fg='black');
      text.pack();
      global ping;
f0cdc988   rcavalie   travail sur la ré...
89
      ping=tkr.Label(infos,text='\n\nPING(ms) : '+ ping_mesured);
a400222a   rcavalie   deut application
90
91
92
93
      ping.config(font=('arial', 20, 'bold'));
      ping.config(bg='white', fg='black');
      ping.pack();
      global rssi;
f0cdc988   rcavalie   travail sur la ré...
94
      rssi=tkr.Label(infos,text='\n\nRSSI(dBm) : '+ rssi_mesured);
a400222a   rcavalie   deut application
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
      rssi.config(font=('arial', 20, 'bold'));
      rssi.config(bg='white', fg='black');
      rssi.pack();
      global trame;
      trame=tkr.Label(infos,text='\n\nTrame :');
      trame.config(font=('arial', 20, 'bold'));
      trame.config(bg='white', fg='black');
      trame.pack();
      
      #FRAME CHART
      chart=tkr.Frame(root,width=985,height=530,relief='groove',background='white',bd=3);
      chart.place(x=370,y=10); 
      
      #PIED DE PAGE
      footer=tkr.Frame(root,width=1350,height=150,relief='groove',background='white',bd=3);
      footer.place(x=10,y=550);
      
  def Refresher():
      global text;
      text.configure(text=time.asctime());
      root.after(1000, Refresher);#Refresh toutes les secondes
  
bdfec245   rcavalie   intégration du ré...
117
118
119
  ###############################################################################
  #AFFICHAGE
  ###############################################################################
a400222a   rcavalie   deut application
120
121
122
123
124
  root=tkr.Tk();
  Draw();
  Refresher();
  root.mainloop();
  ###############################################################################