|
|
@ -0,0 +1,285 @@ |
|
|
|
# Sample configuration file for OwlPS Positioner |
|
|
|
|
|
|
|
# [Miscellaneous options] |
|
|
|
|
|
|
|
# This option controls whether or not the output text files are flushed |
|
|
|
# (written to the storage support) after each line. |
|
|
|
# The default is to flush. |
|
|
|
#flush-output-files = true |
|
|
|
|
|
|
|
# "Replay" mode. With this option enabled, the current time is the |
|
|
|
# emission timestamp of the most recent request; you will want to |
|
|
|
# enable this when reading inputs (requests) off-line to replay |
|
|
|
# scenarios, if time-related options are enabled (e.g. |
|
|
|
# positioning.calibration-requests-timeout). |
|
|
|
# To be useful, this option requires the listeners' clocks to be |
|
|
|
# synchronised. If it is not the case, you should leave it disabled. |
|
|
|
# The default is to run in "live mode", i.e. with this option disabled. |
|
|
|
#replay = off |
|
|
|
|
|
|
|
[data-input] |
|
|
|
# The options in this section are related to the data that are read |
|
|
|
# when the program starts. |
|
|
|
|
|
|
|
# Description of the machines running the listeners (capture points). |
|
|
|
cp-medium = CSV |
|
|
|
cp-csv-file = /usr/local/etc/owlps/listeners.csv |
|
|
|
|
|
|
|
# Description of the clients |
|
|
|
mobile-medium = CSV |
|
|
|
mobile-csv-file = /usr/local/etc/owlps/mobiles.csv |
|
|
|
|
|
|
|
# Description of deployment area topology. |
|
|
|
# You probably don't need a full description of the topology, see the |
|
|
|
# topology example file for details. |
|
|
|
# Uncomment the following line to activate the topology reading. |
|
|
|
#topology-medium = CSV |
|
|
|
#areas-csv-file = /usr/local/etc/owlps/topology.csv |
|
|
|
#waypoints-csv-file = /usr/local/etc/owlps/waypoints.csv |
|
|
|
|
|
|
|
#reference-points-medium = CSV |
|
|
|
#reference-points-csv-file = /usr/local/etc/owlps/reference_points.csv |
|
|
|
|
|
|
|
[input] |
|
|
|
# The following options are related to the input of the requests |
|
|
|
# (positioning requests and (auto-)calibration requests) from the |
|
|
|
# aggregator. |
|
|
|
|
|
|
|
medium = CSV |
|
|
|
#csv-file = /tmp/input.csv |
|
|
|
|
|
|
|
#medium = UDP |
|
|
|
#udp-port = 9902 |
|
|
|
|
|
|
|
[log] |
|
|
|
# The following options allow to log the requests received from the |
|
|
|
# aggregator. |
|
|
|
|
|
|
|
# Uncomment the following line to completely disable logging (has |
|
|
|
# precedence over the other logging options): |
|
|
|
#medium = none |
|
|
|
|
|
|
|
medium = CSV |
|
|
|
csv-file = /tmp/owlps-positioner.log |
|
|
|
|
|
|
|
[positioning] |
|
|
|
# The options in this section are related to the way the requests are |
|
|
|
# handled and the results are computed. |
|
|
|
|
|
|
|
# Uncomment lines to activate one or more algorithm. |
|
|
|
algorithm = Real |
|
|
|
#algorithm = InterlinkNetworks |
|
|
|
#algorithm = FBCM |
|
|
|
algorithm = NSS |
|
|
|
#algorithm = FRBHMBasic |
|
|
|
|
|
|
|
# This option allows to create a new mobile when a request is sent by |
|
|
|
# a mobile which is not currently in the mobiles' list (i.e. not |
|
|
|
# declared in the mobiles' configuration file). If unset, the requests |
|
|
|
# sent by unknown mobiles will be dropped. |
|
|
|
# It is unactivated by default, mainly to avoid interferent devices. |
|
|
|
#accept-new-mobiles = false |
|
|
|
|
|
|
|
# This option allows to create a new capture point (CP) when a request |
|
|
|
# is captured by a CP which is not currently in the CPs' list (i.e. not |
|
|
|
# declared in the CPs' configuration file), or when a self-calibration |
|
|
|
# request is sent by an unknown CP. |
|
|
|
# It is unactivated by default for the sake of security. |
|
|
|
#accept-new-cps = false |
|
|
|
|
|
|
|
# When receiving a calibration or autocalibration request from a CP, |
|
|
|
# containing the transmiter's coordinates, memorise the new CP's |
|
|
|
# coordinates. |
|
|
|
# This is unactivated by default for the sake of security. |
|
|
|
#update-cp-coordinates-online = false |
|
|
|
|
|
|
|
# Coordinates of the deployment area. |
|
|
|
# This is used to delimit the area in which reference points are |
|
|
|
# generated (when generate-reference-points includes "mesh"), and |
|
|
|
# also by the MinMax trilateration method. |
|
|
|
# Since MinMax is currently the only trilateration method implemented |
|
|
|
# in OwlPS, you should define these parameters if you use any of the |
|
|
|
# trilateration-based algorithms (InterlinkNetworks, FBCM, FRBHM). |
|
|
|
# With the autocalibration, the Z coordinate is the floor number, not |
|
|
|
# a true coordinate in meters. |
|
|
|
# They are declared as strings (X;Y;Z). Do not quote! |
|
|
|
# start: X = the west intersection, Y = emergency exit |
|
|
|
area-start = 0;-37;1 |
|
|
|
# stop: X = the water tank, Y = north-east intersection |
|
|
|
area-stop = 200;170;1 |
|
|
|
|
|
|
|
# Algorithm to calculate the similarity, in the signal strength space, |
|
|
|
# of two measurements. |
|
|
|
# The following algorithms are implemented: |
|
|
|
# - mean: The mean of all the packets in the measurement is |
|
|
|
# computed, then the euclidean distance between the two means is |
|
|
|
# used. |
|
|
|
# - interval: The mean Im and the standard deviation Is of the |
|
|
|
# packets in the measurement I are computed; the closest reference |
|
|
|
# measurement R is the one with the highest number of packets in |
|
|
|
# the interval [Im-Is, Im+Is]. |
|
|
|
# - interval2: Derived of the previous one, this algorithm |
|
|
|
# computes the percent of packets in both the intervals |
|
|
|
# [Im-0.674×Is, Im+0.674×Is] and [Im-Is, Im+Is]. |
|
|
|
# Assuming a normal distribution, we should find approximately |
|
|
|
# 50% of the packets in the first interval, and 68% in the second |
|
|
|
# interval. The closest R is the one for which the percents of |
|
|
|
# the two intervals are the closest to these theoretical scores. |
|
|
|
# The default is "mean". |
|
|
|
#ss-similarity = mean |
|
|
|
#ss-similarity = interval |
|
|
|
#ss-similarity = interval2 |
|
|
|
|
|
|
|
# Smallest possible value for a received signal strength, in dBm. This |
|
|
|
# depends on the sensibility of the CPs' Wi-Fi hardware. It is used to |
|
|
|
# compensate for CPs that are not in coverage in a given measurement. |
|
|
|
# The default value is -99 dBm, which should be fine in most cases. |
|
|
|
#smallest-ss = -99 |
|
|
|
|
|
|
|
# Generate reference points from the (auto)calibration requests |
|
|
|
# received. |
|
|
|
# This option can be set to any combination of the following values, |
|
|
|
# separated by any characters of your choice (or even none): |
|
|
|
# - false (default): do not generate reference points; this is |
|
|
|
# equivalent to an empty string and if at least one of the next |
|
|
|
# values are present, the presence of the "false" string in the |
|
|
|
# option's value will be ignored. |
|
|
|
# - mesh: generate reference points according to the regular meshing |
|
|
|
# defined by the options area-start/stop and |
|
|
|
# generated-meshing-grain-*. |
|
|
|
# - line: generate reference points according to the line defined by |
|
|
|
# the option generated-line-path and generated-line-step. |
|
|
|
# - list: generate only the reference points defined by the option |
|
|
|
# generated-points-list. |
|
|
|
# Any other or extra characters are ignored, and the string is |
|
|
|
# equivalent to "false" if it doesn't contain any valid value. |
|
|
|
# Default value: |
|
|
|
#generate-reference-points = false |
|
|
|
# Example of valid value to activate both meshing and list generation: |
|
|
|
#generate-reference-points = mesh+list |
|
|
|
#generate-reference-points = list,mesh |
|
|
|
#generate-reference-points = meshlist |
|
|
|
#generate-reference-points = falselistmesh |
|
|
|
generate-reference-points = line |
|
|
|
|
|
|
|
# With this option disabled, each generated reference point contains |
|
|
|
# a single packet in a single calibration request, computed from the |
|
|
|
# mean of the real measurements. |
|
|
|
# If enabled, the generated reference points will contain a series of |
|
|
|
# packets, better matching the real requests; if no packet ID from the |
|
|
|
# real requests match, a single packet reference point is generated |
|
|
|
# instead. Default is enabled. |
|
|
|
#generate-multi-packet-reference-points = true |
|
|
|
|
|
|
|
# When generate-reference-points includes "list", the reference points |
|
|
|
# are generated with the specified distance (in metres) between one |
|
|
|
# another, in the X and Y axis. |
|
|
|
#generated-meshing-grain-x = 0.5 |
|
|
|
#generated-meshing-grain-y = 0.5 |
|
|
|
# The Z option is currently a floor number instead of a vertical |
|
|
|
# coordinate in meters. You should leave it to 1, except if you are |
|
|
|
# deploying across non-contiguous floors, which is unlikely. |
|
|
|
#generated-meshing-grain-z = 1 |
|
|
|
|
|
|
|
# When generate-reference-points includes "line", the reference points |
|
|
|
# are generated along to the path defined by this option. They are |
|
|
|
# generated in a straight line between the given points. In the string, |
|
|
|
# the values are separated by semicolons, and each group of coordinates |
|
|
|
# can optionnaly be surrounded by parenthesis. The two following |
|
|
|
# examples, which declare a path following the points (1;1;1), (10;1;1) |
|
|
|
# and (10;10;1), are equivalent: |
|
|
|
#generated-line-path = (1;1;1);(10;1;1);(10;10;1) |
|
|
|
#generated-line-path = 1;1;1;10;1;1;10;10;1 |
|
|
|
# Emergency exit ; CP6 ; CP3 ; CP2 ; CP1 ; CP5 ; west of CP5 ; west intersection |
|
|
|
generated-line-path = (75.50;-34.50;1);(121.80;-21.10;1);(177.90;18.15;1);(160.85;78.30;1);(128.25;142.40;1);(72.10;122;1);(47.50;99.50;1);(2;85.50;1) |
|
|
|
|
|
|
|
# When generate-reference-points includes "line", the reference points |
|
|
|
# are generated with this (approximate) distance (in metres) between one |
|
|
|
# another. |
|
|
|
generated-line-step = 1 |
|
|
|
|
|
|
|
# When generate-reference-points includes "list", the list of reference |
|
|
|
# points declared here is be generated. In the string, the values are |
|
|
|
# separated by semicolons, and each group of coordinates can optionnaly |
|
|
|
# be surrounded by parenthesis. The two following examples, which |
|
|
|
# declare the points (1;2;1) and (4;2.5;1), are equivalent: |
|
|
|
#generated-points-list = (1;2;1);(4;2.5;1) |
|
|
|
#generated-points-list = 1;2;1;4;2.5;1 |
|
|
|
|
|
|
|
# This option allows the calibration requests sent during the |
|
|
|
# positioning phase to be added to the calibration request's list. They |
|
|
|
# are added to the calibration requests read by InputDataReader during |
|
|
|
# the start-up phase. If this option is not activated, the calibration |
|
|
|
# requests are handled as positioning requests. |
|
|
|
# This option must be activated for the self-calibration to work, but |
|
|
|
# it is not activated by default for security purposes. |
|
|
|
accept-new-calibration-requests = true |
|
|
|
|
|
|
|
# Maximum age of the calibration requests, in seconds. If greater than |
|
|
|
# zero, the calibration requests older than this timeout will be |
|
|
|
# deleted. See also the replay option. |
|
|
|
#calibration-requests-timeout = 0 |
|
|
|
|
|
|
|
# With this option activated, the calibration requests associated with |
|
|
|
# an existing reference point are deleted when receiving a new |
|
|
|
# calibration request, before to associate the new request with the |
|
|
|
# reference point. |
|
|
|
# The default is true, as there is generally no point keeping old |
|
|
|
# calibration requests. |
|
|
|
#unique-calibration-requests = true |
|
|
|
|
|
|
|
# If you activate the above option and want the calibration requests |
|
|
|
# to be treated as positioning requests (in addition to the normal |
|
|
|
# treatment of calibration requests), activate this option. |
|
|
|
# The default is false: the first calibration requests' purpose is to |
|
|
|
# serve the positioning process, not to use it. |
|
|
|
#position-calibration-requests = false |
|
|
|
|
|
|
|
[positioning.nss] |
|
|
|
# This subsection contains the options related to the NSS (a.k.a. RADAR) |
|
|
|
# algorithm and derivated. |
|
|
|
|
|
|
|
# For a given positioning request, average all the calibration requests |
|
|
|
# associated with a reference point before to compute the SS similarity. |
|
|
|
# The default is false, i.e. the positioning request is compared |
|
|
|
# directly to each calibration request. |
|
|
|
#average-reference-points = false |
|
|
|
|
|
|
|
# Do not select reference points on which a CP is sit, as far as |
|
|
|
# possible (i.e. if there are reference points where no CP sits). |
|
|
|
# This is useful if you are using autocalibration and want to select |
|
|
|
# only the generated reference points. |
|
|
|
# The default is false. |
|
|
|
ignore-cp-reference-points = true |
|
|
|
|
|
|
|
[output] |
|
|
|
# The following options are related to the output of the results. |
|
|
|
|
|
|
|
# Compute the euclidean distance error in two dimensions instead of |
|
|
|
# three dimensions. This can be useful when doing experiments on only |
|
|
|
# one floor. |
|
|
|
# The default is false, i.e. the error is computed in 3D. |
|
|
|
2d-error = true |
|
|
|
|
|
|
|
# This is the default output if none is specified. |
|
|
|
medium = Terminal |
|
|
|
|
|
|
|
medium = CSV |
|
|
|
csv-file = /tmp/owlps-positioner.out |
|
|
|
|
|
|
|
#medium = UDP |
|
|
|
# Currently, the host must be an IPv4 address (not a DNS name, nor an |
|
|
|
# IPv6). |
|
|
|
#udp-host = |
|
|
|
#udp-port = 9910 |
|
|
|
|
|
|
|
# The TCPEvAAL output follows the specification of EvAAL 2012 to |
|
|
|
# communicate with the SocketAdapter program developed by the |
|
|
|
# organizers. |
|
|
|
# Note: you can use only one algorithm when using the TCPEvAAL output. |
|
|
|
#medium = TCPEvAAL |
|
|
|
# Currently, the host must be an IP address (not a DNS name). |
|
|
|
#tcpevaal-host = 127.0.0.1 |
|
|
|
#tcpevaal-port = 4444 |
|
|
|
|
|
|
|
# vim: syntax=cfg |