The wireless package contains components for physical- and link-layer simulation of wireless systems, with an emphasis on error correction codes. It was developed as part of spinal code research. Components include:
The package has the following dependencies: SWIG, git, python header files, GNU autotools, libtool, a C++ compiler (e.g., g++), Boost (for strider linear algebra), numpy, and IT++. On Ubuntu 12.04 these can be installed via:
sudo apt-get install swig git python-dev autoconf libtool g++ libboost-dev python-numpy-dev libitpp-dev
Note that on Ubuntu, IT++ is in the universe software repository, so they might require enabling universe repositories. Note that SWIG version 2.0.7 and up are required. Earlier versions have bugs that prevent swig from successfully compiling the binding code. If downloading latest swig source code, note that libpcre is required, e.g.:
sudo apt-get install libpcre3-dev
The code is hosted on github: https://github.com/yonch/wireless. To get a copy:
git clone git://github.com/yonch/wireless.git
Enter the directory
Deploy the autotools build system
Configure the package. The build requires CPPFLAGS with the location of IT++ include files (in Ubuntu 12.04 for example, /usr/include). To separate build objects from the source tree, the package is configured from within a different directory (called release, below). The package could be installed to the default system paths (by omitting --prefix), but the example below installs to the user's home directory.
mkdir release cd release CPPFLAGS="-I/usr/include -DNDEBUG" CXXFLAGS="-O3" ../configure --prefix=$HOME -C
Or, make a debug release
mkdir debug cd debug CPPFLAGS="-I/usr/include -DDEBUG" CXXFLAGS="-O1 -g" ../configure --prefix=$HOME -C
Make the package and install:
make -j8 make -j8 install
In case the library was installed into a custom directory (like the user's home directory), the following paths enable the package to be found.
export WIRELESS_SIM_PREFIX=$HOME export C_INCLUDE_PATH=$WIRELESS_SIM_PREFIX/include:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=$WIRELESS_SIM_PREFIX/include:$CPLUS_INCLUDE_PATH export LIBRARY_PATH=$WIRELESS_SIM_PREFIX/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=$WIRELESS_SIM_PREFIX/lib:$LD_LIBRARY_PATH export PYTHONPATH=$PYTHONPATH:$WIRELESS_SIM_PREFIX/lib/python2.7/site-packages:$WIRELESS_SIM_PREFIX/lib/python
By adding these to ~/.bashrc or the like, these paths can be configured automatically.
The sanity test runs simulation with many of the package's components:
python >>> import wireless.simulator.SanityTest
For more information, please leave a comment or contact the author (yonch at mit dot edu). This guide will be expanded according to user requests as time allows. -- Jonathan