# HG changeset patch # User etisserant # Date 1236372177 -3600 # Node ID bdd82ac65f5df7ff86c8df006bb80b634d333032 # Parent b24790c748aeff499f16a0a7e41ae73aacffbd44 Fixed non-wx runtime python evaluation stuff. diff -r b24790c748ae -r bdd82ac65f5d Beremiz_service.py --- a/Beremiz_service.py Mon Mar 02 09:23:34 2009 +0100 +++ b/Beremiz_service.py Fri Mar 06 21:42:57 2009 +0100 @@ -368,8 +368,11 @@ if not os.path.isdir(WorkingDir): os.mkdir(WorkingDir) +def default_evaluator(callable, *args, **kwargs): + return callable(*args,**kwargs) + class Server(): - def __init__(self, name, ip, port, workdir, argv, statuschange=None, evaluator=eval): + def __init__(self, name, ip, port, workdir, argv, statuschange=None, evaluator=default_evaluator): self.continueloop = True self.daemon = None self.name = name diff -r b24790c748ae -r bdd82ac65f5d runtime/PLCObject.py --- a/runtime/PLCObject.py Mon Mar 02 09:23:34 2009 +0100 +++ b/runtime/PLCObject.py Fri Mar 06 21:42:57 2009 +0100 @@ -193,28 +193,29 @@ execfile(hmifile, self.python_threads_vars) execfile(pyfile, self.python_threads_vars) try: - wx = self.python_threads_vars['wx'] - # try to instanciate the first frame found. - for name, obj in self.python_threads_vars.iteritems(): - # obj is a class - if type(obj)==type(type) and issubclass(obj,wx.Frame): - def create_frame(): - self.hmi_frame = obj(None) - self.python_threads_vars[name] = self.hmi_frame - # keep track of class... never know - self.python_threads_vars['Class_'+name] = obj - self.hmi_frame.Bind(wx.EVT_CLOSE, OnCloseFrame) - self.hmi_frame.Show() - - def OnCloseFrame(evt): - self.hmi_frame.Destroy() - self.hmi_frame = None - wx.MessageBox("Please stop PLC to close") - #wx.CallAfter(self.StopPLC) - create_frame() - #evt.Skip() - create_frame() - break + if self.python_threads_vars.has_key('wx'): + wx = self.python_threads_vars['wx'] + # try to instanciate the first frame found. + for name, obj in self.python_threads_vars.iteritems(): + # obj is a class + if type(obj)==type(type) and issubclass(obj,wx.Frame): + def create_frame(): + self.hmi_frame = obj(None) + self.python_threads_vars[name] = self.hmi_frame + # keep track of class... never know + self.python_threads_vars['Class_'+name] = obj + self.hmi_frame.Bind(wx.EVT_CLOSE, OnCloseFrame) + self.hmi_frame.Show() + + def OnCloseFrame(evt): + self.hmi_frame.Destroy() + self.hmi_frame = None + wx.MessageBox("Please stop PLC to close") + #wx.CallAfter(self.StopPLC) + create_frame() + #evt.Skip() + create_frame() + break except: PLCprint(traceback.format_exc()) except: