117 if __name__ == '__main__': |
117 if __name__ == '__main__': |
118 __builtin__.__dict__['_'] = lambda x: x |
118 __builtin__.__dict__['_'] = lambda x: x |
119 |
119 |
120 |
120 |
121 def Bpath(*args): |
121 def Bpath(*args): |
122 return os.path.join(beremiz_dir,*args) |
122 return os.path.join(beremiz_dir, *args) |
123 |
123 |
124 |
124 |
125 def SetupI18n(): |
125 def SetupI18n(): |
126 # Import module for internationalization |
126 # Import module for internationalization |
127 import gettext |
127 import gettext |
128 |
128 |
129 # Get folder containing translation files |
129 # Get folder containing translation files |
130 localedir = os.path.join(beremiz_dir,"locale") |
130 localedir = os.path.join(beremiz_dir, "locale") |
131 # Get the default language |
131 # Get the default language |
132 langid = wx.LANGUAGE_DEFAULT |
132 langid = wx.LANGUAGE_DEFAULT |
133 # Define translation domain (name of translation files) |
133 # Define translation domain (name of translation files) |
134 domain = "Beremiz" |
134 domain = "Beremiz" |
135 |
135 |
341 self.pyroserver.servicename = dlg.GetValue() |
341 self.pyroserver.servicename = dlg.GetValue() |
342 self.pyroserver.Restart() |
342 self.pyroserver.Restart() |
343 |
343 |
344 def _LiveShellLocals(self): |
344 def _LiveShellLocals(self): |
345 if self.pyroserver.plcobj is not None: |
345 if self.pyroserver.plcobj is not None: |
346 return {"locals":self.pyroserver.plcobj.python_runtime_vars} |
346 return {"locals": self.pyroserver.plcobj.python_runtime_vars} |
347 else: |
347 else: |
348 return {} |
348 return {} |
349 |
349 |
350 def OnTaskBarLiveShell(self, evt): |
350 def OnTaskBarLiveShell(self, evt): |
351 from wx import py |
351 from wx import py |
428 pyro.initServer() |
428 pyro.initServer() |
429 self.daemon=pyro.Daemon(host=self.ip_addr, port=self.port) |
429 self.daemon=pyro.Daemon(host=self.ip_addr, port=self.port) |
430 self.plcobj = PLCObject(self.workdir, self.daemon, self.argv, |
430 self.plcobj = PLCObject(self.workdir, self.daemon, self.argv, |
431 self.statuschange, self.evaluator, |
431 self.statuschange, self.evaluator, |
432 self.pyruntimevars) |
432 self.pyruntimevars) |
433 uri = self.daemon.connect(self.plcobj,"PLCObject") |
433 uri = self.daemon.connect(self.plcobj, "PLCObject") |
434 |
434 |
435 print _("Pyro port :"), self.port |
435 print _("Pyro port :"), self.port |
436 print _("Pyro object's uri :"), uri |
436 print _("Pyro object's uri :"), uri |
437 |
437 |
438 # Beremiz IDE detects daemon start by looking |
438 # Beremiz IDE detects daemon start by looking |
497 from threading import Semaphore |
497 from threading import Semaphore |
498 wx_eval_lock = Semaphore(0) |
498 wx_eval_lock = Semaphore(0) |
499 main_thread = currentThread() |
499 main_thread = currentThread() |
500 |
500 |
501 def statuschangeTskBar(status): |
501 def statuschangeTskBar(status): |
502 wx.CallAfter(taskbar_instance.UpdateIcon,status) |
502 wx.CallAfter(taskbar_instance.UpdateIcon, status) |
503 |
503 |
504 statuschange.append(statuschangeTskBar) |
504 statuschange.append(statuschangeTskBar) |
505 |
505 |
506 def wx_evaluator(obj, *args, **kwargs): |
506 def wx_evaluator(obj, *args, **kwargs): |
507 tocall,args,kwargs = obj.call |
507 tocall, args, kwargs = obj.call |
508 obj.res = default_evaluator(tocall, *args, **kwargs) |
508 obj.res = default_evaluator(tocall, *args, **kwargs) |
509 wx_eval_lock.release() |
509 wx_eval_lock.release() |
510 |
510 |
511 def evaluator(tocall, *args, **kwargs): |
511 def evaluator(tocall, *args, **kwargs): |
512 global main_thread |
512 global main_thread |
513 if(main_thread == currentThread()): |
513 if(main_thread == currentThread()): |
514 # avoid dead lock if called from the wx mainloop |
514 # avoid dead lock if called from the wx mainloop |
515 return default_evaluator(tocall, *args, **kwargs) |
515 return default_evaluator(tocall, *args, **kwargs) |
516 else: |
516 else: |
517 o=type('',(object,),dict(call=(tocall, args, kwargs), res=None)) |
517 o=type('', (object,), dict(call=(tocall, args, kwargs), res=None)) |
518 wx.CallAfter(wx_evaluator,o) |
518 wx.CallAfter(wx_evaluator, o) |
519 wx_eval_lock.acquire() |
519 wx_eval_lock.acquire() |
520 return o.res |
520 return o.res |
521 |
521 |
522 pyroserver = Server(servicename, given_ip, port, |
522 pyroserver = Server(servicename, given_ip, port, |
523 WorkingDir, argv, autostart, |
523 WorkingDir, argv, autostart, |