runtime/PLCObject.py
changeset 1457 ff7cfce737ca
parent 1447 d6b878525ceb
child 1463 de311ffe3961
equal deleted inserted replaced
1456:e723c1dd6faa 1457:ff7cfce737ca
   135     def LoadPLC(self):
   135     def LoadPLC(self):
   136         """
   136         """
   137         Load PLC library
   137         Load PLC library
   138         Declare all functions, arguments and return values
   138         Declare all functions, arguments and return values
   139         """
   139         """
       
   140         md5 = open(self._GetMD5FileName(), "r").read()
   140         try:
   141         try:
   141             self._PLClibraryHandle = dlopen(self._GetLibFileName())
   142             self._PLClibraryHandle = dlopen(self._GetLibFileName())
   142             self.PLClibraryHandle = ctypes.CDLL(self.CurrentPLCFilename, handle=self._PLClibraryHandle)
   143             self.PLClibraryHandle = ctypes.CDLL(self.CurrentPLCFilename, handle=self._PLClibraryHandle)
       
   144 
       
   145             self.PLCID = ctypes.c_char_p.in_dll(self.PLClibraryHandle, "PLCID")
       
   146             if len(md5) == 32 : 
       
   147                 self.PLCID.value = md5 
   143 
   148 
   144             self._startPLC = self.PLClibraryHandle.startPLC
   149             self._startPLC = self.PLClibraryHandle.startPLC
   145             self._startPLC.restype = ctypes.c_int
   150             self._startPLC.restype = ctypes.c_int
   146             self._startPLC.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_char_p)]
   151             self._startPLC.argtypes = [ctypes.c_int, ctypes.POINTER(ctypes.c_char_p)]
   147 
   152