main.py
3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
"""
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;
import ANN;
import serial;
import recoder;
###############################################################################
###############################################################################
#VARIABLES GLOBALES
###############################################################################
ping_mesured=0;
rssi_mesured=0;
cpt_trame=0;
result=0;
###############################################################################
##############################################################################
#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;
##############################################################################
###############################################################################
#FONCTIONS UTILES
###############################################################################
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;
def Draw():
result = ANN.predictions(ping_mesured, rssi_mesured);
#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;
ping=tkr.Label(infos,text='\n\nPING(ms) : '+ ping_mesured);
ping.config(font=('arial', 20, 'bold'));
ping.config(bg='white', fg='black');
ping.pack();
global rssi;
rssi=tkr.Label(infos,text='\n\nRSSI(dBm) : '+ rssi_mesured);
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
###############################################################################
#AFFICHAGE
###############################################################################
root=tkr.Tk();
Draw();
Refresher();
root.mainloop();
###############################################################################