Hi,
Again, this is very much the wrong way to do this! This string
parsing is slow, and will break the GUI horribly once Gary's
multi-processor branch has been merged. If anything manipulates
STDOUT before the relax controller can catch it, then the relax
controller is dead.
I will create the status singleton object today (in the 1.3 line so
you will need to svnmerge). I will also place the global iteration
counter for the dAuvernge_protocol into there. Each user function (in
the 1.3 line code only) can then start putting information into this
object. The relax controller can then do something like:
from status import Status
status = Status()
while 1:
sleep(1)
print status.dAuvergne_protocol_iter
print status.dAuvergne_protocol_global_model
with the calculation running in a thread, the relax controller will
then get the counter number and the global model ('local_tm',
'ellipsoid', etc.) that the thread itself updates.
Regards,
Edward
On 25 February 2010 04:10, <michael.bieri@xxxxxx> wrote:
Author: michaelbieri
Date: Thu Feb 25 04:10:44 2010
New Revision: 10916
URL: http://svn.gna.org/viewcvs/relax?rev=10916&view=rev
Log:
The relaxGUI log window reads Progress output and updates progress bar.
The automatic calculation scripts have to prompt a message like 'Progress:
10'. The relaxGUI controller recognizes a progress of 10% and updates the
prohgress bar.
Modified:
branches/bieri_gui/gui_bieri/controller.py
Modified: branches/bieri_gui/gui_bieri/controller.py
URL:
http://svn.gna.org/viewcvs/relax/branches/bieri_gui/gui_bieri/controller.py?rev=10916&r1=10915&r2=10916&view=diff
==============================================================================
--- branches/bieri_gui/gui_bieri/controller.py (original)
+++ branches/bieri_gui/gui_bieri/controller.py Thu Feb 25 04:10:44 2010
@@ -213,7 +213,7 @@
global progress
# Limit panle entries to max_entries Lines.
- wx.CallAfter(self.limit_entries)
+ #wx.CallAfter(self.limit_entries)
# Add new output.
wx.CallAfter(self.out.log_panel.AppendText, string)
@@ -225,6 +225,7 @@
check = a.split()
# update progress bar
+ # Monte Carlo Simulation.
if 'Simulation' in string:
add = round(progress)
add_int = int(add)
@@ -232,6 +233,12 @@
progress = ( (int(check[1]) * 100) / float(montecarlo + 6)) + 5
time.sleep(0.001) # allow relaxGUI progressbar to get refreshed
+ # Other calculations.
+ if 'Progress:' in string:
+ progress = check[1]
+ progress = progress.replace('&', '')
+ wx.CallAfter(self.out.progress_bar.SetValue, int(progress))
+ time.sleep(0.001) # allow relaxGUI progressbar to get
refreshed
class Thread_container:
_______________________________________________
relax (http://nmr-relax.com)
This is the relax-commits mailing list
relax-commits@xxxxxxx
To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits