From 630df5170259f8f91b4607b2f1fe288c3c608333 Mon Sep 17 00:00:00 2001 From: Matteo Cypriani Date: Tue, 4 May 2010 10:44:19 +0200 Subject: [PATCH] [Positioning] Del MultilaterationAlgorithm::mobile Makefile: Use colorgcc. Update TODO. --- owlps-positioning/Makefile | 2 +- owlps-positioning/TODO | 4 ++++ owlps-positioning/src/interlinknetworks.cc | 4 +++- owlps-positioning/src/interlinknetworks.hh | 3 +-- owlps-positioning/src/multilaterationalgorithm.cc | 8 +++----- owlps-positioning/src/multilaterationalgorithm.hh | 3 +-- owlps-positioning/tests/interlinknetworks_test.hh | 6 +++++- 7 files changed, 18 insertions(+), 12 deletions(-) diff --git a/owlps-positioning/Makefile b/owlps-positioning/Makefile index 3faaa5d..309f34b 100644 --- a/owlps-positioning/Makefile +++ b/owlps-positioning/Makefile @@ -23,7 +23,7 @@ CPPCHECK = cppcheck --enable=all DOXYGEN = doxygen >/dev/null # Compilation tools and flags -GXX = g++-4.4 +GXX = colorgcc #DEBUG = -g TESTSGXXFLAGS = -I$(TESTS_DIR) -I$(SRC_DIR) -I. GXXFLAGS = $(DEBUG) -Wall -Wextra diff --git a/owlps-positioning/TODO b/owlps-positioning/TODO index 0213a4b..d900487 100644 --- a/owlps-positioning/TODO +++ b/owlps-positioning/TODO @@ -1,4 +1,8 @@ +- Interface utilisateur + ° Pour plus de souplesse, comparer les chaînes sans tenir compte de + la casse. + - Hachages ° Regrouper les surcharges de hash_value() dans un fichier d'en-tête dédié. diff --git a/owlps-positioning/src/interlinknetworks.cc b/owlps-positioning/src/interlinknetworks.cc index f41242d..21ba497 100644 --- a/owlps-positioning/src/interlinknetworks.cc +++ b/owlps-positioning/src/interlinknetworks.cc @@ -7,6 +7,8 @@ using std::tr1::unordered_map ; float InterlinkNetworks::estimate_distance(const Measurement &measurement) { + assert(request) ; + const AccessPoint &ap = *measurement.get_ap() ; assert(&ap) ; @@ -18,7 +20,7 @@ float InterlinkNetworks::estimate_distance(const Measurement &measurement) ap.get_frequency() / (4 * M_PI) ) + - mobile->get_antenna_gain() ; + request->get_mobile()->get_antenna_gain() ; const float &average_ss = measurement.get_average_ss() ; return pow(10, (constant_term - average_ss) / 35) ; } diff --git a/owlps-positioning/src/interlinknetworks.hh b/owlps-positioning/src/interlinknetworks.hh index f4189ff..0be86a6 100644 --- a/owlps-positioning/src/interlinknetworks.hh +++ b/owlps-positioning/src/interlinknetworks.hh @@ -7,8 +7,7 @@ class InterlinkNetworks: public MultilaterationAlgorithm { public: - InterlinkNetworks(const Mobile *_mobile = NULL): - MultilaterationAlgorithm(_mobile) {} + InterlinkNetworks(void) {} ~InterlinkNetworks(void) {} float estimate_distance(const Measurement &measurement) ; diff --git a/owlps-positioning/src/multilaterationalgorithm.cc b/owlps-positioning/src/multilaterationalgorithm.cc index 68d7a5f..3affec3 100644 --- a/owlps-positioning/src/multilaterationalgorithm.cc +++ b/owlps-positioning/src/multilaterationalgorithm.cc @@ -9,9 +9,8 @@ using std::tr1::unordered_map ; /* *** Constructors *** */ -MultilaterationAlgorithm:: -MultilaterationAlgorithm(const Mobile *_mobile): - mobile(_mobile), request(NULL) +MultilaterationAlgorithm::MultilaterationAlgorithm(): + request(NULL) { // Will be changed when other multilateration methods will be // implemented @@ -34,10 +33,9 @@ MultilaterationAlgorithm::~MultilaterationAlgorithm() Result MultilaterationAlgorithm::compute(const Request &_request) { request = &_request ; - mobile = request->get_mobile() ; compute_ap_distance_circles() ; - Point3D position = multilaterate() ; + Point3D position(multilaterate()) ; return Result(request, position) ; } diff --git a/owlps-positioning/src/multilaterationalgorithm.hh b/owlps-positioning/src/multilaterationalgorithm.hh index 742dc60..6c18084 100644 --- a/owlps-positioning/src/multilaterationalgorithm.hh +++ b/owlps-positioning/src/multilaterationalgorithm.hh @@ -8,7 +8,6 @@ class MultilaterationAlgorithm: public PositioningAlgorithm { protected: - const Mobile *mobile ; const Request *request ; std::tr1::unordered_map ap_distances ; @@ -21,7 +20,7 @@ protected: //@} public: - MultilaterationAlgorithm(const Mobile *_mobile = NULL) ; + MultilaterationAlgorithm(void) ; virtual ~MultilaterationAlgorithm(void) ; diff --git a/owlps-positioning/tests/interlinknetworks_test.hh b/owlps-positioning/tests/interlinknetworks_test.hh index 6c70ad8..7b95d20 100644 --- a/owlps-positioning/tests/interlinknetworks_test.hh +++ b/owlps-positioning/tests/interlinknetworks_test.hh @@ -8,9 +8,13 @@ public: void test_distance(void) { + MultilaterationAlgorithm *algo = new InterlinkNetworks() ; + + // Initialise algo->request char mobile_gain = 3, mobile_power = 15 ; Mobile mobile("", "", mobile_gain, mobile_power) ; - MultilaterationAlgorithm *algo = new InterlinkNetworks(&mobile) ; + Request request(&mobile) ; + algo->compute(request) ; // yes, that's ugly char ap_gain = 5, ap_power = 20, ap_channel = 1 ; AccessPoint ap(Point3D(), "", "", ap_gain, ap_power, ap_channel) ;