Commit Graph

1127 Commits

Author SHA1 Message Date
Matteo Cypriani 1b222af80c Additions/changes in server & clientinfo
Préparation à la séparation de Server::fastViterbiLike() en deux
fonctions : monitorClient() qui contiendra tous les traitements
génériques aux algorithmes de calcul de la position, et
fastViterbiLike() qui ne contiendra que le calcul en lui-même. Ceci afin
de permettre l'ajout aisé d'autres algorithmes.

guinumo.hh : fichier d'en-tête global avec les #define de débogage.

clientinfo.{hh,cc} :
* Ajout d'un constructeur par copie.
* Ajout des opérateurs = et ==.
* Ajout de viterbi_iteration et son accesseur getRef_viterbi_iteration().
* Ajout de print_viterbi_V().
* Changement du type de viterbi_V : passage d'un tableau classique à un
  multi_array de la bibliothèque Boost.
* Ajout d'informations de débogage (trace).

server.{hh,cc} :
* Adaptation pour viterbi_V.
* Ajout de createClient() pour ajouter un client à client_list.
* Ajout d'informations de débogage (trace).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@41 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:45:00 +01:00
Matteo Cypriani 4844c58cd0 Beaucoup d'ajouts dans GuiNuMo
point.{hh,cc} :
* Ajout d'un constructeur à partir d'un tableau de 3 float.
* Ajout de operator<(), obligatoire pour le bon fonctionnement des map
  avec un Point comme clef. Ajout de operator>(), tant qu'on y est.

server.{hh,cc} :
* Ajout de point_tab_idx(), qui renvoie l'indice d'un Point au sein d'un
  tableau.
* Ajout de makeTopologyFromFile(), qui lit le fichier contenant la
  description des pièces.
* Ajout de makeWaypointDistancesFromFile(), qui lit le fichier contenant
  la description des liens entre les points de référence. TODO :
  possibilité d'optimiser en construisant la matrice d'un seul coup (?).

area.{hh,cc} :
* Correction pour intégration (classe non utilisée jusqu'à présent).
* Utilisation de références constantes pour les passages de paramètres.
* Ajout de &operator<<() pour l'affichage.

Fichiers de config :
* cfg/distances.csv : complément et complément d'explication.
* cfg/topo.csv : syntaxe + ajout des coordonnées Z2.

Makefile :
* Légère amélioration au niveau de la généricité.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@40 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:45:00 +01:00
Matteo Cypriani 36f1a4dc45 1st commit since pif's resurrection
code/GuiNuMo-server/server.cc
	* Ajout de la sélection du point à renvoyer, à chaque étape de
	  l'algorithme dans fastViterbi().
	* Correction d'un bogue causé par les #ifdef de débogage.

code/GuiNuMo-server/cfg/
Ajout de deux fichiers de configuration :
	* topo.csv, donnant la liste et les coordonnées des pièces (pour
	  l'instant seulement du premier étage).
	* distances.csv, décrivant les distances entre les points de référence
	  clefs pour utiliser avec FRBHM.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@36 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:44:00 +01:00
Matteo Cypriani 594fb84bc4 README + UTF-8
Ajout de README dans csv/ et log/.

server.hh : conversion en UTF-8.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@35 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani 1df1eb075a Corr. syntaxe dans server.cc
server.cc : Ajout d'infos de débogage et correction erreur de syntaxe
(de Fred le mauvais muhaha).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@34 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Frédéric Lassabe cbe71f0004 Fixes the new dist_max search
Last (at least, we hope) mod. of getkClosestInSs function.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@33 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Frédéric Lassabe b2f613bce5 Server modif.: changes getClosestInSS
Straightforward '=' between old and new values.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@32 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani 6641aef72b Réorganisation du code dans server.cc
server.{cc,hh} :
* Mutualisation du code des deux fonctions pointExists().
* Idem avec les deux fonctions pointIndex().
* makePointListFromFile() : correction pour la généricité de la fonction
  (lecture pour la liste des points de référence / lecture pour la liste
  de pérégrination).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@31 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani 54d788586f Commit-sauvegarde de modifs sur server.cc
/!\ Cette révision est présente uniquement pour sauvegarde de
    modifications. Certains des changements apportés seront annulés à la
    prochaine révision.
/!\ Bogue connu de cette révision : la lecture du fichier de
    pérégrination est faite grâce à la fonction makePointListFromFile(),
    donc tous les points vont dans la même entrée de la liste. Nécessité
    de créer une fonction adaptée.

server.cc/hh :
* Modifications pour lire un fichier de pérégrination et effectuer les
  calculs de position.
* getkClosestInSs() : correction du sens de la comparaison pour
  récupérer la distance maximale.
*	makeReferencePointListFromFile(const string &filename) : remplacement
 	par un appel à la nouvelle fonction générique :
 	makePointListFromFile(vector<ReferencePoint> &dest_point_list, const
 	string &filename).
* makePointListFromFile() : suppression de variables inutiles.
  printReferencePointList() : remplacement par un appel à la nouvelle
  fonction générique : printPointList(vector<ReferencePoint>
  &point_list).

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@30 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:43:59 +01:00
Matteo Cypriani ae11d3a2c3 GuiNuMo: beginning of Viterbi & many other things
Partout où cela était possible :
* Utilisation du passage de paramètre aux fonctions par référence
  constante plutôt que par valeur.

server.cc/hh :
* Suppression de l'ancienne ébauche de Fred viterbiLike().
* Création de la fonction fastViterbiLike() (Viterbi-like optimisé).
* Fonctions getkWeightedInSs() et getkClosestInSs() : simplification du
  traitement des points ignorés (suppression du booléen et passage du
  point à ignorer en pointeur, de manière à permettre une valeur NULL).
  Création de surcharges pour un appel sans point à ignorer.
* Lecture de trois coordonnées (X;Y;Z) au lieu de deux (X;Y) depuis le
  fichier des points de référence (fonctions
  makeReferencePointListFromFile() et
  extractReferencePointInfoFromBuffer()).
* Lecture des fichiers au format « Matteo » (une ligne par agrégation).
  Le format « Fred » (une ligne par AP par agrégation) est toujours
  supporté (via #define FRED_CSV_FORMAT).
* Ajout d'affichages supplémentaires pour le déboguage.

clientinfo.cc/hh :
* Modifications des attributs pour l'algorithme Viterbi-like.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@29 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:40:22 +01:00
Matteo Cypriani f5292a5dd6 Beaucoup modifs cosmétiques et ajouts dans GuiNuMo
Partout où cela était possible :
* Indentation "Emacs" du code, aération.
* Utilisation de #define pour les valeurs par défaut.
* Utilisation des valeurs par défaut dans les constructeurs.

server.cc/hh :
* Gestion d'erreur basique pour les ouvertures de fichiers.

Ajout du TODO, d'après celui fait par Fred sous format papier.

Création des répertoires :
* cfg : fichiers de configuration.
* csv : fichiers d'entrée.
* log : fichiers de sortie.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@28 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Frédéric Lassabe f273cba513 Import initial (GuiNuMo-server)
Projet d'origine, plein de bugs et pas fini.
Avant import du serveur GuiNuMo.
Plein de choses à faire.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@26 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Matteo Cypriani edd29b4ee3 Beaucoup ajouts/modifs
loc-mobile/mobile/mobile.c : Ajout d'un commentaire à propos d'un
  thread à faire (???).

loc-bts/ap/apd.c : Ajout de la gestion des Retry (paquets Wi-Fi
  réémis).

loc-bts/rtapaggregate/rtapaggregated.c : Optimisation dans
  monitor_couple_list(). Correction de la gestion du start_time des
  couples (utilisation de l'heure d'arrivée sur l'agrégateur, plutôt que
  l'heure d'arrivée sur l'AP, ce qui évite les décalages horaires entre
  les horloges des machines).

loc-bts/rtapaggregate/rtapaggregate.h : Allongement des timeouts.
  Ajout de temps entre chacune des 20 émissions de requêtes de
  calibration. Ajout d'une barre de progression en mode DEBUG.

librtaputil/rtaputil.h : Ajout des tailles des en-têtes de paquets.
  Ajout de la macron IS_RETRY().

librtaputil/librtaputil.c : Correction de timeval_to_ms(), qui
  retournait un unsigned long au lieu d'un unsigned long long. Utilisation
  de timeval_to_ms() dans sub_date(). Correction des fonctions de gestion
  des interfaces réseau, il manquait une fermeture de socket ce qui
  provoquait au bout d'un certain temps un dysfonctionnement dans apd.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@23 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Matteo Cypriani fbe2cdec78 Thread monitor dans apd
A    code/loc-mobile/TODO
M    code/loc-bts/ap/apd.c : Thread permettant de passer en mode Monitor
     lorsque l'interface Wi-Fi n'y est pas.
M    code/librtaputil/librtaputil.c : Vérification du mode avant le
     passage en Monitor dans iface_mode_monitor().

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@22 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Matteo Cypriani 2f245fc09a Ajouts dans mobile.c et librtaputil
M    code/loc-mobile/mobile/mobile.c : Passage en mode Monitor avant la
     capture.
M    code/librtaputil/librtaputil.c : Ajout des fonctions
     iface_mode_monitor(), iface_set_channel(), iface_channel_hop().
M    code/librtaputil/rtaputil.h
D    code/loc-mobile/client : Réparation de l'erreur précédente.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@21 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Matteo Cypriani ac937d1471 Modifs tx, unification makefiles
M    code/loc-mobile/librtapscanmob/librtapscanmob.c : Ajout de la
     fonction write_mac_list_to_text_file().
M    code/loc-mobile/librtapscanmob/rtapscanmob.h

Déplacement de tx.c dans un répertoire à part, sous le nom mobile.c :
D    code/loc-mobile/librtapscanmob/tx.c
A    code/loc-mobile/mobile
A    code/loc-mobile/mobile/mobile.c : Ajout de la gestion des données
     de calibration, utilisation de write_mac_list_to_text_file() au lieu de
     write_mac_list_to_file().

M    code/loc-bts/rtapaggregate/rtapaggregated.c : Format de sortie dans
     le fichier texte.

Unification des Makefiles :
M    code/loc-mobile/librtapscanmob/Makefile
A    code/loc-mobile/mobile/Makefile
M    code/loc-mobile/Makefile
M    code/loc-bts/Makefile
M    code/Makefile

A    code/loc-mobile/client : Erreur, sera supprimé au prochain commit.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@20 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani dfe60f3de5 Réorganisation
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@17 785a6c6c-259e-4ff1-8b91-dc31627914f0
  Réorganisation, phase 1

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@18 785a6c6c-259e-4ff1-8b91-dc31627914f0
  Réorganisation, phase 2

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@19 785a6c6c-259e-4ff1-8b91-dc31627914f0
  Réorganisation, suite et fin

  Correction du code en fonction de la réorganisation (références à
  librtaputil).
  Création de Makefiles de plus haut niveau.
2011-02-17 16:47:49 +01:00
Matteo Cypriani 8781613d97 Plusieurs corrections, surtout librtapanalyser
librtapanalyser :
	- Suppression des fonctions redondantes avec librtaputil.
	- Correction du code, utilisation des fonctions de librtaputil.
	- Préparation du renommage en librtapscanmob.
M    loc-mobile/code/librtapanalyser/rtapanalyser.h
M    loc-mobile/code/librtapanalyser/tx.c
M    loc-mobile/code/librtapanalyser/Makefile
M    loc-mobile/code/librtapanalyser/librtapanalyser.c

Modifications et corrections mineures :
M    loc-bts/code/ap/apd.c
M    loc-bts/code/ap/ap.h
M    loc-bts/code/librtaputil/rtaputil.h
M    loc-bts/code/librtaputil/librtaputil.c
M    loc-bts/code/rtapaggregate/rtapaggregated.c
M    loc-bts/code/rtapaggregate/rtapaggregate.h

A    loc-bts/TODO : Ajout d'une liste des choses à faire.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@16 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 2751fd7905 Distinction ports destination
Différentiation du port destination de la demande de localisation
(envoyée par le mobile) et des paquets capturés par l'AP (envoyés au
serveur d'agrégation) :
M    loc-bts/code/ap/apd.c
M    loc-bts/code/librtaputil/rtaputil.h
M    loc-bts/code/client/locclient.c

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@15 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 9fd568c817 Correction librtaputil + -O dans makefiles
M    loc-bts/code/librtaputil/librtaputil.c : variable inutilisée.
M    Tous les Makefiles : ajout de l'option d'optimisation (-O) dans les
     CFLAGS.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@13 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 55350b38cd Modifs apd et locclient
M    loc-bts/code/ap/apd.c : L'adresse du serveur d'agrégation n'est
     plus en dur dans le code, elle doit être spécifiée sur la ligne de
     commande lors de l'appel au programme.
M    loc-bts/code/ap/ap.h : Modifications mineures dans le même sens.
M    loc-bts/code/client/locclient.c

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@10 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 5640fe2479 Delete loc-bts/code/rtap.sh
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@8 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 4a2f7574f9 Modifs dans librtaputil et locclient
M    code/ap/ap.h
M    code/librtaputil/rtaputil.h
M    code/librtaputil/librtaputil.c : Suppression du bind() dans
     create_udp_sending_socket().
M    code/client/locclient.c : Ajout de la gestion de l'interface
     d'envoi. En précisant par exemple "eth1" comme premier argument, on
     peut maintenant choisir l'interface source utilisée lors de l'envoi
     de la demande.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@7 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:49 +01:00
Matteo Cypriani 2221ab58a0 Delete apd_test.c
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@5 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:42 +01:00
Matteo Cypriani 29d23523ff Import initial (TO)
Travail de l'UV TO52 à l'UTBM, par Matteo Cypriani et Pierre-Frédéric
Rossel. Une partie du code provient du travail sur la TX.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@3 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:34:37 +01:00
Matteo Cypriani 6716b37bb6 Import initial (TX)
Travail de l'UV TX52 à l'UTBM, par Matteo Cypriani et Pierre-Frédéric
Rossel, sur une base de code de Frédéric Lassabe.
Code en « version finale revue et augmentée » envoyée à Frédéric Lassabe
le 03/07/2007.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@6 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:33:02 +01:00
Matteo Cypriani 2b60f1c055 Ajout répertoire pour les scripts d'administration.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@1 785a6c6c-259e-4ff1-8b91-dc31627914f0
2008-02-13 15:56:34 +00:00