# Présentation ADS
## SLIDE
### CAPTEURS
Capteurs sont des rapsberry pi avec module Bluetooth.
- paquet ADSsensor.deb à installer (dpkg -i)
- répertoire principal : /etc/ADS2021/
- fichier man adssensor pour savoir comment ca marche (très léger car pas de paramètre dans le script)
- lancement du script : ./adssensor
Le script :
- Créer un fichier csv au nom du capteur
- Un fichier "mac.txt" pour stocker les adresses mac scannées lors "d'un tour" (car le coeur du script est dans une boucle)
- Une boucle while true -->
- Utilise l'outil "hcitool". On stock le résultat dans le fichier mac.txt pour ensuite traiter les données.
- Mise en forme du fichier <hostname>.csv :
- nom du capteur; date (2020-12-10T23:54:28-08:00); adresse mac bluetooth
Rsync :
- Avant tout : partage de clef pour tunnel SSH
-- sur chaque capteur --> ssh-keygen pour générer une paire de clef.
-- partager la clef publique au serveur pour une connexion sécurisé et sans intervention humaine (sans demande de mot de passe)
- rsync <hostname>.csv USERserveur@IPserveur:/home/lucas/ADS/Serveur/sensor_manager/reception_log/<hostname>.csv
Crontab :
- Crontask pour envoyer les données par rsync au serveur
- réinitialisation du fichier hostname.csv à la fin de la journée (car archive sur serveur)
### Application mobile
4 onglets :
- Règles
- Logs
- Whitelist
- Blacklist

#### Règles
Quand tu cliques sur l'onglet règle :
- Appel un module Web d'Appinventor.
- Module web --> gérer l'API Json.
- Dans le module web --> l'url de la page de l'API.
Automatiquement, comme il y a un appel --> On a fait en sorte que ca affiche les données de la page.
--> dans une liste (comme ca, on peut sélectionner le capteur qu'on veut dans la liste "séleciton du capteur").
Dans sélection du capteur : on sélectionne à partir du nom.
Quand on clic sur un capteur :
- Ca rempli automatiquement les champs Nom/AdresseMAC/Priorité par les données déjà présentes.
SI on veut ajouter :
- On saisie juste les données dans les champs et ca fait un post dans le module web --> API JSON
SI on veut modifier :
- on sélectionne le capteur
- On modifie l'adresse mac ou la priorité,
- on peut pas modifier le nom (statique car hostname du capteur raspberry)
- --> Ca fait un put
Si on veut supprimer :
- On sélectionne le capteur
- --> ca fait un delete à partir de l'url (exemple : urlDeLapi/capteur1)

#### Logs

- Quand on clic sur l'onglet -> module web "log" qui pointe sur URL API afficheLogs --> "Call" = GET
- Sélectionner juste la date (interface pour la sélectionner qui demande le jour,mois et année)
- affiche automatiquement les données S'IL Y EN A !
- Sinon : affiche un message d'avertissement comme quoi il n'y a aucunne données
#### Whitelist / Blacklist

Deux onglets différents mais l'interface est similaire.
- Quand on clic sur l'onglet --> appel module web whitelist/blacklist pour afficher les appareils mobiles (juste l'adresse mac bluetooth des appareils mobiles = téléphones).
- Pour supprimer --> delete en passant l'adresse mac des appareils déjà ajoutés.
- Pour Ajouter --> Post comme pour les règles
GESTION DES TRY CATCH POUR TOUTE L'APPLICATION
- SI un champ n'est pas rempli = message d'erreur
- SI aucun log = message d'erreur
CAPTEUR : WASSIM
R5 : LUCAS MOI
API : THOMAS
SERVEUR : LUCAS
APPLI : CORENTIN