Version 10 (modified by murphpo, 10 years ago) (diff) |
---|
802.11 Reference Design
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.
- Install a suitable version of Python
- Install the wlan_exp Python package
- Configure and connect WARP v3 nodes via Ethernet
- Test the hardware and setup
There are two sets of instructions below- one for Python beginners, one for Python experts.
For Python Beginners
New Python users should start with the Anaconda Scientific Python Distribution from Continuum Analytics. This distribution bundles known-good versions of Python, third-party packages for data processing and great IDE tools.
The installers for Mac OS X, Windows and Linux are available on the 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.
Install wlan_exp Package
A core component of 802.11 Reference Design Experiments Framework is the wlan_exp Python package. You must use a wlan_exp version that matches the 802.11 Reference Design version running in your WARP v3 nodes.
We strongly recommend using the wlan_exp package bundled in the reference design .zip archive. This version of the package is tested with the C code, FPGA designs and pre-compiled bitstreams bundled in the same release. The wlan_exp package is located in the /Python_Reference folder in the reference design .zip archive.
To install the wlan_exp package in your Python environment:
- Launch the Spyder IDE in your Anaconda installation (Start Menu -> Anaconda (64-bit) -> Spyder)
- Select Tools -> PYTHONPATH Manager
- If the PYTHONPATH window shows any existing 802.11 Reference Design Python_Reference entries, remove them
- Click Add
- Navigate to the wlan_exp folder in the expanded reference design archive (for example "C:\work\Mango_802.11_RefDes_v0.9_beta\Python_Reference")
- Click Select Folder
- Click Synchronize, then Yes
- Click Close
Configure and Connect WARP v3 Nodes
The 802.11 Reference Design Experiments Framework communicates with WARP v3 nodes via Ethernet. Your PC (with Python and the wlan_exp package) and all WARP v3 nodes must be connected to the same Ethernet switch.
We recommend using a dedicated NIC for wlan_exp experiments. This NIC should have a static IP address in the 10.0.0.x subnet. This is the same recommended setup as for WARPLab.
Ethernet Setup:
- Set your PC NIC IP address to 10.0.0.250 and subnet mask to 255.255.255.0
- Connect the NIC to a 1Gb Ethernet switch
- Connect ETH_B of each WARP v3 node to the same switch
Important: do not connect ETH_A of multiple WARP v3 nodes to the same switch. The 802.11 Reference Design wired-wireless portal will attempt to bridge ETH_A to the wireless interface. Mixing this behavior with wlan_exp traffic will have unpredictable results.
Nodes Configuration:
- If you have one WARP v3 node, configure this node as an 802.11 AP using the AP bitstream from the Bitstream_Reference folder
- If you have multiple WARP v3 nodes, configure one as an AP (AP bitstream) and the rest as stations (STA bitstream)
Testing Your Setup
- Launch a Python shell (Start Menu -> Anaconda (64-bit) -> Anaconda Command Prompt)
- Change directory to the Python_Reference/Examples folder (cd C:\work\Mango_802.11_RefDes_v0.9_beta\Python_Reference\examples)
- Run the blink_node_leds.py example: python blink_node_leds.py
All of your WARP v3 nodes should blink their hex displays for 5 seconds. If any node is not blinking, double-check your Ethernet connections (use ETH_B!), PC IP address and Python setup.
For Python Experts
The wlan_exp package requires Python 2 (version 2.7.5 or later) or Python 3 (version 3.3.5 or later).
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.
We recommend a 64-bit installation. A 32-bit Python installation will work for most wlan_exp usage except processing large (multi-gigabyte) log files.
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)
In our testing the wlan_exp examples that use these packages work in both Python 2.7 and 3.3.
Useful Packages
- 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.
- 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 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).