RaLaNS NS-3 INTEGRATION INSTALLATION GUIDE
This installation was done on Ubuntu 14.04

Before downloading and installing ns3 the usual way, do 
	sudo apt-get install python-dev python-pygccxml python-numpy python-matplotlib

For using the calculation for lists, you have to download ANN:
	sudo apt-get install libann0 libann-dev

Then download & install ns3 the usual way (see tutorial).
For example look at this tutorial:
	https://www.nsnam.org/docs/tutorial/html/getting-started.html

Copy files from this order into the order containing the waf script (ns-3-dev/ in older versions, simply something like ns-3.21/ in newer versions).
More explanation to the copy process:
	You need to copy all C++ files, so also the RaLaNSALone and RaLaNSList, because the NS3RaLaNS is based on that one.
	So if you are in a folder similar to ns-3.21, you have to put all the c++ files in the folder src/propagation/model/ . 
	Then you also need to update the wscript, either by just replacing the one in src/propagation or integrating the
	necessary content into the existing file. If you have not added any new modules to that wscript, then replacing is the
	easier option. If you have already added new stuff to that wscript, then you can just add the lines, which have a
	comment with the word necessary.

Now you are good to go:
	python ralanstest.py -m coverage/small_street_flat_example.zip -s 1 -d 1
If you need information about how to use ralanstest.py, just type:
	'python ralanstest.py -h' or 'python ralanstest.py --help'

If you want to set some default values for the ralanstest script, then you can just open it and change the constants at
the beginning of the file with valid values.

For your own simulations, you can use a result from the raylauncher (in ralans/outputfiles) just like the examplefile coverage/small_street_example.zip
Look at ralanstest.py and scratch/ralans_example.py for a usage example.

USING THE EXAMPLE:
The following examples should give you an idea of what you are able to do with this software. The input files are the same ones as the ones, that you might have generated on your own using the examples for RaLaNS itself.
1. The simple example from above:
python ralanstest.py -m coverage/small_street_flat_example.zip -s 1 -d 1
2. The ns-3 RaLaNS extension offers interpolation between values, so you can use smaller step sizes than in the input file:
python ralanstest.py -m coverage/small_street_flat_example.zip -s 0.3 -d 1
3. Usually you will want to use an inputfile with multiple virtual transmitters & receivers, so you can place transceivers wherever you want:
python ralanstest.py -m coverage/small_street_flat_cover.zip -s 1 -d 5 -t [-20,0,1]
python ralanstest.py -m coverage/small_street_flat_cover.zip -s 1 -d 5 -t [20,0,1]
4. You can use a file with transmitters & receivers only on streets as well (ignore the messages about receivers far away - this comes from only having receivers along the streets):
python ralanstest.py -m coverage/sedanplatz_streets.zip -s 5 -d 5 -b [-472,-407,479,515]




Troubleshooting:
ns.applications not found / python bindings not enabled in ns3.24 (fixed in ns3.24.1):
see: https://www.nsnam.org/wiki/Ns-3.24-errata
or short, type: ./waf configure --enable-examples --enable-tests --with-pybindgen=../pybindgen-0.17.0.post41+ngd10fa60
