Commit Graph

76 Commits

Author SHA1 Message Date
Matteo Cypriani 69461e5c94 [Positioner] Input: update current time (replay)
In replay mode, update the current time when getting a new request.
2012-06-08 14:41:50 +02:00
Matteo Cypriani d44680751c [Positioner] Timestamp: *current_time() use "replay"
Timestamp::get_current_time() now returns the current time if the replay
mode is unactivated, or the most recent request's time in replay mode.
2012-06-08 14:41:50 +02:00
Matteo Cypriani 692571e382 [Positioner] UserInterface: add option "replay" 2012-06-08 14:41:37 +02:00
Matteo Cypriani 0d527ec77d [Positioner] Add Timestamp::current_time 2012-06-08 12:29:29 +02:00
Matteo Cypriani ff5bab01cc [Positioner] Timestamp: less/greater -> before/after
Renames less_than() and greater_than(), they become before() and
after().
2012-06-08 12:29:29 +02:00
Matteo Cypriani 57cdeeb360 [Positioner] Generated requests: time received=sent
For generated calibration requests, time_sent is now equals to
time_received.
2012-06-01 19:34:58 +02:00
Matteo Cypriani 7da5196627 [Positioner] CR timeout computed with time_received
In Stock::delete_calibration_requests_older_than(), use
request.time_received instead of request.time_sent to compute the
timeout.
2012-06-01 18:49:39 +02:00
Matteo Cypriani edd0d48faa [Positioner] InputMedium: initialise time_received
When reading a new request, set current_request.time_received.
2012-06-01 17:17:58 +02:00
Matteo Cypriani 7e55f8495c [Positioner] Request: bool op -= time_received
Fixes Request::operator bool(): since time_received is initialised at
the creation, we must not take it into account.
2012-06-01 17:17:57 +02:00
Matteo Cypriani a93653c299 [Positioner] Request: add time_received
Adds an attribute for the date at which Positioner received a request
from Aggregator.
2012-06-01 14:27:20 +02:00
Matteo Cypriani b6f167c549 [Positioner] Rename single-packet option
Option positioning.generate-single-packet-reference-points becomes
positioning.generate-multi-packet-reference-points. The default is still
true, which means the default behaviour changed.
2012-05-31 20:18:49 +02:00
Matteo Cypriani 573cb2f256 [Positioner] InputUDPSocket: s/cout/cerr/ 2012-05-31 19:47:28 +02:00
Matteo Cypriani 569cdefd94 [Positioner] Autocalibration & Stock: assertion 2012-05-31 19:47:02 +02:00
Matteo Cypriani 6e40e14863 [Positioner] Autocalibration: single packet if error
When generating multi-packets RPs, if the RPs associated with the two
APs have no packet in common, we fall back to generating a single-packet
(averaged) RP.
2012-05-31 19:47:02 +02:00
Matteo Cypriani ecae107163 [Positioner] Fix Request(Request)
Copy constructor fixed to copy nb_packets and real_positon.
2012-05-31 19:47:02 +02:00
Matteo Cypriani 14eb08b37e [Positioner] Autocalibration: fix multi-packet loop
Fixes the Autocalibration::compute_multi_packet_ss() loop that searches
for the first good measurement.
2012-05-31 19:47:02 +02:00
Matteo Cypriani d3733c2083 [Positioner] AccessPoint: avoid division by zero 2012-05-31 19:47:02 +02:00
Matteo Cypriani b8722b6a6c [Positioner] ReferencePoint: fix comments
Fixes/adds comments in delete_generated_requests().
2012-05-31 19:47:01 +02:00
Matteo Cypriani f54426c3bb [Positioner] Fix calibration-requests-timeout
Fixes Stock::delete_calibration_requests_older_than(), by calling the
new function ReferencePoint::delete_request().
2012-05-31 19:46:57 +02:00
Matteo Cypriani 038c24da05 [Positioner] PosUtil: macrofy assert_uppercase()
PosUtil::assert_uppercase() becomes a macro, to avoid a warning when
compiling with -D NDEBUG. The new name is assert_uppercase(), still
defined in posutil.hh.
2012-05-26 13:34:19 +02:00
Matteo Cypriani 77b0a13896 [Positioner] Autocalibration: clean lists
Clean ref_aps and sorted_*_angles between two iterations.
2012-05-26 12:52:50 +02:00
Matteo Cypriani 98085172de [Positioner] Cosmetics (InputCSV & Stock) 2012-05-26 12:24:00 +02:00
Matteo Cypriani bc2129a36b [Positioner] Autocalibration: fix segfault 2012-05-26 12:23:09 +02:00
Matteo Cypriani 316db76861 Makefiles: add common-rules.mk, drop openwrt files
This is the sequel of the work on the Makefiles' unification.
2012-05-24 14:19:04 +02:00
Matteo Cypriani 437c5fec8c [Positioner] Makefile: specify astyle indentation
As of Artistic Style 2.02, the default indent size changed, so we force
it to 2 spaces.
2012-05-17 11:47:30 +02:00
Matteo Cypriani 59a0ac12bd [Positioning] Autocalibration: #include <vector> 2012-05-10 11:38:21 +02:00
Matteo Cypriani f0e23521c3 [Positioner] OutputNetworkSocket: include unistd.h 2012-05-09 17:48:06 +02:00
Matteo Cypriani 92485f3f67 Add common.mk
Adapt all the Makefiles to use it.
Rename all the Makefile_atheros_openwrt-10.03 to
Makefile_atheros_openwrt.
2012-05-09 15:55:17 +02:00
Matteo Cypriani 38f34a693a [Positioner] s/level/floor/ 2012-05-02 17:32:01 +02:00
Matteo Cypriani d2f40bb49e [Positioner] Autocalibration: compute origin angle
The angle P-RX-O (formerly named angle_p) was left uninitialised. This
is fixed, and the variable was renamed origin_angle.
2012-05-02 17:32:01 +02:00
Matteo Cypriani efba4fa09b [Positioner] Fix Autocalibration::sort_reference_aps()
Fix the angle calculation in sort_reference_aps() and better comment the
code.
2012-05-02 17:32:00 +02:00
Matteo Cypriani c51d9c1c12 [Positioner] Autocalibration: fix reference angle 2012-05-02 17:32:00 +02:00
Matteo Cypriani 300c338023 [Positioner] Autocalibration: signed angles
This commit changes the way the APs are selected. Until now, the two
most acute angles were selected. Now, the angles are signed, i.e. we
differentiate the APs that are before the point to generate on the
trigonometric circle, and those that are after.

Some more refactoring was achieved, and some bugs fixed.
2012-05-02 17:32:00 +02:00
Matteo Cypriani 291ef457f5 [Positioner] Add Point3D::rotate_2d() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 88a90a7abd [Positioner] Add PosUtil::deg2rad() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 90fc329f82 [Positioner] Autocalibration: refactor generate_ss() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 7a631e3962 [Positioner] Add class Autocalibration
The new class Autocalibration contains the code from the former huge
function Stock::generate_reference_point(). It is refactored a bit, but
still needs work. The function Stock::generate_reference_points() stays
in the Stock class for now.
2012-05-02 17:32:00 +02:00
Matteo Cypriani d479f9d080 [Positioner] posexcept: add autocalibration_error 2012-05-02 17:32:00 +02:00
Matteo Cypriani 579adbee1c [Positioner] Point3D: angle() becomes angle_2d() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 8d4fa6883d [Positioner] Point3D: add square_distance_2d() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 007594683c [Positioner] Point3D: delete unused distance()
Delete unused functions distance(x,y,z) and square_distance(x,y,z).
2012-05-02 17:32:00 +02:00
Matteo Cypriani 987773a4df [Positioner] s/multilateration/trilateration/
This fixes an old, forgotten, vocabulary mistake.
2012-05-02 17:32:00 +02:00
Matteo Cypriani 153d4c0ea6 [Positioner] Add similarity method "interval2" 2012-05-02 17:32:00 +02:00
Matteo Cypriani 54a387190f [Positioner] Add Measurement::nb_in_interval()
Refactor Measurement::similarity() thanks to this new function.
2012-05-02 17:32:00 +02:00
Matteo Cypriani 6a8d8ec3be [Positioner] Add PosUtil::is_in_interval() 2012-05-02 17:32:00 +02:00
Matteo Cypriani 1704ebc6b1 [Positioner] "similarity" instead of "distance"
Standardise the use of the term "similarity" instead of
"(ss_square_)distance" in the functions' and variables' names.
2012-05-02 17:32:00 +02:00
Matteo Cypriani 596c72b7a8 [Positioner] Option ss-similarity
The option positioning.ss-similarity introduced in this commit allows to
chose the desired algorithm to compare two measurements. One can chose
between the historical mean euclidean distance algorithm and the new
algorithm using the number of values within the interval
[mean-std.dev.;mean+std.dev.].
2012-05-02 17:32:00 +02:00
Matteo Cypriani ecedf307ef [Positioner] Request: fix nb_packets's type 2012-05-02 17:32:00 +02:00
Matteo Cypriani 60626196d5 [Positioner] Option generate-single-packet-RPs
The new option positioning.generate-single-packet-reference-points
allows either to generate one single packet in each generated reference
point, or try to match the real requests by generating packets
independently.
2012-05-02 17:32:00 +02:00
Matteo Cypriani 4c5ad300c3 [Positioner] Stock::generate_RP(): fix update mobile
In generate_reference_point(), update the mobile's attributes *before*
to test if the current AP should be skipped.
2012-05-02 17:32:00 +02:00