Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

OpenVisualizer is the OpenWSN tool for visualization, debugging and simulation of the motes. It's a set of Python scripts designed to aid debugging, or simply to serve as a visualization platform.

Features

  • shows the internal state (neighbor table, scheduling table, queue, etc.) of each node connected to the interface;
  • displays the multi-hop graph (not-implemented yet);
  • translate error codes into human-readable sentences;
  • buttons allows a use to trigger the sending of a packet;
  • *New! * nodes can be connected either locally or remotely as an OpenVisualizer probe;
  • *New! * provides a simulator in order to test the functionalities of the OpenWSN stack (testing and develop purpose).

Page Contents

Running it

To run OpenVisualizer, double click on openVisualizerGui.py, or via command line:

C:\develop\openwsn-sw\software\openvisualizer\bin\openVisualizerGui> python openVisualizerGui.py

Must run as Administrator under Windows, or as superuser on Linux.

Installation

Prerequisites

PackageRoleInstallation Notes
Pythonimplementation languageUsing v2.7. v3.x not supported yet.
PySerialserial to moteUsing v2.6.
TAP for WindowsIPv6 tunnel driver
(Windows only *)
Using v9.9.2. When selecting components, include TAP Utilities as well as the adapter itself.
The TUN interface on Windows requires some configuration. Follow our tun/tap for Windows tutorial, specifically the Install tun page and the Configure tun page (perform Computer B steps).

PyWin32
Python Extensions for Windows

tunnel dependency
(Windows only)
Using Build 218. Be sure to review README.txt at the download site to retrieve the proper version.

FTDI USB/Serial driver

serial to mote
(TelosB mote only?)

 
Silicon Labs CP2102
UART-to-USB bridge
serial to mote
(GINA mote only)
For Windows, download CP210x VCP Windows driver. Use the default options. If successful, Windows shows two new programs (Control Panel > Programs > Programs and Features):
Silicon Laboratories CP320x USB to UART Bridge (Driver Removal)
Silicon Laboratories CP320x VCP Drivers for Windows XP/2003 Server/Vista/7

* On Linux, TUN/TAP already is included with the operating system, and OpenVisualizer configures it on the fly. See our TUN/TAP in Linux page for more information.

The --trace option provides internal memory profiling of OpenVisualizer itself, and requires yappi.

Download

PackageRoleInstallation Notes
openwsn-swOpenVisualizer softwareDownload zip or clone with Git. Typically, we use the develop branch as our common development base.
openwsn-fwFirmware header files required by openwsn-swDownload zip or clone with Git.
Must install in a sibling directory to openwsn-sw. So, if software is in C:\develop\openwsn-sw, then firmware must be in C:\develop\openwsn-fw.

Code Organization

Implementation modules

  • openVisualizerGui.py is the master module. It can be run in "real" or "simulator" mode. It lists all the connected nodes (real or emulated) through a serial port and, for each, spawns a different execution thread.
  • moteProbe.py contains the code which is executed by each thread. Whenever data is received from the mote, it is passed along to Parser.py.
  • Parser.py dispatch all the data it receives to respective parser module. In case a frame of Status/Error/ErrorCritical is received from the serial port, ParserInfoErrorCritical.py calls the corresponding display* function from moteState.py. In case it receives a request to send data from a mote (see Serial Format thread in this section), it asks the correct openSerial.py thread to answer accordingly.
  • moteState.py handles everything which is related to the graphical user interface. It is solely based on TkInter, the graphical interface which ships by default with Python. A single semaphore is used to arbitrate the access to the graphic elements.
  • openType.py  lists the variables which need to be accessed by multiple modules, such as the handlers of the different threads.
  • StackDefines.py is used by ParserInfoErrorCritical.py to translate error and status code into human-readable text.
  • No labels