[Positioning] Include algorithm name in results
This commit is contained in:
parent
670dfdc867
commit
4752198ce7
|
@ -26,8 +26,6 @@
|
|||
normaux.
|
||||
|
||||
- Positioning
|
||||
° Afficher le nom de chaque algorithme lors de la sortie d'un
|
||||
résultat.
|
||||
° Pour une requête, la sortie des résultats de tous les algos
|
||||
devrait se faire simultanément sur le medium de sortie, ce qui
|
||||
permettrait par exemple de créer un tableau pour l'affichage CSV
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
Result CartographyAlgorithm::compute(const Request &request)
|
||||
{
|
||||
Point3D position(select_point(request)) ;
|
||||
return Result(&request, position) ;
|
||||
return Result(&request, position, name) ;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ protected:
|
|||
float friis_index(const AccessPoint *const ap) const ;
|
||||
|
||||
public:
|
||||
FBCM(void) {}
|
||||
FBCM(void): PositioningAlgorithm("FBCM") {}
|
||||
~FBCM(void) {}
|
||||
|
||||
float estimate_distance(const Measurement &measurement) ;
|
||||
|
|
|
@ -12,7 +12,7 @@ Result FRBHMBasic::compute(const Request &_request)
|
|||
compute_ap_distance_circles() ;
|
||||
Point3D position(multilaterate_2d(closest_in_ss->get_z())) ;
|
||||
|
||||
return Result(request, position) ;
|
||||
return Result(request, position, name) ;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -13,7 +13,8 @@ protected:
|
|||
float friis_index(const AccessPoint *const ap) const ;
|
||||
|
||||
public:
|
||||
FRBHMBasic(void): closest_in_ss(NULL) {}
|
||||
FRBHMBasic(void):
|
||||
PositioningAlgorithm("FRBHMBasic"), closest_in_ss(NULL) {}
|
||||
~FRBHMBasic(void) {}
|
||||
|
||||
/** @name Operations */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
class InterlinkNetworks: public MultilaterationAlgorithm
|
||||
{
|
||||
public:
|
||||
InterlinkNetworks(void) {}
|
||||
InterlinkNetworks(void): PositioningAlgorithm("InterlinkNetworks") {}
|
||||
~InterlinkNetworks(void) {}
|
||||
|
||||
float estimate_distance(const Measurement &measurement) ;
|
||||
|
|
|
@ -58,7 +58,7 @@ Result MultilaterationAlgorithm::compute(const Request &_request)
|
|||
compute_ap_distance_circles() ;
|
||||
Point3D position(multilaterate()) ;
|
||||
|
||||
return Result(request, position) ;
|
||||
return Result(request, position, name) ;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@ const string OutputCSV::result_to_csv(const Result &result)
|
|||
else
|
||||
csv_line << ";;;" ;
|
||||
|
||||
csv_line << ';' << result.get_algorithm() ;
|
||||
|
||||
Point3D position = result.get_position() ;
|
||||
csv_line
|
||||
<< ';' << position.get_x()
|
||||
|
|
|
@ -7,8 +7,13 @@
|
|||
/// Super-class of all positioning algorithms
|
||||
class PositioningAlgorithm
|
||||
{
|
||||
protected:
|
||||
/// Name of the algorithm
|
||||
const std::string name ;
|
||||
|
||||
public:
|
||||
PositioningAlgorithm(void) {}
|
||||
PositioningAlgorithm(const std::string _name = "UnknownAlgorithm"):
|
||||
name(_name) {}
|
||||
virtual ~PositioningAlgorithm(void) {}
|
||||
|
||||
virtual Result compute(const Request &request) = 0 ;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
class RADAR: public CartographyAlgorithm
|
||||
{
|
||||
public:
|
||||
RADAR(void) {}
|
||||
RADAR(void): PositioningAlgorithm("RADAR") {}
|
||||
~RADAR(void) {}
|
||||
|
||||
const ReferencePoint& select_point(const Request &request) ;
|
||||
|
|
|
@ -14,8 +14,8 @@ Result RealPosition::compute(const Request &request)
|
|||
Point3D *coordinates =
|
||||
static_cast<Point3D*>(
|
||||
calibration_request->get_reference_point()) ;
|
||||
return Result(&request, *coordinates) ;
|
||||
return Result(&request, *coordinates, name) ;
|
||||
}
|
||||
|
||||
return Result(&request) ;
|
||||
return Result(&request, name) ;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
class RealPosition: public PositioningAlgorithm
|
||||
{
|
||||
public:
|
||||
RealPosition(void): PositioningAlgorithm("RealPosition") {}
|
||||
|
||||
Result compute(const Request &request) ;
|
||||
} ;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ const Result& Result::operator=(const Result &source)
|
|||
if (this == &source)
|
||||
return *this ;
|
||||
|
||||
algorithm = source.algorithm ;
|
||||
position = source.position ;
|
||||
request = source.request ;
|
||||
|
||||
|
@ -21,6 +22,7 @@ const Result& Result::operator=(const Result &source)
|
|||
bool Result::operator==(const Result &source) const
|
||||
{
|
||||
return
|
||||
algorithm == source.algorithm &&
|
||||
position == source.position &&
|
||||
request == source.request ;
|
||||
}
|
||||
|
@ -30,12 +32,11 @@ bool Result::operator==(const Result &source) const
|
|||
std::ostream& operator<<(std::ostream &os, const Result &r)
|
||||
{
|
||||
if (r.request == NULL)
|
||||
os << "For an unknown request, the result is: " ;
|
||||
os << "For an unknown request, the " ;
|
||||
else
|
||||
os
|
||||
<< "For the following request: "
|
||||
<< *(r.request)
|
||||
<< "\nThe result is: " ;
|
||||
os << r.position ;
|
||||
os << "For the following request: " << *(r.request) << "\nThe " ;
|
||||
os
|
||||
<< "result of the algorithm " << r.algorithm
|
||||
<< " is: " << r.position ;
|
||||
return os ;
|
||||
}
|
||||
|
|
|
@ -5,22 +5,29 @@ class Request ;
|
|||
|
||||
#include "point3d.hh"
|
||||
|
||||
#include <string>
|
||||
|
||||
/// Represents a result computed by a positioning algorithm
|
||||
class Result
|
||||
{
|
||||
protected:
|
||||
Point3D position ;
|
||||
Request *request ;
|
||||
std::string algorithm ;
|
||||
|
||||
public:
|
||||
Result(const Request *_request = NULL):
|
||||
request(const_cast<Request*>(_request)) {}
|
||||
Result(const Request *_request, const Point3D &_position):
|
||||
position(_position), request(const_cast<Request*>(_request)) {}
|
||||
Result(const Request *_request = NULL,
|
||||
const std::string &_algorithm = "UnknownAlgorithm"):
|
||||
request(const_cast<Request*>(_request)), algorithm(_algorithm) {}
|
||||
Result(const Request *_request, const Point3D &_position,
|
||||
const std::string &_algorithm):
|
||||
position(_position), request(const_cast<Request*>(_request)),
|
||||
algorithm(_algorithm) {}
|
||||
~Result(void) {}
|
||||
|
||||
/** @name Read accessors */
|
||||
//@{
|
||||
const std::string& get_algorithm(void) const ;
|
||||
const Point3D& get_position(void) const ;
|
||||
const Request* get_request(void) const ;
|
||||
//@}
|
||||
|
@ -41,6 +48,12 @@ public:
|
|||
/* *** Read accessors *** */
|
||||
|
||||
|
||||
inline const std::string& Result::get_algorithm() const
|
||||
{
|
||||
return algorithm ;
|
||||
}
|
||||
|
||||
|
||||
inline const Point3D& Result::get_position() const
|
||||
{
|
||||
return position ;
|
||||
|
|
Loading…
Reference in New Issue