Personal tools
You are here: Home Issue Tracker Small widgets to monitor data
Document Actions

#33 — Small widgets to monitor data

State In progress
Release:
Area User interface
Issue type Feature
Severity Medium
Submitted by Sébastien Lelong
Submitted on 2008-02-24
Responsible Sébastien Lelong
Target release: 0.3
Return to tracker
Last modified on 2009-02-25 by Sébastien Lelong
GUI needs to... exist :)
For now, everything is done within a python CLI. While developing the DC motor controller board, I needed to plot data (motor's speed eg., using gnuplot). With some nice, little, autonomous widgets, this can be done easily.

This point is huge. Developing a GUI for Sirbot can be very long. So this point is firstly a starting point, an exploration point. For example, there are constraints:

 * plot data in real-time
 * display huge amount of data (coming from serial)
 * don't want to fire a big GUI window, widgets should be called, as needed, from a python CLI

In this step, I plan to create:

 * widget to see serial data (raw) coming from and going to the serial com.
 * widget to plot data in real-time
Added by Sébastien Lelong on 2008-02-24 11:40
Issue state: unconfirmedopen
"Should I Qt or should I GTK ?"

Choosing the gi toolkit... I know Qt, I've built GUIs with it, using C++. It's amazing how simple and pleasant it is. I don't know GTK (very few). So I should choose GTK :)

http://www.riverbankcomputing.co.uk/pyqt/
http://www.pygtk.org/

The fact is it's not about choosing Qt or GTK (or something else), it's about choosing the GUI toolkit which comes with a handy way of plotting data, particularly in real-time. PyGTK comes with RTGraph (http://rtgraph.sourceforge.net/), a nice small lib which would really make my life easy on that... With PyQt comes PyQwt (http://pyqwt.sourceforge.net/), a great package I've used years ago, using C++. No real-time functionality as in RTGraph, but, the real problem is installing it. It's very tricky about versions of dependencies to use. While it's not impossible, I don't want to build a GUI no one could use, because of a tricky installation of dependencies.

So, I'd choose PyGTK... even if threading support is weird (it's so much easier in PyQt).
Added by Sébastien Lelong on 2008-02-24 11:43
A serial Console using PyGTK... Poor performance compared to PyQT...
Added by Sébastien Lelong on 2008-02-24 11:44
Equivalent version using PyQt. Great performances... Should I really use PyGTK ?
Added by Sébastien Lelong on 2008-11-27 08:03
Issue state: openin-progress
Let's have a bigger view... SirBot's GUI could also be a RIA (Rich Internet Application, http://en.wikipedia.org/wiki/Rich_Internet_Application), that is, based on a client/server. This potentially means a bot could be controlled from everywhere there's a browser and an internet connection.

I was first thinking about developing a small web gui, in addition to a big fat desktop gui. Too much time. There are many way to create a RIA, mainly it's either writing html with javascript, Ajax stuff, or using flash. Both needs a way to push data. Flash has this as a built-in feature (XMLSocket and Socket). For pure DHTML/Javascript gui, there're things like Comet (implementation like Cometd and Orbited). A comet server could be used for both js and flash gui.

Building a GUI using javascript can be time-consuming. Flash has Flex (SDF is free, http://www.adobe.com/fr/products/flex/) or OpenLaszlo (free, http://www.openlaszlo.org/). Probably time-consuming too, but maybe less... I don't know, but what I know is Flex seems fun :) and may have less performance issue when processing real-time data.

Still need a way to plot and produce graphs from real-time data... Flex has some nice charts, but not bundle with the free SDK. Openlazslo seems more complicated, and I prefer investing my time on a Adobe product.

So, let's go with Flash/Flex and ActionScript, and let's find a way to plot real-time data !


Added by Sébastien Lelong on 2008-11-27 08:14
Severity: ImportantMedium
Target release: 0.3IHAD
later, probably
Added by Sébastien Lelong on 2009-02-25 07:55
Several GUI tools, graphical GUI tools may be used for this. See http://sirloon.net/loonaweb/sirblog/gui-toolkit-to-view-data-coming-from-your-pic for a review of potential applications.
Added by Sébastien Lelong on 2009-02-25 07:58
Target release: IHAD0.3
Pure Data (http://puredata.info/) seems to be a nice choice:

  * versatile, can be accessed and used for many things
  * runs under Linux
  * open source
  * fun


I've prototyped some widgets, looks promising (real-time plotting, based on a OSC server, ...). But... I guess implementing a serial console with it may not be possible: when dealing with text, it's not the proper tool. Or maybe there's an extension...

Powered by My Hands Powered by Jalv2 Hosted by Google Code