targets/typemapping.py
changeset 1075 8078c01ae464
parent 972 659198075ce4
child 1433 4a45f6642523
equal deleted inserted replaced
1074:92a009dc5826 1075:8078c01ae464
    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"]