targets/typemapping.py
changeset 595 6348c0110e0f
parent 594 120bc22302a1
child 917 401e44bae7c0
equal deleted inserted replaced
594:120bc22302a1 595:6348c0110e0f
    35     """
    35     """
    36     _fields_ = [("s", c_long), #tv_sec
    36     _fields_ = [("s", c_long), #tv_sec
    37                 ("ns", c_long)] #tv_nsec
    37                 ("ns", c_long)] #tv_nsec
    38 
    38 
    39 def _t(t, u=lambda x:x.value, p=lambda t,x:t(x)): return  (t, u, p)
    39 def _t(t, u=lambda x:x.value, p=lambda t,x:t(x)): return  (t, u, p)
       
    40 def _ttime(): return (IEC_TIME, 
       
    41                       lambda x:td(0, x.s, x.ns/1000), 
       
    42                       lambda t,x:t(x.days * 24 * 3600 + x.seconds, x.microseconds*1000))
    40 
    43 
    41 SameEndianessTypeTranslator = {
    44 SameEndianessTypeTranslator = {
    42     "BOOL" :       _t(c_uint8,  lambda x:x.value!=0),
    45     "BOOL" :       _t(c_uint8,  lambda x:x.value!=0),
    43     "STEP" :       _t(c_uint8),
    46     "STEP" :       _t(c_uint8),
    44     "TRANSITION" : _t(c_uint8),
    47     "TRANSITION" : _t(c_uint8),
    45     "ACTION" :     _t(c_uint8),
    48     "ACTION" :     _t(c_uint8),
    46     "SINT" :       _t(c_int8),
    49     "SINT" :       _t(c_int8),
    47     "USINT" :      _t(c_uint8),
    50     "USINT" :      _t(c_uint8),
    48     "BYTE" :       _t(c_uint8),
    51     "BYTE" :       _t(c_uint8),
    49     "STRING" :     _t(IEC_STRING, 
    52     "STRING" :     (IEC_STRING, 
    50                       lambda x:x.body[:x.len], 
    53                       lambda x:x.body[:x.len], 
    51                       lambda t,x:t(len(x),x)),
    54                       lambda t,x:t(len(x),x)),
    52     "INT" :        _t(c_int16),
    55     "INT" :        _t(c_int16),
    53     "UINT" :       _t(c_uint16),
    56     "UINT" :       _t(c_uint16),
    54     "WORD" :       _t(c_uint16),
    57     "WORD" :       _t(c_uint16),
    58     "LINT" :       _t(c_int64),
    61     "LINT" :       _t(c_int64),
    59     "ULINT" :      _t(c_uint64),
    62     "ULINT" :      _t(c_uint64),
    60     "LWORD" :      _t(c_uint64),
    63     "LWORD" :      _t(c_uint64),
    61     "REAL" :       _t(c_float),
    64     "REAL" :       _t(c_float),
    62     "LREAL" :      _t(c_double),
    65     "LREAL" :      _t(c_double),
    63     "TIME" :       _t(IEC_TIME, 
    66     "TIME" :       _ttime(),
    64                       lambda x:td(0, x.s, x.ns/1000), 
    67     "TOD" :        _ttime(),
    65                       lambda t,x:t(x.days * 24 * 3600 + x.seconds, x.microseconds*1000)),
    68     "DATE" :       _ttime(),
       
    69     "DT" :         _ttime(),
    66     } 
    70     } 
    67 
    71 
    68 SwapedEndianessTypeTranslator = {
    72 SwapedEndianessTypeTranslator = {
    69     #TODO
    73     #TODO
    70     } 
    74     }