Source Code for the Paper "Quantifying the Spectrum Occupancy in an Outdoor 5 GHz WiFi Network with Directional Antennas"
Bibtex and Link:
Will be added after the conference.
Getting Started
Important Information
This Softare ist just a proof of concept for the paper linked above. You will find:
- Global variables which you need to adapt
- Hard-code filesystem links
- Redudant code
- undocumented Source Code
Besides that, it just works. Please write a mail to michael.rademacher @h-brs.de for assistance.
Prerequisites
You need a current dev version of libnl3. After installting this lib, find the location. A common folder is:
/usr/include/libnl3/
please addapt the makefile if the location is different in your installation. Perhaps I will move to autotools in a further release.
In addition, for the plotting tools there is a
Building
Clone this repository and change into the folder. Afterwards, type
make
to build the program.
If everything works as expected, there should be
ChannelEstimation
binary in your current folder.
**Important! **
There are some paramaters hard-coded in the binary at the moment. Most importantly, the channel list. Please have a look at the top of channel_estimation.c and change it based on your needs.
Running the binary
Run the binary with two parameters:
- The WiFi Interface (needs to be up! ifconfig wlan0 up)
- The sleep time between scanning two channels.
./ChannelEstimation wlan0 0 >> YOURLOGFILE.log
If you want to run the binary for an extended amount of time, on several machines, we provide an example script in tools/chest.sh. This script uses ssh to run the binary and store the results.
Processing and Plotting
First, use the following bash script in the tools folder. Important, you need change the filename located in the top of this script.
store_pre_processing.sh
This script splits the log files into a SCAN and SURVEY log (csv files and adds the needed header. From this point on, you are free to use your own processing and plotting tools. The log files we have used in the paper can be found in the thbed/v96long/ folder.
If you want to use our plotting and processing tools, we provide a short example in the following.
We make heavily use of the python pandas framework to conduct the processing of the data. Since using a csv file is not the best and fastest way to store the data, we first convert the csv file into a h5 table which can be better processed by pands.
python store_processing.py -i ../lab-verification/
you will get a store.h5 file in the lab-verification folder which contains all the data from the csv file.
Next, we will work with with this store by using a simple plotting script.
python line_time_lab.py -i ../lab-verification/
you will get a .pdf plot of the data in the plot folder.
Please read the plotting scripts for additional details or write me a mail.