equal
deleted
inserted
replaced
28 import os |
28 import os |
29 import sys |
29 import sys |
30 import traceback |
30 import traceback |
31 from time import time |
31 from time import time |
32 import _ctypes # pylint: disable=wrong-import-order |
32 import _ctypes # pylint: disable=wrong-import-order |
|
33 from past.builtins import execfile |
|
34 import Pyro.core as pyro |
|
35 import six |
|
36 from six.moves import _thread, xrange |
33 |
37 |
34 from runtime.typemapping import TypeTranslator |
38 from runtime.typemapping import TypeTranslator |
35 from runtime.loglevels import LogLevelsDefault, LogLevelsCount |
39 from runtime.loglevels import LogLevelsDefault, LogLevelsCount |
36 from runtime.Stunnel import getPSKID |
40 from runtime.Stunnel import getPSKID |
37 from runtime import PlcStatus |
41 from runtime import PlcStatus |
93 try: |
97 try: |
94 self.CurrentPLCFilename = open( |
98 self.CurrentPLCFilename = open( |
95 self._GetMD5FileName(), |
99 self._GetMD5FileName(), |
96 "r").read().strip() + lib_ext |
100 "r").read().strip() + lib_ext |
97 if self.LoadPLC(): |
101 if self.LoadPLC(): |
98 self.PLCStatus = "Stopped" |
102 self.PLCStatus = PlcStatus.Stopped |
99 if autostart: |
103 if autostart: |
100 self.StartPLC() |
104 self.StartPLC() |
101 return |
105 return |
102 except Exception: |
106 except Exception: |
103 self.PLCStatus = "Empty" |
107 self.PLCStatus = PlcStatus.Empty |
104 self.CurrentPLCFilename = None |
108 self.CurrentPLCFilename = None |
105 |
109 |
106 self.StatusChange() |
110 self.StatusChange() |
107 |
111 |
108 def StatusChange(self): |
112 def StatusChange(self): |
464 self.PLCStatus = PlcStatus.Empty |
468 self.PLCStatus = PlcStatus.Empty |
465 |
469 |
466 try: |
470 try: |
467 if replace_PLC_shared_object: |
471 if replace_PLC_shared_object: |
468 os.remove(old_PLC_filename) |
472 os.remove(old_PLC_filename) |
469 for filename in file(extra_files_log, "r").readlines() + [extra_files_log]: |
473 for filename in open(extra_files_log, "rt").readlines() + [extra_files_log]: |
470 try: |
474 try: |
471 os.remove(os.path.join(self.workingdir, filename.strip())) |
475 os.remove(os.path.join(self.workingdir, filename.strip())) |
472 except Exception: |
476 except Exception: |
473 pass |
477 pass |
474 except Exception: |
478 except Exception: |
481 |
485 |
482 # Store new PLC filename based on md5 key |
486 # Store new PLC filename based on md5 key |
483 open(self._GetMD5FileName(), "w").write(md5sum) |
487 open(self._GetMD5FileName(), "w").write(md5sum) |
484 |
488 |
485 # Then write the files |
489 # Then write the files |
486 log = file(extra_files_log, "w") |
490 log = open(extra_files_log, "w") |
487 for fname, fdata in extrafiles: |
491 for fname, fdata in extrafiles: |
488 fpath = os.path.join(self.workingdir, fname) |
492 fpath = os.path.join(self.workingdir, fname) |
489 open(fpath, "wb").write(fdata) |
493 open(fpath, "wb").write(fdata) |
490 log.write(fname+'\n') |
494 log.write(fname+'\n') |
491 |
495 |