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
Matteo Cypriani
fb9d2d0cef
[Positioner] Stock::generate_RP(): cosmetic changes
2012-05-02 17:32:00 +02:00
Matteo Cypriani
833c647220
[Positioner] Add ReferencePoint::friis_idx(AP, pkt)
...
This function allows to get the Friis index for a single packet in a
measurement instead of for the whole measurement.
2012-05-02 17:32:00 +02:00
Matteo Cypriani
f14c1de473
[Positioner] Add Measurement::get_ss(pkt_id)
2012-05-02 17:32:00 +02:00
Matteo Cypriani
2cc7f373dd
[Positioner] Add Measurement::get_std_deviation()
2012-05-02 17:32:00 +02:00
Matteo Cypriani
dad6e0aa11
[Positioner] Measurement::variance_square_distance()
2012-05-02 17:32:00 +02:00
Matteo Cypriani
dcd902c9f0
[Positioner] Measurement: use floats, not doubles
...
Use floats variables for the average and variance.
2012-05-02 17:32:00 +02:00
Matteo Cypriani
e687aac741
[Positioner] Fix PosUtil::ss_square_distance()
...
The returned distance is now "averaged" to take into account the number
of measurements in the lists. The former behaviour would lead two
couples of measurement lists with a different number of measurement to
have non-comparable distances.
2012-05-02 17:32:00 +02:00
Matteo Cypriani
dc0e56c0ec
[lib] Bump so version to 3.0
2012-05-02 17:32:00 +02:00
Matteo Cypriani
7de5499816
[Positioner] Measurement::get_ss_list_size() -> get_nb_ss()
2012-05-02 17:31:59 +02:00
Matteo Cypriani
24622e4c3a
[Positioner] Measurement: compute the variance
...
The variance is now computed along with the average. Measurement has
three new attributes:
- average_mw (average in mW),
- variance,
- variance_m2 (variable used for the variance calculation).
In addition, average_ss has been renamed average_dbm (ditto for its
getter).
The computation method of the average has been changed to allow the
computation of the variance simultaneously.
2012-05-02 17:31:59 +02:00
Matteo Cypriani
9f8c85d9c7
[lib] timestamp_now(): gettimeofday() if needed
...
Use gettimeofday() when clock_gettime() is not available.
2012-05-02 17:31:59 +02:00
Matteo Cypriani
e98474e678
[Aggregator] Send the capture time to Positioner
...
The Aggregator now transmits the capture timestamp of each packet to the
positioning server. For now this timestamp is not stored, only displayed
(in verbose mode) when a request is received.
2012-05-02 17:31:49 +02:00
Matteo Cypriani
b60d0d380f
[Aggregator] Send the mobile's IP to Positioner
...
For now the positioning server only displays the mobile's IP address (in
verbose mode) and updates it in the stored Mobile.
2012-05-02 17:31:42 +02:00
Matteo Cypriani
94b9cf281f
[Positioner] Autocalibration: handle levels
...
To generate the reference points, use only the APs at the same level as
the virtual mobile. This is very basic for now, please refer to the TODO
update for more details on what should be done.
2012-02-08 10:52:40 +01:00
Matteo Cypriani
055dca7711
[Positioner] Measurement: declare type pkt_id_t
...
Like ss_t, pkt_id_t is now declared in measurement.hh to help use the
same type everywhere for packet IDs.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
a3b8b90760
[Positioner] Add option positioning.smallest-ss
...
The smallest possible received SS is not hard coded into PosUtil any
more. The default value is now -99 dBm instead of -98.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
427c88fd99
[Positioner] Autocalib.: weight angle/coverage
...
In Stock::generate_reference_point(), the coverage percentage is now
used along the angle to select the better APs.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
5f26d7a28e
[Positioner] AP::received_calibration…(): percents
...
AccessPoint::received_calibration_from_ap() now returns a percentage of
the received packets (instead of a boolean).
2012-02-08 10:52:39 +01:00
Matteo Cypriani
a2629dd5a9
[Positioner] Fix Request::get_measurement(s)(mac)
...
Request::get_measurements(mac) is renamed Request::get_measurement(mac).
A Request can't store more than one measurement per AP, so it was a
mistake to return a vector. The new function returns a single pointer.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
3cbe9c2df5
[Positioner] Option calibration-requests-timeout
...
Introduce the option positioning.calibration-requests-timeout, to avoid
keeping the old calibration requests.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
7a6a85ad19
[Positioner] Add Configuration::uint_value()
2012-02-08 10:52:39 +01:00
Matteo Cypriani
35265e75c2
[Positioner] Timestamp: elapsed() & owl_timestamp()
...
New functions added in Timestamp:
- elapsed()
- elapsed(Timestamp)
- operator owl_imestamp()
2012-02-08 10:52:39 +01:00
Matteo Cypriani
9c1fc429c9
[Positioner] Autocalibration: APs in coverage
...
In Stock::generate_reference_point(), we now select an AP only if it is
in coverage of the reference AP.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
d683c32ce5
[Positioner] Add Request::get_measurements(mac)
2012-02-08 10:52:39 +01:00
Matteo Cypriani
3b1bbb8b5c
[Positioner] ReferencePoint::get_requests(mac) public
...
ReferencePoint::get_requests(mac_transmitter) is now public.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
1533852a1f
[Positioner] Handle the packet numbering
...
In Measurement, the SSs are now stored in a map (instead of a vector),
along with their packet IDs.
2012-02-08 10:52:39 +01:00
Matteo Cypriani
5ab5b4f22f
[Aggregator] Handle the packet numbering
2012-02-08 10:52:39 +01:00
Matteo Cypriani
1cc1ce4302
[Listener] Handle the packet numbering
2012-02-08 10:52:39 +01:00
Matteo Cypriani
c53b8d61e7
[lib-client] send_request(): update the packet ID
2012-02-08 10:52:39 +01:00
Matteo Cypriani
8e7aac1e6e
[Client] make_packet(): include the packet number
...
The prepared packet now includes the number of packets of the request
and the current packet ID. The packet ID is initialised to 1 for the
first packet.
2012-02-08 10:52:38 +01:00
Matteo Cypriani
5939bdbd04
[lib] Add nb_packet & packet_id to the structures
2012-02-08 10:52:38 +01:00
Matteo Cypriani
ca249457be
Makefiles: BSD-specific -I/-L
2012-02-07 17:50:19 +01:00
Matteo Cypriani
5b042baa11
TODO: pre-release update
2012-02-07 12:41:29 +01:00
Matteo Cypriani
d5e2c975ae
Rename Positioning -> Positioner
...
To be consistent with the other modules, the positioning server must be
called OwlPS Positioner instead of Positioning, and the executable
owlps-positionerd (even if the daemon mode is not implemented yet).
That's a big commit for a tiny change.
2012-02-06 17:48:43 +01:00
Matteo Cypriani
b39dff9afb
[Positioning] Remove csv/ & log/
2012-02-06 17:48:08 +01:00
Matteo Cypriani
6b7e5668fa
Add/update headers on the top of each source file
2012-02-06 16:44:09 +01:00
Matteo Cypriani
c137f6491c
[Positioning] Update Doxyfile with Doxygen 1.7.6.1
2012-02-06 14:51:07 +01:00
Matteo Cypriani
a5e46da662
Update TODO
2012-02-06 13:27:05 +01:00