Overseer partly worked

This commit is contained in:
anwinged 2012-04-19 12:09:04 +00:00
parent c5f2da169a
commit 9c0b9a27a7
4 changed files with 34 additions and 41 deletions

View File

@ -10,6 +10,10 @@ ID_DUPLICATE_MODEL = wx.NewId()
ID_DELETE_MODEL = wx.NewId() ID_DELETE_MODEL = wx.NewId()
ID_PROCESS_MODEL = wx.NewId() ID_PROCESS_MODEL = wx.NewId()
class MyTreeListCtrl(wx.gizmos.TreeListCtrl):
def Refresh(self, erase, rect):
wx.gizmos.TreeListCtrl.Refresh(False, rect)
class MainFrame (wx.Frame): class MainFrame (wx.Frame):
def __init__(self, parent): def __init__(self, parent):
@ -27,8 +31,10 @@ class MainFrame (wx.Frame):
bSizer4 = wx.BoxSizer(wx.VERTICAL) bSizer4 = wx.BoxSizer(wx.VERTICAL)
self.m_user_models = wx.gizmos.TreeListCtrl(self, self.m_user_models = wx.gizmos.TreeListCtrl(self,
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS) #self.m_user_models = MyTreeListCtrl(self,
self.m_user_models.SetMinSize(wx.Size(-1,200)) #self.m_user_models = wx.TreeCtrl(self,
style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.TR_EDIT_LABELS | wx.TR_ROW_LINES)
self.m_user_models.SetMinSize(wx.Size(-1, 200))
self.m_user_models.AddColumn("Model name") self.m_user_models.AddColumn("Model name")
self.m_user_models.AddColumn("Status") self.m_user_models.AddColumn("Status")
self.m_user_models.AddColumn("Progress") self.m_user_models.AddColumn("Progress")

56
opal.py
View File

@ -64,47 +64,41 @@ class MainFrame(forms.MainFrame):
self.server.Stop() self.server.Stop()
self.Destroy() self.Destroy()
# todo1 вменяемый цикл обхода!
def Overseer(self): def Overseer(self):
try:
def SeeTheItem(item): while True:
if True:
wx.MutexGuiEnter()
#print '-- cycle --'
um = self.m_user_models um = self.m_user_models
#um.Freeze()
item = um.GetRootItem()
while item.IsOk():
md = um.GetPyData(item) md = um.GetPyData(item)
print um.GetItemText(item) job = md.job if md else None
job = md.job if job and job.IsRunning():
if job:
t = os.path.basename(job.taskd.execpath) t = os.path.basename(job.taskd.execpath)
p = job.percent * 100 p = job.percent * 100
print t, p #print t, p
um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 1) um.SetItemText(item, str(job.GetState()), 1)
um.SetItemText(item, '{}: {:.2F}%'.format(t, p), 2)
child, cookie = um.GetFirstChild() item = um.GetNext(item)
while child.IsOk(): #um.Thaw()
SeeTheItem(child) wx.MutexGuiLeave()
child, cookie = um.GetNextChild(child, cookie)
#try:
server = self.server
while True:
print 'cycle'
um = self.m_user_models
item = um.GetFirstVisibleItem()
SeeTheItem(item)
time.sleep(0.5) time.sleep(0.5)
#except: except Exception, e:
# pass print 'Error in overseer: ', e
def NewProject(self, project): def NewProject(self, project):
# 1. загрузить спецификации модели # 1. загрузить спецификации модели
# 2. создать одну модель по умолчанию # 2. создать одну модель по умолчанию
model = project model = project
um = self.m_user_models um = self.m_user_models
root = um.AddRoot('') root = um.AddRoot('Root')
data = task.DataDefinition(model) data = task.DataDefinition(model)
child = um.AppendItem(root, 'Default') child = um.AppendItem(root, 'Default')
um.SetPyData(child, data) um.SetPyData(child, data)
um.SetItemText(child, '234', 1)
def SelectUserModel(self, model_def): def SelectUserModel(self, model_def):
@ -169,6 +163,7 @@ class MainFrame(forms.MainFrame):
md[param] = value md[param] = value
def OnTest(self, event): def OnTest(self, event):
um = self.m_user_models um = self.m_user_models
id = um.GetSelection() id = um.GetSelection()
md = um.GetItemPyData(id) md = um.GetItemPyData(id)
@ -184,19 +179,10 @@ class MainFrame(forms.MainFrame):
md = um.GetItemPyData(id) md = um.GetItemPyData(id)
child = um.AppendItem(parent, title + ' Copy') child = um.AppendItem(parent, title + ' Copy')
um.SetPyData(child, md.Copy()) um.SetPyData(child, md.Copy())
self.SetStatusText('Copy for "{}" created'.format(title), 0)
def OnIdle(self, event): def OnIdle(self, event):
## server = self.server
## self.m_job_list.Freeze()
## self.m_job_list.Clear()
## with server.queue_lock:
## for j in server.jobs_queue:
## t = os.path.dirname(j.taskd.execpath)
## p = j.percent * 100.0
## self.m_job_list.Append('{}: {:.2}%'.format(t, p))
## self.m_job_list.Thaw()
pass pass
#time.sleep(1)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Приложение # Приложение

View File

@ -184,6 +184,7 @@ class Job:
self.comment = '' self.comment = ''
self.result = None self.result = None
self.proc = None self.proc = None
self.client_data = None
def ProcessMsg(self, msg): def ProcessMsg(self, msg):
# разбираем полученный ответ # разбираем полученный ответ

View File

@ -79,7 +79,7 @@ def main():
while l <= r: while l <= r:
y = sin_taylor(l, d) y = sin_taylor(l, d)
res.append([l, y]) res.append([l, y])
write(answer(round(l / r, 2))) write(answer(l / r))
l += h l += h
time.sleep(0.2) time.sleep(0.2)