Update TODOs

This commit is contained in:
Matteo Cypriani 2011-07-29 22:26:38 +02:00
parent a9f4750f34
commit 1a5fab9b99
2 changed files with 66 additions and 47 deletions

36
TODO
View File

@ -1,11 +1,14 @@
* Global
- Add option dump-configuration (displays the config & exits).
- Makefiles:
° Translate comments & help.
° Merge Makefile and Makefile_atheros*. Use template makefiles,
autohell, cmake…?
- Use string for network exchanges?
- Mark arguments as const in function headers if needed
That is (mostly) done in the owlps-positioning C++ code, but not
constantly in C modules.
Mostly done in the owlps-positioning C++ code (should check that),
but not constantly in C modules.
[Done in libowlps & libowlps-client.]
- Allow to use hostnames instead of IP addresses in all modules
getaddrinfo(3) (or gethostbyname(3)) should be used when opening
@ -25,10 +28,14 @@
* Aggregator
- -o should be optional.
- Add an option to (not) flush the output file.
- Refactor:
° monitor_requests()
° got_request()
- inet_ntoa() is not secure with threads
(But it is currently used by only one thread.) Use inet_ntop()
instead?
- Refactor got_request().
- Use the type of a request to identify it?
(along with the mobile MAC address and the request time)
- got_request(): option for the maximal difference time
@ -36,36 +43,29 @@
and received within an interval of 10ms are part of the same
request. We should define an option to allow user to choose the
time he wants.
- Allow blank parameters for output options.
* Listener
- Refactor and review read_packet().
- Handle better the configuration file reading
Get rid of the "Cannot open configuration file" error, in quiet
mode and when the default configuration file has to be used (no
file specified by the user with -f).
- Listen for autocalibration requests without sending requests?
- read_packet(): use ieee80211_header_size for all implicit packets
Currently the size is corrected only for data packets.
- Move endianess #defines in libowlps?
- Merge Makefile and Makefile_atheros?
Use autohell, cmake, etc.?
- Use positive (USE_CONFUSE) and negative (NO_USE_PTHREAD) options?
The default options could be modified, but that's not so important,
is it?
* Client
- Handle signals.
- Add verbose & quiet options.
- Log sent requests?
- Allow to use a string for the direction?
Could be nice, but probably useless.
* Positioning
- Has its own fat TODO file, which I should translate.
* writeInDb
- Do something about that
° Merge in owlps-positioning?
° Delete?
- Has its own fat TODO file, which I could merge in here.

View File

@ -1,17 +1,60 @@
- Multithread algorithm calls.
- Known bugs
° FBCM always gives the same result.
° Cannot compute the error (Real) with autocalibration requests.
- Write a class for Request::type?
- 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::regenerate_reference_points() into several
functions.
° Create virtual class OutputSocket to factorise code of
OutputUDPSocket & OutputTCPSocketEvAAL.
° 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
° Add the area to the result in OutputCSV.
° When reading the APs, add them to the mobiles' list (or another
way to be able to have a single entry for an AP).
° Rename minmax-start & stop, since it is used elsewhere (grep
minmax-start).
° 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.
- Unit tests
° Update tests (currently unmaintained).
° Unfinished tests:
@ -20,6 +63,9 @@
. 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.
- Revoir le diagramme UML
° Associations : devraient êtres représentées par des attributs
@ -27,25 +73,6 @@
° Compositions : devraient être représentées par des attributs
normaux.
- Building
Dans le destructeur, vérifier qu'il faut bien supprimer les Area et
les Waypoint. Si oui, faut-il aussi les enlever des listes dans
Stock ? (Pour l'instant ils ne sont pas dans Stock.)
- ReferencePoint
° La liste des requêtes devrait être un unordered_set (et pas un
vector), pour garantir l'unicité des entrées.
- MinMax
° Différencier le pas pour X, Y et Z ?
- 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
- « C++ en action »
° Espaces de noms ? 109
° Réserver l'espace mémoire des vector avec reserve(). 217
@ -59,11 +86,3 @@
publics. La classe Direction (et maintenant Timestamp) tend à
respecter ce principe en utilisant mieux les opérateurs et en ne
proposant pas d'accesseur direct.
- Miscellaneous
° Pointer function arguments: const * const <type>
- Timestamp
Dans les tests, il y a une probabilité de 1/1000000 que la valeur
en ns et la valeur arrondie en ms soient identiques. Dans ce cas,
certains tests peuvent échouer.