Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OpenVisualizer is the OpenWSN tool for visualization/debugging tool, debugging and simulation of the motes. It's a set of python scripts designed to aid in the debugging process, or simply serve as a visualization platform. OpenVisualizer supports the following 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).

Running it

...

  • 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 OpenSerialToMote), 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.