runtime/PLCObject.py
changeset 2550 f2af2a655868
parent 2546 f5dae7b85906
child 2582 8f0d6c5fd55f
equal deleted inserted replaced
2530:02d09fc6eb90 2550:f2af2a655868
    26 from threading import Thread, Lock, Semaphore, Event
    26 from threading import Thread, Lock, Semaphore, Event
    27 import ctypes
    27 import ctypes
    28 import os
    28 import os
    29 import sys
    29 import sys
    30 import traceback
    30 import traceback
       
    31 import shutil
    31 from time import time
    32 from time import time
    32 import _ctypes  # pylint: disable=wrong-import-order
    33 import hashlib
       
    34 from tempfile import mkstemp
       
    35 from functools import wraps, partial
    33 from six.moves import xrange
    36 from six.moves import xrange
    34 from past.builtins import execfile
    37 from past.builtins import execfile
    35 import md5
    38 import _ctypes
    36 from tempfile import mkstemp
       
    37 import shutil
       
    38 from functools import wraps, partial
       
    39 
    39 
    40 from runtime.typemapping import TypeTranslator
    40 from runtime.typemapping import TypeTranslator
    41 from runtime.loglevels import LogLevelsDefault, LogLevelsCount
    41 from runtime.loglevels import LogLevelsDefault, LogLevelsCount
    42 from runtime.Stunnel import getPSKID
    42 from runtime.Stunnel import getPSKID
    43 from runtime import PlcStatus
    43 from runtime import PlcStatus
   463             shutil.rmtree(self.tmpdir)
   463             shutil.rmtree(self.tmpdir)
   464         os.mkdir(self.tmpdir)
   464         os.mkdir(self.tmpdir)
   465 
   465 
   466     @RunInMain
   466     @RunInMain
   467     def SeedBlob(self, seed):
   467     def SeedBlob(self, seed):
   468         blob = (mkstemp(dir=self.tmpdir) + (md5.new(),))
   468         blob = (mkstemp(dir=self.tmpdir) + (hashlib.new('md5'),))
   469         _fobj, _path, md5sum = blob
   469         _fobj, _path, md5sum = blob
   470         md5sum.update(seed)
   470         md5sum.update(seed)
   471         newBlobID = md5sum.digest()
   471         newBlobID = md5sum.digest()
   472         self.blobs[newBlobID] = blob
   472         self.blobs[newBlobID] = blob
   473         return newBlobID
   473         return newBlobID
   604         self.TraceLock.release()
   604         self.TraceLock.release()
   605         return Traces
   605         return Traces
   606 
   606 
   607     @RunInMain
   607     @RunInMain
   608     def GetTraceVariables(self, DebugToken):
   608     def GetTraceVariables(self, DebugToken):
   609         if (DebugToken is not None and DebugToken == self.DebugToken):
   609         if DebugToken is not None and DebugToken == self.DebugToken:
   610             return self.PLCStatus, self._TracesSwap()
   610             return self.PLCStatus, self._TracesSwap()
   611         return PlcStatus.Broken, []
   611         return PlcStatus.Broken, []
   612 
   612 
   613     def TraceThreadProc(self):
   613     def TraceThreadProc(self):
   614         """
   614         """