[Positioning] Add minmax-start & minmax-stop opts.

The start and stop coordinates for the MinMax multilateration method
used to be hard-coded. One should now provide the good coordinates using
the new options positioning.minmax-start and positioning.minmax-stop.
This commit is contained in:
Matteo Cypriani 2011-04-27 18:57:00 +02:00
parent ccb57c86ec
commit eb61dfc0e0
6 changed files with 42 additions and 10 deletions

View File

@ -245,7 +245,9 @@ $(OBJ_DIR)/output.o: \
$(OBJ_DIR)/multilaterationalgorithm.o: \
$(SRC_DIR)/positioningalgorithm.hh \
$(OBJ_DIR)/minmax.o \
$(OBJ_DIR)/mobile.o
$(OBJ_DIR)/mobile.o \
$(OBJ_DIR)/configuration.o \
$(OBJ_DIR)/posexcept.o
$(OBJ_DIR)/cartographyalgorithm.o: \
$(SRC_DIR)/positioningalgorithm.hh \
$(OBJ_DIR)/referencepoint.o

View File

@ -33,7 +33,6 @@
- MinMax
° Différencier le pas pour X, Y et Z ?
° Régler le start & stop dans MultilaterationAlgorithm.
- Renommages de membres
° InputMedium :

View File

@ -45,6 +45,14 @@ csv-file = /tmp/owlps-positioning.log
#algorithm = RADAR
#algorithm = FRBHMBasic
# Start and stop coordinates for the MinMax multilateration method.
# Since MinMax is currently the only multilateration method implemented
# in OwlPS, you should define these parameters if you use any of the
# multilateration-based algorithms (InterlinkNetworks, FBCM, FRBHM).
# They are declared as strings (X;Y;Z). Do not quote!
#minmax-start = -2;-2;0
#minmax-stop = 20;30;6
[output]
# This is the default output if none is specified.

View File

@ -2,10 +2,15 @@
#
# IMPORTANT:
# You need a precise topology description if you use algorithms that
# handle it. Since none of them are currenty implemented, you probably
# can save a lot of time by only providing a pseudo-area containing
# the whole deployment area in this file (in this case you will not
# declare any waypoint in the waypoints' definition file).
# handle it. Since none of them are currently implemented, you
# probably can save a lot of time by skipping the topology (and
# waypoints) description.
#
# ALSO IMPORTANT (EVEN IF YOU DON'T DESCRIBE THE TOPOLOGY):
# If you use the MinMax multilateration method, you should provide
# minmax-start and minmax-stop parameters that match the deployment
# area. That is, the cuboid formed by these two points should include
# the whole deployment area.
#
# This file lists the buildings and their "homogeneous areas" (rooms).
#

Can't render this file because it contains an unexpected character in line 10 and column 43.

View File

@ -1,6 +1,8 @@
#include "multilaterationalgorithm.hh"
#include "minmax.hh"
#include "mobile.hh"
#include "configuration.hh"
#include "posexcept.hh"
using namespace std ;
using std::tr1::unordered_map ;
@ -14,10 +16,20 @@ MultilaterationAlgorithm::MultilaterationAlgorithm():
request(NULL)
{
// Will be changed when other multilateration methods will be
// implemented
multilateration_method = new MinMax(Point3D(-0.5, -0.5, 0),
Point3D(10, 31.5, 6)) ;
// FIXME: minmax start and stop
// implemented.
if (! Configuration::is_configured("positioning.minmax-start") ||
! Configuration::is_configured("positioning.minmax-stop"))
throw missing_configuration(
"You want to use MinMax, but either positioning.minmax-start or"
" positioning.minmax-stop is not defined!") ;
Point3D minmax_start(
Configuration::string_value("positioning.minmax-start")) ;
Point3D minmax_stop(
Configuration::string_value("positioning.minmax-stop")) ;
multilateration_method = new MinMax(minmax_start, minmax_stop) ;
}

View File

@ -172,6 +172,12 @@ void UserInterface::fill_positioning_options()
"Algorithms used to compute positions. You can specify \
this option more than once (but at least once). Allowed: Real, FBCM, \
FRBHMBasic, InterlinkNetworks, RADAR.")
("positioning.minmax-start", po::value<string>(),
"Coordinates of the start point of the MinMax multilateration \
method (string format: \"X;Y;Z\").")
("positioning.minmax-stop", po::value<string>(),
"Coordinates of the stop point of the MinMax multilateration \
method (string format: \"X;Y;Z\").")
;
file_options->add(options) ;