equal
deleted
inserted
replaced
409 self.servicename = servicename |
409 self.servicename = servicename |
410 self.ip_addr = ip_addr |
410 self.ip_addr = ip_addr |
411 self.port = port |
411 self.port = port |
412 self.workdir = workdir |
412 self.workdir = workdir |
413 self.argv = argv |
413 self.argv = argv |
414 self.plcobj = None |
|
415 self.servicepublisher = None |
414 self.servicepublisher = None |
416 self.statuschange = statuschange |
415 self.statuschange = statuschange |
417 self.evaluator = evaluator |
416 self.evaluator = evaluator |
418 self.pyruntimevars = pyruntimevars |
417 self.pyruntimevars = pyruntimevars |
|
418 self.plcobj = PLCObject(self) |
419 |
419 |
420 def _to_be_published(self): |
420 def _to_be_published(self): |
421 return self.servicename is not None and \ |
421 return self.servicename is not None and \ |
422 self.ip_addr is not None and \ |
422 self.ip_addr is not None and \ |
423 self.ip_addr != "localhost" and \ |
423 self.ip_addr != "localhost" and \ |
462 self.continueloop = False |
462 self.continueloop = False |
463 if self.plcobj is not None: |
463 if self.plcobj is not None: |
464 self.plcobj.StopPLC() |
464 self.plcobj.StopPLC() |
465 self.plcobj.UnLoadPLC() |
465 self.plcobj.UnLoadPLC() |
466 self._stop() |
466 self._stop() |
467 |
|
468 def RegisterPLCObject(self, plcobj): |
|
469 self.plcobj = plcobj |
|
470 |
467 |
471 def _stop(self): |
468 def _stop(self): |
472 if self.plcobj is not None: |
469 if self.plcobj is not None: |
473 self.plcobj.StopPLC() |
470 self.plcobj.StopPLC() |
474 if self.servicepublisher is not None: |
471 if self.servicepublisher is not None: |
475 self.servicepublisher.UnRegisterService() |
472 self.servicepublisher.UnRegisterService() |
476 self.servicepublisher = None |
473 self.servicepublisher = None |
477 self.daemon.shutdown(True) |
474 self.daemon.shutdown(True) |
|
475 |
|
476 def AutoLoad(self): |
|
477 self.plcobj.AutoLoad() |
|
478 if self.plcobj.GetPLCstatus()[0] == "Stopped": |
|
479 if autostart: |
|
480 self.plcobj.StartPLC() |
|
481 self.plcobj.StatusChange() |
|
482 |
478 |
483 |
479 |
484 |
480 if enabletwisted: |
485 if enabletwisted: |
481 import warnings |
486 import warnings |
482 with warnings.catch_warnings(): |
487 with warnings.catch_warnings(): |
624 else: |
629 else: |
625 raise Exception(_("WAMP config is missing.")) |
630 raise Exception(_("WAMP config is missing.")) |
626 except Exception: |
631 except Exception: |
627 LogMessageAndException(_("WAMP client startup failed. ")) |
632 LogMessageAndException(_("WAMP client startup failed. ")) |
628 |
633 |
629 plcobj = PLCObject(pyroserver) |
|
630 |
|
631 plcobj.AutoLoad() |
|
632 if plcobj.GetPLCstatus()[0] == "Stopped": |
|
633 if autostart: |
|
634 plcobj.StartPLC() |
|
635 plcobj.StatusChange() |
|
636 |
|
637 pyro_thread = Thread(target=pyroserver.PyroLoop) |
634 pyro_thread = Thread(target=pyroserver.PyroLoop) |
638 pyro_thread.start() |
635 pyro_thread.start() |
639 |
636 |
640 pyroserver.PrintServerInfo() |
637 pyroserver.PrintServerInfo() |
641 |
638 |
651 |
648 |
652 ui_thread = Thread(target = ui_thread_target) |
649 ui_thread = Thread(target = ui_thread_target) |
653 ui_thread.start() |
650 ui_thread.start() |
654 |
651 |
655 try: |
652 try: |
656 MainWorker.runloop() |
653 MainWorker.runloop(pyroserver.AutoLoad) |
657 except KeyboardInterrupt: |
654 except KeyboardInterrupt: |
658 pass |
655 pass |
659 |
656 |
660 pyroserver.Quit() |
657 pyroserver.Quit() |
661 sys.exit(0) |
658 sys.exit(0) |