Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr2:gr2 [2017/02/19 05:19] yseree [Version SEREE] |
cours:plim:projet16_17:gr2:gr2 [2017/02/19 21:10] (Version actuelle) yseree [Version SEREE] |
||
---|---|---|---|
Ligne 70: | Ligne 70: | ||
{{:cours:plim:projet16_17:gr2:smartbatteryseree.zip|apk de l'application Android}} \\ | {{:cours:plim:projet16_17:gr2:smartbatteryseree.zip|apk de l'application Android}} \\ | ||
- | {{:cours:plim:projet16_17:gr2:kmeanseree.zip|serveur}} | + | {{:cours:plim:projet16_17:gr2:kmeanseree.zip|serveur (jar)}} |
===Code source=== | ===Code source=== | ||
{{:cours:plim:projet16_17:gr2:serveur_source_seree.zip|Code source du serveur}}\\ | {{:cours:plim:projet16_17:gr2:serveur_source_seree.zip|Code source du serveur}}\\ | ||
+ | [[https://mega.nz/#!385xGbyB!8BcT37Qehw9UQWvaKO1OzvKxcvNdKszIH11tSCh0KWk|Code source de l'application Android]] | ||
===Serveur=== | ===Serveur=== | ||
==Lancement du serveur== | ==Lancement du serveur== | ||
- | Pour lancer le serveur télécharger le .zip du serveur ci-dessus. \\ | + | Pour lancer le serveur télécharger le .zip du serveur ci-dessus (section Code). \\ |
- | Extraire le .zip puis lancer start.bat. \\ | + | Extraire le .zip puis lancer //**start.bat**// qui permettra d'exécuter le jar.\\ |
- | Le fichier //values.json// contient les données collectées, le kmean est exécuté à partir des données contenues dans ce fichier. | + | Le serveur tourne sur le port 3456, veuillez vous assurer que le port n'est pas pris par un autre processus. \\ |
+ | Le fichier //values.json// contient les données collectées, le kmean est exécuté à partir des données contenues dans ce fichier. Ce fichier json est mis automatiquement à jour lorsque de nouvelles données collectées sont reçues par le serveur. | ||
===Application Android=== | ===Application Android=== | ||
Ligne 95: | Ligne 97: | ||
* Rentrez tout d'abord l'adresse IP de la machine qui exécute le serveur (comme sur la première capture d'écran ci-dessus) et cliquez sur le bouton //START// | * Rentrez tout d'abord l'adresse IP de la machine qui exécute le serveur (comme sur la première capture d'écran ci-dessus) et cliquez sur le bouton //START// | ||
* Acceptez ensuite la permission pour la localisation | * Acceptez ensuite la permission pour la localisation | ||
- | * Cliquer sur le bouton //REFRESH KMEAN// pour obtenir le Kmean du serveur, comme sur la seconde capture d'écran ci-dessus, vous obtiendrez les centroids ainsi que les points correspondants aux clusters (vert correspondant à une consommation de batterie faible, bleu à une consommation moyenne et rouge à une consommation forte). \\ L'utilisateur peut afficher uniquement certain cluster en cochant/décochant les chekbox (faible/moyenne/forte) \\ Il est également possible de consulter tout les points en cliquant sur l'onglet //Liste//. | + | * Cliquer sur le bouton //REFRESH KMEAN// pour obtenir le Kmean du serveur, comme sur la seconde capture d'écran ci-dessus, vous obtiendrez les centroids ainsi que les points correspondants aux clusters (vert correspondant à une consommation de batterie faible, bleu à une consommation moyenne et rouge à une consommation forte). \\ L'utilisateur peut afficher uniquement certain cluster en cochant/décochant les chekbox (faible/moyenne/forte) \\ Il est également possible de consulter tout les points en cliquant sur l'onglet //Liste// (la consommation affichée correspond au pourcentage de batterie utilisé par heure). |
+ | |||
+ | |||
+ | ==Notes techniques de l'application== | ||
+ | \\ | ||
+ | L'application utilise un //**AlarmManager**// ([[https://developer.android.com/reference/android/app/AlarmManager.html|]]) permettant ainsi de lancer la collecte des données toutes les **15** minutes, ce qui évite d'avoir un //service// ou un //asynctask// tournant en continu en arrière plan. De ce fait l'application consomme très peu de batterie et n'influence donc pas sur les données collectées de la consommation de batterie. \\ | ||
+ | Les données collectées sont stockés directement dans un **fichier interne** ([[https://developer.android.com/guide/topics/data/data-storage.html#filesInternal|doc]]) sous format JSON afin de pouvoir utiliser l'application en **hors-connexion**. \\ | ||
+ | Si une connexion internet est présente (le smartphone et le serveur devant être sur le même WiFi), le contenu de ce fichier est envoyé au serveur. \\ | ||
+ | Du côté du serveur, les données reçues sont automatiquement placées dans un fichier JSON (//values.json//). \\ Lorsque l'utilisateur actionne le bouton //REFRESH KMEAN//, une requête est envoyé au serveur : \\ | ||
+ | * le serveur exécute l'algorithme du **Kmean** depuis les données contenues dans son fichier //values.json | ||
+ | // | ||
+ | * le résultat de ce Kmean est stocké dans un autre fichier JSON (//kmean.json//) | ||
+ | * le contenu de ce fichier est envoyé à l'application Android.\\ | ||
+ | Une fois le kmean reçu, l'application le stocke dans un fichier interne. Ainsi les différents clusters du kmean sont également accessibles hors-connexion. | ||
- | ==Détails techniques de l'application== | ||
- | en cours...\\ | ||
====Version YU==== | ====Version YU==== | ||