equal
deleted
inserted
replaced
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 |