Hello, This looks like an interesting idea, I am interested in using something like this in the future. For my immediate needs, I don't mind having the client poll the server at regular intervals (every 10 seconds for example). As a last resort, I am using a <meta http- equiv="refresh" content="10"> statement, but it seems like there must be a better way with ajax/jquery load and setInterval. Thanks for the pointer, G
On Nov 16, 11:35 pm, dederocks <[email protected]> wrote: > Hello, > > I guess this could be solved by implementing the APE (ajax-push) > technology mentionned the other day by > Michele:http://www.ape-project.org/ajax-push.html. > I'm working on it to see if this can be used to remotely control a > webcam and send back pictures in real time. > BR, André > > On 16 nov, 22:19, G <[email protected]> wrote: > > > Hello, > > I read the slides and checked out the app, and it's great to see more > > matplotlib/web2py examples. However, this does not address my use of > > web2py for dynamically monitoring a system, which I am having some > > trouble with. For example, suppose you wanted to create a "master > > view" for your double-slit application, which would present a page > > where each time someone ran a new double slit experiment with the > > application, the page would update and show some plots from the result > > of the double slit. Or perhaps some real-time statistics about all of > > the experiments run so far. How would you implement something like > > that? The code I posted below seems like it should work for this sort > > of real time monitoring, but as I mentioned, I cannot get the images > > to dynamically update. > > > I appreciate any suggestions anyone has. > > Thanks, > > G > > > On Nov 16, 10:17 am, mdipierro <[email protected]> wrote: > > > > I just gave a talk at Supercomputing about it. I will post the app and > > > slides later today. > > > > On Nov 16, 10:06 am, G <[email protected]> wrote: > > > > > Hello again, > > > > Is anyone else using matplotlib to generate dynamic plots for use with > > > > web2py. Any pointers on a better way to do it that will allow dynamic > > > > refreshing? > > > > Thanks for any help, > > > > G > > > > > On Nov 14, 3:42 pm, G <[email protected]> wrote: > > > > > > Hello, > > > > > I am using web2py to monitor and control an instrument. I am > > > > > dynamically generating plots using matplotlib following the DNA > > > > > application example from SC2009 > > > > > (http://www.web2py.com/examples/static/ > > > > > sc/sc_dna_talk.pdf) > > > > > > I was able to get the basic aspects working based on that example. > > > > > However, I want to automatically display new plots as new data is > > > > > available. I am using the following code in the view: > > > > > > <script> > > > > > var auto_refresh = setInterval( > > > > > function() > > > > > { > > > > > $('#loaddiv').load('statusbox.load'); > > > > > $('#threshpng').html('<img > > > > > src="/myapp/default/dataThreshPlot.png">');}, 5000); > > > > > > </script> > > > > > <div id="loaddiv">loading...</div> > > > > > <div id="threshpng">png loading</div> > > > > > > The statusbox.load generates a table with some statistics about the > > > > > data, and this successfully updates every 5 seconds as desired. > > > > > However, the dataThreshPlot never gets refreshed, only the initial > > > > > version is displayed. (a timestamp is written to the plot when it is > > > > > generated so I can verify this fact). > > > > > > If I simply browse to localhost:8000/myapp/default/dataThreshPlot.png > > > > > the plot is properly generated and displayed each time I refresh the > > > > > page. > > > > > > I have tried adding this code to the dataThreshPlot function in the > > > > > controller: > > > > > > response.headers['Expires'] = time.strftime("%a, %d %b %Y %H:%M:%S > > > > > +0000", time.gmtime(time.time()+1)) > > > > > > to try to avoid caching, but still no luck. > > > > > > I also tried making a very simple controller function as follows: > > > > > > def dataThreshPage(): > > > > > return dict(threshim= URL(r=request,f=dataThreshPlot)) > > > > > > and view: > > > > > <img src={{=threshim}}> > > > > > > and tested that localhost:8000/myapp/default/dataThreshPage presents > > > > > the plot as expected. > > > > > > I then modified the jquery refresh code to: > > > > > > <script> > > > > > var auto_refresh = setInterval( > > > > > function() > > > > > { > > > > > $('#loaddiv').load('statusbox.load'); > > > > > $('#threshpng').load('/myapp/default/dataThreshPage');}, 5000); > > > > > > </script> > > > > > <div id="loaddiv">loading...</div> > > > > > <div id="threshpng">png loading</div> > > > > > > but still no luck. > > > > > > Any suggestions for how to get these plots to refresh? > > > > > Thank you, > > > > > G > >

