Make ReferencePoint's Point3D copy constructor explicit. This implied
the following changes:
* Stock::get_reference_point(ReferencePoint&) becomes
get_reference_point(Point3D&). Reference points were always
retrieved by their coordinates only in the Stock anyway.
* Stock::find_create_reference_point(Point3D&) was added, since it can
have a different outcome than its (ReferencePoint&) counterpart.
* The unit tests for Stock were improved.
Fix a few missing includes that prevented building on BSD systems.
* Client: the proper way to get MAXHOSTNAMELEN is from <sys/param.h>,
not from <rpc/types.h>.
* Positioner/Direction: std::hash is declared in <functional>.
* Positioner/OutputNetworkSocket: get struct sockaddr from
<sys/socket.h>, not from <netinet/in.h>.
The new option positioning.filter.max-speed-cp allows to set an
alternative maximum speed when the mobile is found to be within
cp-reset-distance, instead of completely disabling the filter.
The new option positioning.filter.cp-reset-distance allows to disable
the filter when the unfiltered location of the mobile terminal is found
to be close enough to a capture point.
The new configuration option positioning.filter.max-speed allows to
specify the maximum speed at which the mobile terminals can travel; the
distance between two results for a given mobile will be limited to the
distance that it could have travelled, according to the two requests'
timestamps.
The last request transmitted by (received from) a mobile is now stored
along with last_results instead of relying on last_results.request which
is not guaranteed to be a valid pointer.
Add Point3D::interpolate(point, speed, duration), that returns a single
interpolated point computed according to speed and duration of the
mobile's movement.
The function arguments were reviewed to add missing 'const' keywords,
and some classes were modified more deeply to make some pointer class
variables constant.
It is useless to handle a client structure on recvfrom() or accept()
when nothing is done with this information.
Changed in Aggregator, Listener, Positioner and UDP-to-HTTP.
New autocalibration technique to generate points in line (use case:
underground tunnels). The handling of the
positioning.generate-reference-points has changed to be able to use
several autocalibration methods simultaneously.
Use 128 instead of 1 as error code in
AutocalibrationMesh::compute_multi_packet_ss(), since small positive
values can sometimes occur.
Some minor other cosmetics changes.
The code for the EvAAL output was slightly updated in 2012 for the 2nd
contest. Although OwlPS doesn't handle sub-areas of interest, it was
indeed compatible with the 2012 evaluation system.
This new function allows to compute intermediate, interpolated points
between two points. It will be used to generate reference points in a
line between two points.
Sadly, OwlPS Positioner gets a new dependency on libclaw_tween.