415 lines
18 KiB
Plaintext
415 lines
18 KiB
Plaintext
This file is automatically generated from the Git tag messages.
|
||
|
||
|
||
v1.3.3 OwlPS, version 1.3.3 (development point release)
|
||
|
||
We've got a real build system, and that's worth a point release!
|
||
OwlPS has abandoned without any regret its old set of custom Makefiles,
|
||
and is now using CMake. Dependency checks, improved maintainability,
|
||
portability and (hopefully) readability: long story short, it's a great
|
||
improvement.
|
||
|
||
This is a big release in terms of number of commits, though not that
|
||
much in terms of features. The important changes since v1.3.2 follow.
|
||
|
||
Some initial work has been done on the documentation:
|
||
- README.t2t is an entry point that directs the reader to other
|
||
documentation files.
|
||
- INSTALL.t2t is a guide on how to build and install OwlPS.
|
||
- The doc/ directory contains other txt2tags files that can be built as
|
||
man pages. Beside the owlps(7) and owlps-architecture(7) pages, only
|
||
OwlPS Client has a man page (owlps-client(1)), so there is still some
|
||
work to do in this area.
|
||
|
||
libowlps API changes:
|
||
- Doesn't define the owl_bool type any more, we are now using stdbool.h.
|
||
|
||
OwlPS Listener:
|
||
- Can now read packets from a pcap file instead of a capture interface,
|
||
which is useful for testing (option -R).
|
||
- The radiotap parser code has been cleaned and two non-trivial bugs
|
||
were fixed: the alignment of the radiotap fields is now handled
|
||
correctly, and the signal strength (Antenna Signal) is now stored as a
|
||
signed 8-bit value instead of an unsigned one (which was problematic
|
||
only with positive signal strengths).
|
||
|
||
OwlPS Positioner:
|
||
- Now requires GCC 4.7 with C++11 enabled.
|
||
- New option positioning.generated-points-list, which allows to generate
|
||
a pre-determined list of reference points instead of a regular
|
||
meshing. The positioning.generate-reference-points option is now a
|
||
string with values "false" (autocalibration deactivated), "mesh" (to
|
||
generate a meshing, old default for "true"), "list" (to generate only
|
||
a list of reference point") or "both" (combination of "mesh" and
|
||
"list").
|
||
|
||
|
||
v1.3.2 OwlPS, version 1.3.2 (development point release)
|
||
|
||
This is the last release "made in Université de Franche-Comté" by Matteo
|
||
Cypriani (or to be more precise, as an employee of the University). It
|
||
is also the first public release.
|
||
|
||
Due to the fact that it is a "time-based" release, it does not
|
||
correspond to a particular important change, but here are the major
|
||
modifications since v1.3.1:
|
||
- OwlPS Positioner can now compute the error in two dimension by setting
|
||
the option output.2d-error.
|
||
- One can now specify the number of requests OwlPS Client will send (-N
|
||
option).
|
||
- libowlps: owl_timestamp_to_string() now always displays nanoseconds on
|
||
9 digits.
|
||
- A bunch of bug and cosmetic fixes, mainly in OwlPS Positioner.
|
||
|
||
|
||
v1.3.1 OwlPS, version 1.3.1 (development point release)
|
||
|
||
This release features various important changes.
|
||
|
||
First of all, we finally got rid of the OpenWrt-specific makefiles,
|
||
and unified all the makefiles thanks to the new common files
|
||
(common.mk and common-rules.mk). To compile for OpenWrt, one has to
|
||
set the variable OPENWRT_VERSION (for example make
|
||
OPENWRT_VERSION=10.03), or to use the main Makefile_atheros_openwrt.
|
||
|
||
The format of the positioning requests has changed, and now includes
|
||
padding bytes. OwlPS Client features a new option (-s) to set the size
|
||
of the transmitted data.
|
||
|
||
Major autocalibration bugs fixed in OwlPS Positioner:
|
||
- Segfault with positioning.generate-reference-points.
|
||
- Failed assertion with positioning.calibration-requests-timeout > 0.
|
||
- Several problems preventing the generation of multi-packet reference
|
||
points (positioning.generate-single-packet-reference-points=false).
|
||
|
||
The Positioner option generate-single-packet-reference-points has been
|
||
renamed generate-multi-packet-reference-points and the default is now
|
||
to generate multi-packet reference points.
|
||
|
||
Positioner now features the option replay (--replay on), which change
|
||
the time-related behaviour, and is useful for the option
|
||
positioning.calibration-requests-timeout: instead of computing the
|
||
elapsed time with the current time on the machine running Positioner,
|
||
we keep track of the most recent received request's timestamp, and use
|
||
it as the current time. Unfortunately, this option is quite useless if
|
||
the clock of the mobile terminals and listeners are not synchronised
|
||
(actually if this is the case, one should run the server without
|
||
enabling the replay mode, because this option could cause the deletion
|
||
of non-obsolete calibration requests).
|
||
|
||
Positioner now features the option
|
||
positioning.unique-calibration-request. Thanks to this behaviour
|
||
(which was already the default), it is not too annoying (at least when
|
||
using autocalibration) that the replay option does not work without
|
||
synchronised clocks.
|
||
|
||
And last but not least, the OwlPS logo enters the repository.
|
||
|
||
|
||
v1.3.0 OwlPS, version 1.3.0 (development point release)
|
||
|
||
This is the first release of the development branch 1.3.
|
||
|
||
The positioning requests now contain the total number of packets of
|
||
the request, along with the current packet number (libowlps API
|
||
change).
|
||
|
||
This allows for the introduction of new similarity methods for
|
||
cartography-based algorithms, based on the distribution of the SSs:
|
||
- “interval” uses the number of values within the interval
|
||
[mean-std.dev.;mean+std.dev.].
|
||
- “interval2” computes the percent of packets in both the intervals
|
||
[Im-0.674×Is, Im+0.674×Is] and [Im-Is, Im+Is], and selects the
|
||
measurement which have the closest percentage of packets to the
|
||
theoretical percentages of the two intervals (see
|
||
owlps-positioner.conf for details).
|
||
|
||
Autocalibration improvements:
|
||
- Due to the availability of packet numbers, we are now able to
|
||
generate multi-packet requests (which is required for the new
|
||
similarity methods to work properly).
|
||
- The APs are now selected not only by their angle, but also in
|
||
function of the coverage with the receiver AP.
|
||
- The APs are now selected with signed angles, which improves the
|
||
selection in some cases. The minimum number of reference AP is
|
||
lowered to one.
|
||
- The building's floors are now handled (2.5-D positioning).
|
||
|
||
New Positioner options:
|
||
- positioning.calibration-requests-timeout: allows to delete old
|
||
calibration requests.
|
||
- positioning.generate-single-packet-reference-points: allows to
|
||
choose between single and multi-packet reference points in the
|
||
autocalibration.
|
||
- positioning.generated-meshing-grain-z: vertical grain of the
|
||
autocalibration meshing (should be 1 in most cases, as it is
|
||
currently a floor number).
|
||
- positioning.smallest-ss: allows to specify the smallest possible SS
|
||
value received by the listeners.
|
||
- positioning.ss-similarity: allows to choose the similarity method
|
||
used.
|
||
|
||
|
||
v1.2 OwlPS, version 1.2
|
||
|
||
Changes since v1.1.8:
|
||
- The Positioning module has been renamed Positioner, to be consistent
|
||
with the other modules, and the executable file is owlps-positionerd.
|
||
- Positioner: the RADAR algorithm is renamed NSS.
|
||
- CLI option are standardised amongst all the modules (e.g. -i as
|
||
destination IP).
|
||
- A daemon mode has been implemented in Client, Listener and
|
||
Aggregator (option -D).
|
||
- All the requests (positioning, calibration, autocalibration) are now
|
||
sent to the same port by default.
|
||
- Two different ports are now used for autocalibration hello messages
|
||
and autocalibration orders. This allows to run a listener and an
|
||
aggregator on the same machine with the autocalibration enabled.
|
||
- The default time-related values has been updated. By default the
|
||
aggregator will not be able to fully aggregate calibration requests
|
||
any more, only the positioning and autocalibration requests. In
|
||
order to aggregate calibration requests, the aggregation timeout
|
||
needs to be increased, or the number of packets of the request and
|
||
the delay between each of them lowered.
|
||
- Some bug fixes, minor improvements and cosmetic changes.
|
||
|
||
Release notes:
|
||
- Those programs are developped and tested on GNU/Linux. All the modules
|
||
but the Listener (which is Linux-specific for the moment) also build
|
||
on NetBSD, FreeBSD, OpenBSD and DragonFly BSD. The Positioner does not
|
||
build with versions of GCC older than 4.4; for some reason, it also
|
||
does not compile on DragonFly BSD with GCC 4.4.
|
||
- The implicit mode is still an experimental feature. It is pretty much
|
||
untested and needs to be redesigned properly.
|
||
- The full changelog is long, please refer to the development point
|
||
releases' changelogs to have an overview of the changes since v1.0.
|
||
Long story short: autocalibration!
|
||
|
||
|
||
v1.1.8 OwlPS, version 1.1.8 (development point release)
|
||
|
||
Along with the usual bug fixes, minor improvements, and more or less
|
||
important changes (listed below), two modules were added:
|
||
- owlps-udp-to-http: a program that serves the results of OwlPS
|
||
Positioning through HTTP.
|
||
- libowlps-resultreader: a library that handles results sent by OwlPS
|
||
Positioning (with its sample program owlps-resultreader-udp). It
|
||
supports the previous new module OwlPS UDP-to-HTTP, as well as OwlPS
|
||
Client (for the -l option).
|
||
|
||
API changes:
|
||
- libowlps:
|
||
+ Listener-specific code was moved into owlps-listener.
|
||
+ OWL_TIMESTAMP_STR_LEN was renamed OWL_TIMESTAMP_STRLEN.
|
||
+ All the elements declared in owlps.h are now prefixed with "owl_".
|
||
- libowlps-client: the functions are now prefixed with "owl_" instead of
|
||
"owlclient_".
|
||
|
||
OwlPS Positioning:
|
||
- The options minmax-start and minmax stop are renamed area-start and
|
||
area-stop.
|
||
- FBCM did not work with autocalibration, this is fixed.
|
||
- Fixed a segfault that occurred in certain circumstances with the
|
||
option positioning.radar-ignore-ap-reference-points activated.
|
||
- CSV format changes (CSV & UDP outputs):
|
||
+ Removed the useless "Error" string before the error field.
|
||
+ Added the area in which is the result for each algorithm.
|
||
|
||
|
||
v1.1.7 OwlPS, version 1.1.7 (development point release)
|
||
|
||
Finally the autocalibration is here! All the commits of this release are
|
||
more or less related to the autocalibration development, in OwlPS
|
||
Positioning. There is some work remaining, but this release features the
|
||
main basis of the autocalibration.
|
||
|
||
Most user visible changes: a lot of new options, including reading the
|
||
mobiles' characteristics from a CSV file; see the sample configuration
|
||
file for details.
|
||
|
||
Note: this is the version used to participate at the EvAAL 2011
|
||
competition, with the required post-competition cleaning.
|
||
|
||
|
||
v1.1.6 OwlPS, version 1.1.6 (development point release)
|
||
|
||
This release was developed in parallel with the autocalibration
|
||
development branch, so it contains a relatively large amount of things
|
||
(as usual, fixes, cleaning and a few new features).
|
||
|
||
Here are the most noticeable changes introduced, module by module.
|
||
|
||
Positioning:
|
||
- The long-term, unnoticed, and hard to debug ReferencePoint creation
|
||
bug was fixed, and
|
||
- the option --radar-average-reference-points was added; the default is
|
||
to keep the old bug's consequent behaviour, i.e to search for the
|
||
nearest calibration request in SS instead of the nearest reference
|
||
point, since it gives better results (for a calibration with several
|
||
mobile's orientation).
|
||
- The option --verbose was added.
|
||
|
||
Aggregator:
|
||
- Semaphores are now used to lock the lists of APs and requests.
|
||
- The verbose mode was changed into a verbose level.
|
||
- The -q (quiet) option was added.
|
||
|
||
Listener:
|
||
- The verbose mode was changed into a verbose level.
|
||
|
||
Client:
|
||
- The option -f (flood mode) was added, to allow the client to
|
||
continuously send requests.
|
||
|
||
Other changes:
|
||
- libowlps, libowlps-client, owlps-client and owlps-aggregator now build
|
||
on OpenBSD and DragonFlyBSD, thanks to some cleaning and fixes (mainly
|
||
in the libraries and makefiles). Untested on FreeBSD and NetBSD, but
|
||
it should work painlessly.
|
||
- All the configurable delays are now in milliseconds or seconds (no
|
||
more microseconds).
|
||
- We finally deleted writeInDb, since it is useless for the moment.
|
||
|
||
|
||
v1.1.5 OwlPS, version 1.1.5 (development point release)
|
||
|
||
This small release includes the following changes:
|
||
- Positioning computes the error for each algorithm when the
|
||
pseudo-algorithm "Real" is used.
|
||
That changes the results' CSV format (OutputCSV & OutputUDPSocket).
|
||
- Positioning: add --minmax-start & --minmax-stop to limit the search
|
||
space of MinMax.
|
||
- Positioning's configuration files updated (they are now really example
|
||
files).
|
||
- Add -V to print the version, in each module.
|
||
- A fair amount of bug fixes and small improvements.
|
||
|
||
|
||
v1.1.4 OwlPS, version 1.1.4 (development point release)
|
||
|
||
Here are the most noticeable changes for this release:
|
||
- The request type and calibration data (position & direction) are now
|
||
handled in all modules.
|
||
- The listener can send its own position in autocalibration requests.
|
||
- The OwlPS Positioning module:
|
||
+ handles SIGINT and SIGTERM to exit correctly;
|
||
+ adds the option flush-output-files;
|
||
+ includes the algorithm name in the result output;
|
||
+ writes all the results for a given request in a bunch;
|
||
+ accepts '-' as file names to read the standard input or write to the
|
||
standard output;
|
||
+ sends the computed results by UDP (CSV string format); note that
|
||
currently, the mobile cannot receive this format.
|
||
- The last endianness issues have (hopefully) been fixed.
|
||
- libowlps API change: constants for localisation request types
|
||
(PACKET_TYPE_*) are now OWL_REQUEST_*; the global variable run is
|
||
renamed owl_run; owl_request includes the position; float endianness
|
||
conversion functions were added.
|
||
|
||
|
||
v1.1.3 OwlPS, version 1.1.3 (development point release)
|
||
|
||
We finally got rid of mobile-centred. The code is still in the memory
|
||
of the VCS, of course, but we do not have time to bother maintaining
|
||
it.
|
||
|
||
owlps-positioning is now linked to libowlps, and is able to read
|
||
aggregated requests sent by the aggregator via UDP, thanks to the new
|
||
class InputUDPSocket. This exchange does not concern calibration nor
|
||
autocalibration requests yet, since the aggregator do not send
|
||
calibration data.
|
||
|
||
As usual, this release includes some refactoring, code improvement,
|
||
bug fixes and various minor new features. The most important code
|
||
improvement concerns thread handling in the listener and the
|
||
aggregator, that is now far cleaner.
|
||
|
||
libowlps API changes: types are now all lowercase and prefixed,
|
||
several new functions were added, and the behaviour of
|
||
owl_mac_bytes_to_string() is changed.
|
||
|
||
|
||
v1.1.2 OwlPS, version 1.1.2 (development point release)
|
||
|
||
Note the new case of "OwlPS": Owl Positioning System should make
|
||
easier to memorise "Open Wireless Positioning System".
|
||
|
||
We are still on the way to autocalibration, and a lot of things were
|
||
done since v1.1.1, mostly on libowlps and infrastructure-centred code.
|
||
The emission of autocalibration requests by the listeners now works as
|
||
intended. The code has been adapted to be able to work in a complex
|
||
network configuration: multiple Wi-Fi modes (e.g. monitor, master and
|
||
ad-hoc), multiple IP addresses, etc. Endianness issues have been
|
||
addressed, and everything works well now.
|
||
|
||
This release includes major library API changes: functions are now
|
||
prefixed, several functions were renamed, and stdint types are used in
|
||
custom types.
|
||
|
||
The data format also changes: we now use nanosecond precision in all
|
||
modules, via the new type TIMESTAMP which is inspired from the C++
|
||
class Timestamp created for the Positioning module. Therefore, the
|
||
timestamp field of the CSV outputs has a nanosecond precision, and its
|
||
format is "seconds.nanoseconds".
|
||
|
||
Finally, a lot of other less visible things were accomplished: bug
|
||
fixes and improvements, code refactoring, new options, etc.
|
||
|
||
|
||
v1.1.1 OWLPS, version 1.1.1 (development point release)
|
||
|
||
We are on the way to autocalibration. The listeners can send Hello
|
||
messages to the aggregator, which now handles a list of listeners and
|
||
schedules autocalibration requests. Emission of autocalibration requests
|
||
by the listeners has been worked on, but is very buggy at this time, and
|
||
therefore not operational yet.
|
||
|
||
|
||
v1.1.0 OWLPS, version 1.1.0 (development point release)
|
||
|
||
Cleaning, refactoring, translation of comments from French to English,
|
||
bug fixes and minor features. The only very noticeable thing is the
|
||
creation of the libowlps-client library; it is to prepare the future
|
||
ability of the listener to send autocalibration requests.
|
||
|
||
|
||
v1.0 OWLPS, version 1.0
|
||
|
||
Few changes are actually visible since version 0.8. This release is a
|
||
new start for owlps-positioning, which was rewritten almost completely.
|
||
Support for Viterbi-enabled algorithms has been dropped; this could be
|
||
reintegrated someday, but it is not needed for our current researches,
|
||
so it is not in the top-priority list.
|
||
|
||
Extensive non-regression tests have not been conducted yet (we need to
|
||
ensure that the results obtained with v1.0 are consistent with those
|
||
obtained with v0.8).
|
||
|
||
|
||
v0.9.0 OWLPS, version 0.9.0 (development point release)
|
||
|
||
This release includes the internship work of Julien Graeffly (mostly on
|
||
the positioning server), and some improvements (configuration file
|
||
support, better handling of command-line options, Fonera compilation,
|
||
passive mode, etc.).
|
||
|
||
|
||
v0.8 OWLPS, version 0.8
|
||
|
||
Version 0.8, as documented in the technical report "Open Wireless
|
||
Positioning System, Version 0.8".
|
||
|
||
|
||
v0.6 "OWLPS", version 0.6
|
||
|
||
The system allows to perform infrastructure-based measurements.
|
||
Computation has to be done manually.
|
||
|
||
Note: at this time, the system was not called "OWLPS" yet.
|
||
|
||
|
||
v0.4 "OWLPS", version 0.4
|
||
|
||
First, early release of the student works TX (mobile-centred
|
||
measurements) and TO (infrastructure-centred).
|