# 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