45 |
45 |
46 SDOAnswered() |
46 SDOAnswered() |
47 if res != 0 : |
47 if res != 0 : |
48 PLCObject.LogMessage( |
48 PLCObject.LogMessage( |
49 LogLevelsDict["WARNING"], |
49 LogLevelsDict["WARNING"], |
50 "%s : %s" % (command,output)) |
50 "%s : %s" % (command, output)) |
51 |
51 |
52 |
52 |
53 def EthercatSDOUpload(pos, index, subindex, var_type): |
53 def EthercatSDOUpload(pos, index, subindex, var_type): |
54 global SDOThread |
54 global SDOThread |
55 SDOThread = Thread(target=SDOThreadProc, args=["upload", pos, var_type, index, subindex]) |
55 SDOThread = Thread(target=SDOThreadProc, args=["upload", pos, var_type, index, subindex]) |
83 klog.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_int] |
83 klog.argtypes = [ctypes.c_int, ctypes.c_char_p, ctypes.c_int] |
84 klog.restype = ctypes.c_int |
84 klog.restype = ctypes.c_int |
85 s=ctypes.create_string_buffer(4*1024) |
85 s=ctypes.create_string_buffer(4*1024) |
86 last = None |
86 last = None |
87 while not StopKMSGThread: |
87 while not StopKMSGThread: |
88 l = klog(3,s,len(s)-1) |
88 l = klog(3, s, len(s)-1) |
89 log = s.value[:l-1] |
89 log = s.value[:l-1] |
90 if last : |
90 if last : |
91 log = log.rpartition(last)[2] |
91 log = log.rpartition(last)[2] |
92 if log : |
92 if log : |
93 last = log.rpartition('\n')[2] |
93 last = log.rpartition('\n')[2] |
94 for lvl,msg in re.findall( |
94 for lvl, msg in re.findall( |
95 r'<(\d)>\[\s*\d*\.\d*\]\s*(EtherCAT\s*.*)$', |
95 r'<(\d)>\[\s*\d*\.\d*\]\s*(EtherCAT\s*.*)$', |
96 log, re.MULTILINE): |
96 log, re.MULTILINE): |
97 PLCObject.LogMessage( |
97 PLCObject.LogMessage( |
98 LogLevelsDict[{ |
98 LogLevelsDict[{ |
99 "4":"WARNING", |
99 "4": "WARNING", |
100 "3":"CRITICAL"}.get(lvl,"DEBUG")], |
100 "3": "CRITICAL"}.get(lvl, "DEBUG")], |
101 msg) |
101 msg) |
102 time.sleep(0.5) |
102 time.sleep(0.5) |
103 |
103 |
104 |
104 |
105 def _runtime_etherlab_init(): |
105 def _runtime_etherlab_init(): |