{{{#!comment [[Include(wiki:802.11/beta-note)]] }}} [[TracNav(802.11/TOC)]] = 802.11 Reference Design: Experiment Framework Setup = The basic steps to setup and use the 802.11 Reference Design Experiments Framwork are listed below, and explained in detail in the following sections. 1. Install a suitable version of Python 1. Install the wlan_exp Python package 1. Configure and connect WARP v3 nodes via Ethernet 1. Test the hardware and setup == Python == The wlan_exp package requires '''Python 2 (version 2.7.5 or later)''' or '''Python 3 (version 3.3.5 or later)'''. === For Beginners === If you're not already using Python, we suggest using the [https://store.continuum.io/cshop/anaconda/ Anaconda Scientific Python Distribution] from [http://www.continuum.io/ Continuum Analytics]. This distribution bundles known-good versions of Python, third-party packages for data processing and IDE tools. The installers for Mac OS X, Windows and Linux are available on the [http://continuum.io/downloads Anaconda downloads page]. We strongly recommend a 64-bit Python installation to fully utilize the 802.11 Reference Design logging framework. A 32-bit Python cannot handle the large log files generated by nodes during long experiments. The Anaconda Mac OS X distribution is always 64-bit. If your Windows PC and OS is 64-bit, you should use the 64-bit Anaconda distribution. === Python Package Requirements === Most functions of the wlan_exp package only require the Python standard library. These functions include node initialization, control, monitoring and retrieval of log data. Some of the log parsing utilities and examples use third-party packages. To run all of our examples, your Python installation must have: * NumPy (version 1.8 or later) * Pandas (version 0.13 or later) * matplotlib (version 1.3.1 or later) * h5py (version 2.2 or later) === Recommendations === A 32-bit Python installation will work for all wlan_exp usage '''except''' processing large log (multi-gigabyte) files. When possible we recommend a 64-bit installation. We have tested wlan_exp with a few specific Python distributions. If you do not already have Python installed, we recommended one of the distributions below. This is not an exhaustive list. The wlan_exp package and associated examples should work with any standard distribution. '''Mac OS X''' * Python 2.7.5 (64-bit) bundled with Mac OS X 10.9 Mavericks * Anaconda Python 2.7.6 in [http://continuum.io/downloads Anaconda] == System Requirements == == Quick Start == * Install a suitable Python distribution (may be already be installed on your PC; see below) * Download the 802.11 Reference Design Python packages and examples from the repository: [browser:/ReferenceDesigns/w3_802.11/python /ReferenceDesigns/w3_802.11/python] * Choose an example script ([source:/ReferenceDesigns/w3_802.11/python/warpnet_example_wlan_throughput.py warpnet_example_wlan_throughput.py] for example) * Edit the script header to match your setup (IP address of your PC and serial numbers of your WARP nodes) * Connect ETH_B of each WARP v3 node to the same gigabit Ethernet switch as your PC * Open a terminal to the directory containing the example script * Run the script with Python; for example {{{python warpnet_example_wlan_throughput.py}}} == System Requirements == * '''802.11 Reference Design''': warpnet support was added to the reference design in v0.8. * '''Python''': the warpnet framework supports both Python 2 (2.7+) and Python 3 (3.3+). No third-party Python packages are required. See the Python recommendations below for more details. * '''Connectivity''': the framework requires the host PC and every WARP v3 node be connected to a common gigabit Ethernet switch. We recommend you use a dedicated NIC on your PC to avoid superfluous traffic on the experimental network. The WARP v3 nodes must use their '''ETH B''' interfaces for wlan_exp. * '''WARP v3 hardware''': warpnet requires at least one WARP v3 node running the 802.11 Reference Design. The framework supports up to 253 nodes. == Python Versions == The warpnet framework supports Python 2 (2.7.4+) and Python 3 (3.3+). The core warpnet and wlan_exp scripts require only the core Python packages. We have tested the framework and example scripts using the operating systems and Python distributions listed below. '''Mac OS X''' * Python 2.7.4 bundled with Mac OS X 10.9 Mavericks * Python 2.7.5 in [https://code.google.com/p/spyderlib/wiki/Installation Spyder] * Python 2.7.6 in [http://continuum.io/downloads Anaconda] '''Windows''': * Python 2.7.6.2 (64 bit) in [http://winpython.sourceforge.net/ WinPython] * Python 3.3.3.2 (64 bit) in [http://winpython.sourceforge.net/ WinPython] === Useful Packages === * '''[https://code.google.com/p/spyderlib/ Spyder]''': this IDE for Python code development is extremely useful when editing code / developing scripts. Besides automatic syntax checking / highlighting, it integrates the python and ipython consoles to allow interactive debug of code. * '''[http://ipython.org/ ipython]''': this interactive Python environment is great for testing experiment scripts and exploring experiment results. Many integrated Python distributions (Anaconda, Spyder, WinPython, etc) integrate the ipython shell. * '''numpy''': Some of the wlan_exp_log examples use [http://www.numpy.org/ numpy 1.7] for processing large arrays of node log entries. numpy is included in many Python distributions. You can check by running this on your command line: {{{python -c "import numpy; print numpy.version.version"}}}. This will print a version number if numpy is installed or an error if it is not. Our examples assume numpy 1.7 or later. * '''pandas''': The pandas library provides some very useful tools for dealing with large datasets, especially those where time is a dimension (like log entries).