--- 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):
+def default_evaluator(callable, *args, **kwargs): + return callable(*args,**kwargs) - 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): --- 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)
- wx = self.python_threads_vars['wx']
- # try to instanciate the first frame found.
- for name, obj in self.python_threads_vars.iteritems():
- if type(obj)==type(type) and issubclass(obj,wx.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.Destroy()
- wx.MessageBox("Please stop PLC to close")
- #wx.CallAfter(self.StopPLC)
+ 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(): + if type(obj)==type(type) and issubclass(obj,wx.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.Destroy() + wx.MessageBox("Please stop PLC to close") + #wx.CallAfter(self.StopPLC) PLCprint(traceback.format_exc())