* server.cc: adjusted radar_exp due to parameters (suppr. pre-processing
with #ifdef PEREGRINATION and changed output)
* referencepoint.cc: fixed getSsSquareDistance by replacing missing values
by -90 dBm signal
Performs better than previous versions, however, RADAR remains the best.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@68 785a6c6c-259e-4ff1-8b91-dc31627914f0
Many bugs fixed in FBCM and Hybrid basic model.
Added parameters to radar_exp and Server contructor.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@67 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.hh :
* Modification des fichiers de mesures.
server.{cc,hh} :
* Les variables 'prout' mises par je ne sais pas trop qui dans
monitorClient(), ça ne le fait pas quand on montre du code à son
suiveur de stage !
* radar_exp() :
- Ajout de 1-NSS+FBCM.
- Utilisation du maillage complet comme points de tests (nouvelle
variable, DEFAULT_REF_POINT_FILE_1M), et d'un éventuel
sous-maillage comme points de référence (variable normale,
DEFAULT_REF_POINT_FILE).
- Ajout de la possibilité d'utiliser les points de pérégrination
comme points de test.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@66 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.hh:
- modified MINMAX_X/Y_MIN/MAX to fit Numerica size.
server.cc:
- added z-coordinate to trilat. algorithm in function "interlink".
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@65 785a6c6c-259e-4ff1-8b91-dc31627914f0
Qql affichages de débug dans monitorClient pour Soum.
(et Dom qui parle de têtes et de queues à Seb en face de moi)
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@61 785a6c6c-259e-4ff1-8b91-dc31627914f0
rtapaggregate : ajout de la possibilité de mettre la date de la demande
sur le mobile dans le fichier de sortie (codé à l'arrache avec un
#define à décommenter pour activer la fonctionnalité).
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@60 785a6c6c-259e-4ff1-8b91-dc31627914f0
This is the ultimate modification by the Geolocation master Fred.
In other words, includes z-coordinate to the min-max algorithm (name
should change soon) in functions fbcm & fbcm_friis.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@57 785a6c6c-259e-4ff1-8b91-dc31627914f0
point.hh :
* Ajout de distance(float&, float&, float&).
server.cc :
* Modification et mise à jour de radar_exp().
* Correction de l'affichage des points sélectionnés dans
getkClosestInSs().
* Correction du FBCM et d'Interlink (utilisation des distances au lieu
des distances au carré, et utilisation de valeurs absolues).
/!\ Reste à corriger frbhm_friis() !
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@56 785a6c6c-259e-4ff1-8b91-dc31627914f0
Ré-ajout de l'appel à computeTopologyDistances() dans monitorClient()
pour le FRBHM continu, qui avait sauté lors du précédent commit.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@53 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{hh,cc} :
* Ajout de computeTopologyDistances(), nécessaire au FRBHM continu.
* Intégration aux modifications de Soumaya.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@51 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{hh,cc} :
* Ajout des fonctions selectDistances() et computeEuclideanDistances()
qui servent à calculer les matrices temporaires de distances entre
E_current et E_previous, pour Viterbi.
* Adaptation de fastViterbiLike() et monitorClient() pour utiliser ces
fonctions.
* Corrections mineures.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@49 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{hh,cc} :
* Changé le comportement des fonctions pointIndex() et pointExists() :
pointIndex() renvoie -1 si le point n'est pas trouvé, et pointExists()
effectue un appel à pointIndex(). Passage de toutes ces fonctions en
inline.
* Déplacement des fonctions point_tab_idx() et point_vector_idx() dans
la classe Server, en tant que variantes de pointIndex().
* Utilisation, pour les bibliothèques C, des en-têtes C++ (e.g <cmath>)
plutôt que les en-têtes C (e.g <math.h>).
* Correction des fonctions areaConnection() qui utilisaient la mauvaise
liste de points.
* Diverses corrections mineures.
* Modification de la fonction makeWaypointListFromFile() afin de prendre
en compte la topologie dans le calcul des distances.
* Ajout de la fonction inTheSameArea(), qui permet de savoir si deux
points appartiennent à la même zone.
* Ajout de la fonction checkTopology() qui effectues quelques
vérifications sur la topologie du bâtiment déclarée dans les fichiers
de configuration.
area.cc :
* Modification du constructeur de manière à ce qu'il accepte tous les
formats possibles de définitions des zones (4 ordres possibles pour
les coordonnées).
point.{hh,cc} :
* Modification de l'operator< pour que la comparaison ne soit pas
ambigüe (posait problème dans les set).
* Modification des autres opérateurs, ajout des opérateurs <= et >=.
cfg/ :
* waypoints.csv : ajout des points de passage du rez-de-chaussée et des
escaliers.
* topo.csv : ajout des zones du rez-de-chaussée et des escaliers.
Makefile :
* Suppression d'options inutiles.
* Suppression de l'option d'optimisation, qui causait une boucle infinie
bizarre : cf. Server::makeWaypointListFromFile().
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@48 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{hh,cc} :
* Utilisation d'une map plutôt que d'une multimap pour stocker la liste
des pièces. Conséquence : les noms des zones doivent être uniques, il
faut donc numéroter les zones des pièces composites (par exemple
« Couloir N1 A » et « Couloir N1 B »).
* Ajout de la fonction inWhichAreas() qui permet d'obtenir la liste des
zones auxquelles appartient un point.
* Modification de la fonction makeWaypointDistancesFromFile() (renommée
makeWaypointListFromFile()) de manière à ce qu'elle calcule la matrice
des distances entre points de passage (lecture d'une liste de points).
Abandon du format décrivant les points en visibilité (voir le fichier
cfg/distances.csv, supprimé à cette révision), puisque nous nous
servons des points de passage et de la description des zones pour
calculer les liens entre points. RESTE À FAIRE : prise en comppte de
la topologie dans le calcul de distance.
* Ajout de deux fonctions areaConnection() qui permettent de récupérer
la liste des points de passage d'une zone, ou faisant l'intersection
entre deux zones.
* Ajout de la fonction distanceTopology, qui calcule la distance entre
deux points en tenant compte de la topologie (zones et points de
passage entre elles).
* Ajout de la fonction makeReferencePointDistances(), qui calcule les
distances entre points de référence, en tenant compte de la
topologie.
* Ajout de la fonction point_vector_idx(), semblable à point_tab_idx()
mais pour un vector<Point>.
referencepoint.{hh,cc} :
* Ajout de l'operator de cast en Point (operator Point()).
area.{hh,cc} :
* Ajout de l'operator==(Area).
cfg/distances.csv
* Suppression de ce fichier obsolète.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@47 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{hh,cc} :
* Ajout des affichage de trace (DEBUG_T) pour les fonctions qui n'en avaient pas.
* Retouches mineures.
cfg/topo.csv :
* Ajout explications.
* Séparation couloir / palier.
cfg/waypoints.csv :
* Création. Fichier contenant la liste des points de passage.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@46 785a6c6c-259e-4ff1-8b91-dc31627914f0
server.{cc,hh} :
* Ajout d'un type "ALGORITHM" pour utiliser des noms compréhensibles
plutôt que des entiers pour désigner les différents algorithmes
utilisables dans la fonction monitorClient().
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@45 785a6c6c-259e-4ff1-8b91-dc31627914f0
code/loc-bts/client :
* Affinement de la gestion du nombre de paquets envoyés et du délai
entre envois de paquets, dans le cas de la demande de localisation et
dans le cas de la requête de calibration.
* Makefile : Ajout d'une cible de compilation statique, afin d'obtenir
un binaire autonome à copier sur les clients.
code/librtaputil/Makefile :
* Ajout d'un lien symbolique vers la version numérotée de la
bibliothèque, dans la cible "install-dynamic".
code/GuiNuMo-server/test.bash :
* Suppression de ce fichier obsolète.
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@44 785a6c6c-259e-4ff1-8b91-dc31627914f0
Le fichier "test.cc" a été renommé en "guinumo.cc" ; l'exécutable "test"
produit par la compilation devient "guinumo".
server.{hh,cc} :
* Séparation de la fonction fastViterbiLike(), déplacement d'une partie
du code dans la nouvelle fonction monitorClient(), comme expliqué à la
révision 41.
* Implémentation de createClient().
git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@42 785a6c6c-259e-4ff1-8b91-dc31627914f0
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
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
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
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
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
/!\ 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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