diff --git a/TODO b/TODO index 7fd9f0a..6ab278c 100644 --- a/TODO +++ b/TODO @@ -1,11 +1,21 @@ * Global +- Known bugs + ° libconfuse bugs (Listener & Aggregator): + . http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639074 + . http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639115 +- Rename some fields in the structures + ° start_time -> rx_time, first_rx_time +- Eliminate remaining exit() calls to avoid memory leaks on exit. - 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? +- Use a string for positioning requests + Instead of a binary packet, use a CSV string containing the request + information. This will allow easy developments of clients in other + languages. - Mark arguments as const in function headers if needed Mostly done in the owlps-positioning C++ code (should check that), but not constantly in C modules. @@ -52,9 +62,17 @@ 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? +- Filter the number of implicit packets per mobile? + Currently, in passive or mixed mode, *all* the receive packets are + transmitted to the aggregator. +- Option "read-only autocalibration"? + 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. +- BSD port + http://www.unixgarden.com/index.php/programmation/introduction-a-la-programmation-wifi-en-c-sous-netbsd +- Use the "official" radiotap parser? (Expat license) + http://git.sipsolutions.net/?p=radiotap.git * Client @@ -65,16 +83,35 @@ Could be nice, but probably useless. +* UDP to HTTP + +- Command-line options (port numbers, -v/-q, -h, -V). +- Delete inactive clients after a given amount of time. +- Refactor prepare_answer(). + + * Positioning - Known bugs ° Cannot compute the error (Real) with autocalibration requests. - Algorithms + ° Add to the result the information "area error" (whether on not the + computed result is in the same room as the real position). + ° Delete reference points after a given amount of time. This is to + avoid meaningless old reference points, for instance if an AP was + shut down. + ° Handle the power and antenna gain difference between the + calibration mobile (or pseudo-mobile, for autocalibration) and the + mobile to position. ° MinMax: use a different step for X, Y and Z? - Autocalibration ° Generate reference points in 3D. + ° Check what happens with >4 APs, and fix it. We certainly should + select APs not only by the angle proximity, but also by the + distance proximity. Maybe implement three options: angle, distance, + and angle + distance. ° Handle 2 APs, not only >2 APs. ° Find why some CalibrationRequest were not deleted when calling Stock::delete_calibration_request() (via @@ -108,7 +145,12 @@ with relative path in owlps-positioning.cfg in the same directory). - Optimisation & code improvement - ° Multithread algorithm calls. + ° Multithreading: + . algorithm (parallelize computation of the different algorithms + for the same request) ; + . and/or requests (parallelize computation of several requests). + It would be possible (overkill?) to have a group of worker threads + and a job queue. ° 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().