71 |
71 |
72 SwapedEndianessTypeTranslator = { |
72 SwapedEndianessTypeTranslator = { |
73 #TODO |
73 #TODO |
74 } |
74 } |
75 |
75 |
|
76 TypeTranslator=SameEndianessTypeTranslator |
|
77 |
76 # Construct debugger natively supported types |
78 # Construct debugger natively supported types |
77 DebugTypesSize = dict([(key,sizeof(t)) for key,(t,p,u) in SameEndianessTypeTranslator.iteritems() if t is not None]) |
79 DebugTypesSize = dict([(key,sizeof(t)) for key,(t,p,u) in SameEndianessTypeTranslator.iteritems() if t is not None]) |
|
80 |
|
81 def UnpackDebugBuffer(buff, size, indexes): |
|
82 res = [] |
|
83 offset = 0 |
|
84 for idx, iectype, forced in indexes: |
|
85 cursor = c_void_p(buff.value + offset) |
|
86 c_type,unpack_func, pack_func = \ |
|
87 TypeTranslator.get(iectype, |
|
88 (None,None,None)) |
|
89 if c_type is not None and offset < size: |
|
90 res.append(unpack_func( |
|
91 cast(cursor, |
|
92 POINTER(c_type)).contents)) |
|
93 offset += sizeof(c_type) if iectype != "STRING" else len(res[-1])+1 |
|
94 else: |
|
95 #if c_type is None: |
|
96 # PLCprint("Debug error - " + iectype + |
|
97 # " not supported !") |
|
98 #if offset >= size: |
|
99 # PLCprint("Debug error - buffer too small ! %d != %d"%(offset, size)) |
|
100 break |
|
101 if offset and offset == size: |
|
102 return res |
|
103 return None |
|
104 |
|
105 |
78 |
106 |
79 LogLevels = ["CRITICAL","WARNING","INFO","DEBUG"] |
107 LogLevels = ["CRITICAL","WARNING","INFO","DEBUG"] |
80 LogLevelsCount = len(LogLevels) |
108 LogLevelsCount = len(LogLevels) |
81 LogLevelsDict = dict(zip(LogLevels,range(LogLevelsCount))) |
109 LogLevelsDict = dict(zip(LogLevels,range(LogLevelsCount))) |
82 LogLevelsDefault = LogLevelsDict["DEBUG"] |
110 LogLevelsDefault = LogLevelsDict["DEBUG"] |