From 2886d87ab64c43890cc710d88f66468227d32573 Mon Sep 17 00:00:00 2001 From: Matteo Cypriani Date: Mon, 1 Aug 2011 10:00:19 +0200 Subject: [PATCH] Merge TODOs Merge owlps-positioning/TODO into TODO. --- TODO | 70 +++++++++++++++++++++++++++++++++++++++++- owlps-positioning/TODO | 70 ------------------------------------------ 2 files changed, 69 insertions(+), 71 deletions(-) delete mode 100644 owlps-positioning/TODO diff --git a/TODO b/TODO index f46cbb2..0f0beab 100644 --- a/TODO +++ b/TODO @@ -68,4 +68,72 @@ * Positioning -- Has its own fat TODO file, which I could merge in here. +- Known bugs + ° FBCM always gives the same result. + ° Cannot compute the error (Real) with autocalibration requests. + +- Algorithms + ° Check MultilaterationAlgorithm::make_constant_term(). + Hint: mobile.trx_power() vs. ap.trx_power(). + ° MinMax: use a different step for X, Y and Z? + +- Autocalibration + ° Generate reference points in 3D. + ° Handle 2 APs, not only >2 APs. + ° Find why some CalibrationRequest were not deleted when + calling Stock::delete_calibration_request() (via + ReferencePoint::delete_requests()). + +- Refactoring + ° Split Stock::generate_reference_point() into several functions. + ° Synchronise InputCSV & InputUDPSocket (calibration requests), + factorise code into InputMedium. + ° Write a class for Request::type? + CalibrationRequest::direction uses a dedicated class Direction, why + not Request::type? That would simplify writing of the type to + streams (no need to cast each time anymore). + ° Wi-Fi devices' list + . Merge Stock::mobiles & Stock::aps? + . Factorise AccessPointsReaderCSV & MobilesReaderCSV? + ° Members renaming + . InputMedium: + . - current_line_nb & get_current_line_nb() + . - get_next_request() −> read_next_request() + . Input: get_next_request() −> read_next_request() + . Area: p_min et p_max −> coord_min et coord_max + +- User interface + ° When reading the APs, add them to the mobiles' list (or another + way to be able to have a single entry for an AP). + ° Review the option names & descriptions. + ° Add option positioning.self-calibrate (or autocalibrate), to + activate automatically the options needed by the autocalibration. + ° Improve --verbose (and/or debug level): print the options, etc. + ° Case-insensitive string comparison (for algorithm names, etc.). + ° Use a prefix for configuration files (search for config files set + with relative path in owlps-positioning.cfg in the same directory). + +- Optimisation & code improvement + ° Multithread algorithm calls. + ° ReferencePoint: the request list should be an unordered_set + instead of a vector, to guarantee the unicity of the elements. + ° Pre-allocate vectors' memory with reserve(). + "C++ en action", p. 217. + ° Copy of containers to streams (in some operator<<() for + instance). + "C++ en action", p. 275. + ° Review all the classes to respect principles exposed in "Coder + proprement", chapter 6, p. 103: do implement accessors for each + class attribute, etc. + +- Unit tests + ° Update tests (currently unmaintained). + ° Unfinished tests: + . InputDataReader + . Input + . Output + . Positioning + ° Test InterlinkNetworks::compute() ? + ° Timestamp: there is a probability of 10^-6 that the value in + nanoseconds and the rounded value in milliseconds are identical, in + which case some tests can fail. diff --git a/owlps-positioning/TODO b/owlps-positioning/TODO deleted file mode 100644 index 74ca5cb..0000000 --- a/owlps-positioning/TODO +++ /dev/null @@ -1,70 +0,0 @@ - -- Known bugs - ° FBCM always gives the same result. - ° Cannot compute the error (Real) with autocalibration requests. - -- Algorithms - ° Check MultilaterationAlgorithm::make_constant_term(). - Hint: mobile.trx_power() vs. ap.trx_power(). - ° MinMax: use a different step for X, Y and Z? - -- Autocalibration - ° Generate reference points in 3D. - ° Handle 2 APs, not only >2 APs. - ° Find why some CalibrationRequest were not deleted when - calling Stock::delete_calibration_request() (via - ReferencePoint::delete_requests()). - -- Refactoring - ° Split Stock::generate_reference_point() into several functions. - ° Synchronise InputCSV & InputUDPSocket (calibration requests), - factorise code into InputMedium. - ° Write a class for Request::type? - CalibrationRequest::direction uses a dedicated class Direction, why - not Request::type? That would simplify writing of the type to - streams (no need to cast each time anymore). - ° Wi-Fi devices' list - . Merge Stock::mobiles & Stock::aps? - . Factorise AccessPointsReaderCSV & MobilesReaderCSV? - ° Members renaming - . InputMedium: - . - current_line_nb & get_current_line_nb() - . - get_next_request() −> read_next_request() - . Input: get_next_request() −> read_next_request() - . Area: p_min et p_max −> coord_min et coord_max - -- User interface - ° When reading the APs, add them to the mobiles' list (or another - way to be able to have a single entry for an AP). - ° Review the option names & descriptions. - ° Add option positioning.self-calibrate (or autocalibrate), to - activate automatically the options needed by the autocalibration. - ° Improve --verbose (and/or debug level): print the options, etc. - ° Case-insensitive string comparison (for algorithm names, etc.). - ° Use a prefix for configuration files (search for config files set - with relative path in owlps-positioning.cfg in the same directory). - -- Optimisation & code improvement - ° Multithread algorithm calls. - ° ReferencePoint: the request list should be an unordered_set - instead of a vector, to guarantee the unicity of the elements. - ° Pre-allocate vectors' memory with reserve(). - "C++ en action", p. 217. - ° Copy of containers to streams (in some operator<<() for - instance). - "C++ en action", p. 275. - ° Review all the classes to respect principles exposed in "Coder - proprement", chapter 6, p. 103: do implement accessors for each - class attribute, etc. - -- Unit tests - ° Update tests (currently unmaintained). - ° Unfinished tests: - . InputDataReader - . Input - . Output - . Positioning - ° Test InterlinkNetworks::compute() ? - ° Timestamp: there is a probability of 10^-6 that the value in - nanoseconds and the rounded value in milliseconds are identical, in - which case some tests can fail.