""" 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(); ###############################################################################