Neal,

I do something similar to this where data that I'm plotting in a 2D line 
plot comes from a UDP socket and some memory mapped files.  To 
accomplish the live updating I have a mix of your #2 and #3.  I have a 
main GUI thread that displays the plots, then I have a second thread 
that gets data from a python generator and signals the GUI thread when 
that new data has arrived.  Inside the generator is where I have socket 
communications and select calls.  Hope this helps.

-Dave

On 9/30/11 9:10 AM, matplotlib-users-requ...@lists.sourceforge.net wrote:
> Message: 4
> Date: Fri, 30 Sep 2011 07:37:49 -0400
> From: Neal Becker<ndbeck...@gmail.com>
> Subject: [Matplotlib-users] how would you do this (animated bargraph)
> To:matplotlib-users@lists.sourceforge.net
> Message-ID:<j649me$ug4$1...@dough.gmane.org>
> Content-Type: text/plain; charset="ISO-8859-1"
>
> I just put together an animated bargraph to show results from a realtime
> process.
>
> I used this as an example:
> http://matplotlib.sourceforge.net/examples/animation/animation_blit_qt4.html
>
> The tricky part for me was that in the original design, there was a realtime
> process running.  I have to write some information to my hardware (at a rate 
> of
> about 1/360ms).  To do this, I have a kernel driver that uses 'read' to tell 
> the
> user space when an interrupt has occurred, which is when the user space should
> write new information to the hardware.
>
> So I don't know how or if this could be hooked into qt event processing.  Just
> for a quick-and-dirty demo, I just removed the realtime processing from the
> user-space and put it in the kernel driver, so now my bargraph display can
> simply update on a periodic timer, and the userspace code has no realtime
> requirement.  But this is just a kludge.
>
> So I wonder how other's would solve this?  I'm thinking it would be either:
>
> 1) multi-process
> 2) multi-thread
> 3) 1 process, but somehow hook my realtime events into qt's event loop.
>
> For #3, my device driver has a filedescriptor, that could use select to detect
> the interrupt (rather than blocking read call).
>
> #1 and #2 seem complicated.

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to