36 import Pyro |
36 import Pyro |
37 import Pyro.core as pyro |
37 import Pyro.core as pyro |
38 |
38 |
39 from runtime import PLCObject, ServicePublisher, MainWorker |
39 from runtime import PLCObject, ServicePublisher, MainWorker |
40 from runtime.xenomai import TryPreloadXenomai |
40 from runtime.xenomai import TryPreloadXenomai |
|
41 from runtime import PlcStatus |
41 import util.paths as paths |
42 import util.paths as paths |
42 |
43 |
43 |
44 |
44 def version(): |
45 def version(): |
45 from version import app_version |
46 from version import app_version |
309 return icon |
310 return icon |
310 |
311 |
311 def OnTaskBarStartPLC(self, evt): |
312 def OnTaskBarStartPLC(self, evt): |
312 if self.pyroserver.plcobj is not None: |
313 if self.pyroserver.plcobj is not None: |
313 plcstatus = self.pyroserver.plcobj.GetPLCstatus()[0] |
314 plcstatus = self.pyroserver.plcobj.GetPLCstatus()[0] |
314 if plcstatus is "Stopped": |
315 if plcstatus is PlcStatus.Stopped: |
315 self.pyroserver.plcobj.StartPLC() |
316 self.pyroserver.plcobj.StartPLC() |
316 else: |
317 else: |
317 print(_("PLC is empty or already started.")) |
318 print(_("PLC is empty or already started.")) |
318 |
319 |
319 def OnTaskBarStopPLC(self, evt): |
320 def OnTaskBarStopPLC(self, evt): |
320 if self.pyroserver.plcobj is not None: |
321 if self.pyroserver.plcobj is not None: |
321 if self.pyroserver.plcobj.GetPLCstatus()[0] == "Started": |
322 if self.pyroserver.plcobj.GetPLCstatus()[0] == PlcStatus.Started: |
322 Thread(target=self.pyroserver.plcobj.StopPLC).start() |
323 Thread(target=self.pyroserver.plcobj.StopPLC).start() |
323 else: |
324 else: |
324 print(_("PLC is not started.")) |
325 print(_("PLC is not started.")) |
325 |
326 |
326 def OnTaskBarChangeInterface(self, evt): |
327 def OnTaskBarChangeInterface(self, evt): |
381 Thread(target=self.pyroserver.Quit).start() |
382 Thread(target=self.pyroserver.Quit).start() |
382 self.RemoveIcon() |
383 self.RemoveIcon() |
383 wx.CallAfter(wx.GetApp().ExitMainLoop) |
384 wx.CallAfter(wx.GetApp().ExitMainLoop) |
384 |
385 |
385 def UpdateIcon(self, plcstatus): |
386 def UpdateIcon(self, plcstatus): |
386 if plcstatus is "Started": |
387 if plcstatus is PlcStatus.Started: |
387 currenticon = self.MakeIcon(starticon) |
388 currenticon = self.MakeIcon(starticon) |
388 elif plcstatus is "Stopped": |
389 elif plcstatus is PlcStatus.Stopped: |
389 currenticon = self.MakeIcon(stopicon) |
390 currenticon = self.MakeIcon(stopicon) |
390 else: |
391 else: |
391 currenticon = self.MakeIcon(defaulticon) |
392 currenticon = self.MakeIcon(defaulticon) |
392 self.SetIcon(currenticon, "Beremiz Service") |
393 self.SetIcon(currenticon, "Beremiz Service") |
393 |
394 |
479 self.servicepublisher = None |
480 self.servicepublisher = None |
480 self.daemon.shutdown(True) |
481 self.daemon.shutdown(True) |
481 |
482 |
482 def AutoLoad(self): |
483 def AutoLoad(self): |
483 self.plcobj.AutoLoad() |
484 self.plcobj.AutoLoad() |
484 if self.plcobj.GetPLCstatus()[0] == "Stopped": |
485 if self.plcobj.GetPLCstatus()[0] == PlcStatus.Stopped: |
485 if autostart: |
486 if autostart: |
486 self.plcobj.StartPLC() |
487 self.plcobj.StartPLC() |
487 self.plcobj.StatusChange() |
488 self.plcobj.StatusChange() |
488 |
489 |
489 |
490 |