Update TODOs
This commit is contained in:
parent
a9f4750f34
commit
1a5fab9b99
36
TODO
36
TODO
|
@ -1,11 +1,14 @@
|
||||||
* Global
|
* Global
|
||||||
|
|
||||||
|
- Add option dump-configuration (displays the config & exits).
|
||||||
- Makefiles:
|
- Makefiles:
|
||||||
° Translate comments & help.
|
° Translate comments & help.
|
||||||
|
° Merge Makefile and Makefile_atheros*. Use template makefiles,
|
||||||
|
autohell, cmake…?
|
||||||
- Use string for network exchanges?
|
- Use string for network exchanges?
|
||||||
- Mark arguments as const in function headers if needed
|
- Mark arguments as const in function headers if needed
|
||||||
That is (mostly) done in the owlps-positioning C++ code, but not
|
Mostly done in the owlps-positioning C++ code (should check that),
|
||||||
constantly in C modules.
|
but not constantly in C modules.
|
||||||
[Done in libowlps & libowlps-client.]
|
[Done in libowlps & libowlps-client.]
|
||||||
- Allow to use hostnames instead of IP addresses in all modules
|
- Allow to use hostnames instead of IP addresses in all modules
|
||||||
getaddrinfo(3) (or gethostbyname(3)) should be used when opening
|
getaddrinfo(3) (or gethostbyname(3)) should be used when opening
|
||||||
|
@ -25,10 +28,14 @@
|
||||||
|
|
||||||
* Aggregator
|
* 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
|
- inet_ntoa() is not secure with threads
|
||||||
(But it is currently used by only one thread.) Use inet_ntop()
|
(But it is currently used by only one thread.) Use inet_ntop()
|
||||||
instead?
|
instead?
|
||||||
- Refactor got_request().
|
|
||||||
- Use the type of a request to identify it?
|
- Use the type of a request to identify it?
|
||||||
(along with the mobile MAC address and the request time)
|
(along with the mobile MAC address and the request time)
|
||||||
- got_request(): option for the maximal difference 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
|
and received within an interval of 10ms are part of the same
|
||||||
request. We should define an option to allow user to choose the
|
request. We should define an option to allow user to choose the
|
||||||
time he wants.
|
time he wants.
|
||||||
- Allow blank parameters for output options.
|
|
||||||
|
|
||||||
|
|
||||||
* Listener
|
* Listener
|
||||||
|
|
||||||
- Refactor and review read_packet().
|
- 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?
|
- Listen for autocalibration requests without sending requests?
|
||||||
- read_packet(): use ieee80211_header_size for all implicit packets
|
- read_packet(): use ieee80211_header_size for all implicit packets
|
||||||
Currently the size is corrected only for data 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
|
* Client
|
||||||
|
|
||||||
|
- Handle signals.
|
||||||
|
- Add verbose & quiet options.
|
||||||
|
- Log sent requests?
|
||||||
- Allow to use a string for the direction?
|
- Allow to use a string for the direction?
|
||||||
Could be nice, but probably useless.
|
Could be nice, but probably useless.
|
||||||
|
|
||||||
|
|
||||||
* Positioning
|
* Positioning
|
||||||
|
|
||||||
- Has its own fat TODO file, which I should translate.
|
- Has its own fat TODO file, which I could merge in here.
|
||||||
|
|
||||||
|
|
||||||
* writeInDb
|
|
||||||
|
|
||||||
- Do something about that
|
|
||||||
° Merge in owlps-positioning?
|
|
||||||
° Delete?
|
|
||||||
|
|
|
@ -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
|
CalibrationRequest::direction uses a dedicated class Direction, why
|
||||||
not Request::type? That would simplify writing of the type to
|
not Request::type? That would simplify writing of the type to
|
||||||
streams (no need to cast each time anymore).
|
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
|
- 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.
|
° Improve --verbose (and/or debug level): print the options, etc.
|
||||||
° Case-insensitive string comparison (for algorithm names, etc.).
|
° Case-insensitive string comparison (for algorithm names, etc.).
|
||||||
° Use a prefix for configuration files (search for config files set
|
° Use a prefix for configuration files (search for config files set
|
||||||
with relative path in owlps-positioning.cfg in the same directory).
|
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
|
- Unit tests
|
||||||
° Update tests (currently unmaintained).
|
° Update tests (currently unmaintained).
|
||||||
° Unfinished tests:
|
° Unfinished tests:
|
||||||
|
@ -20,6 +63,9 @@
|
||||||
. Output
|
. Output
|
||||||
. Positioning
|
. Positioning
|
||||||
° Test InterlinkNetworks::compute() ?
|
° 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
|
- Revoir le diagramme UML
|
||||||
° Associations : devraient êtres représentées par des attributs
|
° Associations : devraient êtres représentées par des attributs
|
||||||
|
@ -27,25 +73,6 @@
|
||||||
° Compositions : devraient être représentées par des attributs
|
° Compositions : devraient être représentées par des attributs
|
||||||
normaux.
|
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 »
|
- « C++ en action »
|
||||||
° Espaces de noms ? 109
|
° Espaces de noms ? 109
|
||||||
° Réserver l'espace mémoire des vector avec reserve(). 217
|
° Réserver l'espace mémoire des vector avec reserve(). 217
|
||||||
|
@ -59,11 +86,3 @@
|
||||||
publics. La classe Direction (et maintenant Timestamp) tend à
|
publics. La classe Direction (et maintenant Timestamp) tend à
|
||||||
respecter ce principe en utilisant mieux les opérateurs et en ne
|
respecter ce principe en utilisant mieux les opérateurs et en ne
|
||||||
proposant pas d'accesseur direct.
|
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.
|
|
||||||
|
|
Loading…
Reference in New Issue