https://github.com/mega2799/reti
Progetto Reti 2020/2021
https://github.com/mega2799/reti
network python
Last synced: 3 days ago
JSON representation
Progetto Reti 2020/2021
- Host: GitHub
- URL: https://github.com/mega2799/reti
- Owner: mega2799
- License: gpl-3.0
- Created: 2021-05-24T20:07:18.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-11-13T20:32:19.000Z (over 4 years ago)
- Last Synced: 2025-11-17T07:09:30.061Z (7 months ago)
- Topics: network, python
- Language: Python
- Homepage:
- Size: 109 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Progetto Santoro Matteo
## Matricola 881608

# Come ho lavorato
Ho pensato di svolgere la prima traccia cercando di simulare il comportamento di un device che raccoglie informazioni durante la giornata e poi le invia producendo dei dati "randomici"
Ho utlizzato alcune librerie per poter simulare questi device, **datetime** per poter lavorare comodamente con le date e gli orari ai quali i dati vengono raccolti ed inviati quindi **timedelta** per poter comodamente trascorrere giornate, **schedule** per poter inviare periodicamente i dati, io ho impostato come periodo alcuni secondi per testare il funzionamento dell'elaborato ma la libreria **schedule** permette di compiere una routine ogni giorno ad un orario specifico, ogni settimana e cosi' via
``pip install schedule``
# Test
> per testare `python3 RunMe.py` oppure `./RunMe.py`
# IOTdevice
IOTdevice.py e' una classe che modella un device generico, contente metodi utili a quest'ulitmi
`toString`
Classico metodo con il quale si puo' stampare ogni informazione sul device
`connect`
Attraverso il quale il device si connette al gateway e con un messaggio creato dal toString che contiente tutti i dati
`init`
Con cui si inizializza, quando il device si accende legge ora e data, un nome e dati inziali
`updateData`
Simula il passare di 24 ore e produce dati randomici entro standard reali
`autentication`
Simile al toString pero utilizzato dal cloudServer per ottenere un output con le sole informazioni utlili e stamparle in console
# gateway
Il gateway riceve una volta al giorno i dati tramite una connessione UDP dai device, all' interno del ciclo pero' prima di poter trasmettere al successivo aspetta di ricevere idati da tutti e quattro i device, cosi da poter effettuare una sola trasmissione TCP
# cloudServer
il cloud si occupa di ricevere i dati che sono stati trasmessi al gateway, utilizza un metodo della classe IOTdevice per poter formattare e stamapare in console i rilevamenti con i rispettivi orari e ip di provenienza e calcola il tempo di viaggio dei dati grazie a Datetime
> Sia gateway che cloudServer hanno una variabile DEBUG che puo tornare utile per poter verificarne il funzionamento, nello sviluppo le ho usate e ridotte nella consegna
# RunMe
Il file python RunMe va eseguito per poter comodamente far partire i vari device e server, hoscelto di usare i vari file Device*.py per poter simulare i singoli device, e per poi poter disattivare tutto comodamente ho preso i pid dei processi e li termino con il comando kill altrimenti i processi sarebbero rimasti attivi in background