Skip to content

TUB-Control/PaPI

Repository files navigation

PaPI v. 1.4

Plugin based Process Interaction

Introduction

PaPI is a tool to interact with real-time targets or sources for measured data. It provides a plugin-based framework that allows to read streaming data form targets and allows to set parameters. Several plugins for data visualization (plots, bars, meters, html-animations ...) as well as GUI-elements for entering parameters (textfields, sliders, ...). User customized plugins can be easily created using a given Python-API.

Opening and closing of all GUI-elements can be controlled by real-time target programs and hence it is possible to implement GUI-logic using state-machines inside the target programs. Have a look at https://youtu.be/9B2BISXaPdo to get an impression of what is currently possible.

PaPI spans across several processes to benefit form multi-core systems.

Installation

Basic installation on Ubuntu 14.04 64Bit, using python 3.4

sudo apt-get install git

sudo apt-get install python3.4 python3-numpy python3-pip

sudo apt-get install python3-pyqt5

sudo apt-get install python3-pyqt5.qtwebkit (just needed for the HTMLViewer plugin) [optional]

sudo apt-get install python3-pyqt5.qtsvg (just needed for the export feature of the Plot plugin) [optional]

sudo pip3 install socketio_client==0.6.5 (required for ORTD_UDP) [optional]

git clone https://github.com/TUB-Control/PaPI.git PaPI

cd PaPI

python3.4 main.py

Tip: If python3.4 interpreter cannot find or locate the installed packages (PyQt5 or numpy), please make sure that the right python interpreter is called (in case there are multiple installed).

Start PaPI

You can either start PaPI by calling the main.py with a python interpreter or you can start PaPI by using the bash script. In addition, PaPI can be installed as a symlink to your device.

cd PaPI

sudo make install

For both start methods, command line switches and arguments are available.

-f: Starts PaPI in full screen mode.

-r: Starts PaPI with activated run mode.

-v: Displays the version of PaPI.

-h: Displays a help message.

-c: Start PaPI with the given configuration(PaPI loads arg-cfg after start).

-u: Specify another user config.

Real-time target systems currently supported

  • OpenRTDynamics.sf.net
  • Simulink

Examples for both Frameworks are contained within: https://github.com/TUB-Control/PaPI/tree/development/data_sources

A demo video that shows how graphical interfaces you create using PaPI may look like: https://youtu.be/9B2BISXaPdo

Contribution

To get started, sign the Contributor License Agreement.

Documentation

Sphinx doc on GitHub: https://tub-control.github.io/PaPI/

The provide makefile is used to build the documentation by using this simple command

make html

The documentation can be found in docs/_build/html/.

Embedded Packages

Yapsy 1.10.423 published under BSD-License, http://yapsy.sourceforge.net/#license

pyqtgraph-0.9.11 [unreleased] published under MIT-License https://github.com/pyqtgraph/pyqtgraph

JSONlab 1.1 published under BSD-License and GPLv3 https://github.com/fangq/jsonlab

Used icon-set

fatcow-hosting-icons-3.9.2, License: http://creativecommons.org/licenses/by/3.0/us/, Provided by: http://www.fatcow.com/