[Positioning] Del MultilaterationAlgorithm::mobile

Makefile: Use colorgcc.
Update TODO.
This commit is contained in:
Matteo Cypriani 2010-05-04 10:44:19 +02:00
parent 428639b814
commit 630df51702
7 changed files with 18 additions and 12 deletions

View File

@ -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

View File

@ -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é.

View File

@ -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) ;
}

View File

@ -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) ;

View File

@ -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) ;
}

View File

@ -8,7 +8,6 @@
class MultilaterationAlgorithm: public PositioningAlgorithm
{
protected:
const Mobile *mobile ;
const Request *request ;
std::tr1::unordered_map<AccessPoint*, float> ap_distances ;
@ -21,7 +20,7 @@ protected:
//@}
public:
MultilaterationAlgorithm(const Mobile *_mobile = NULL) ;
MultilaterationAlgorithm(void) ;
virtual ~MultilaterationAlgorithm(void) ;

View File

@ -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) ;