skysky97/Candb

When parsing a dbc file, all signal properties are str

tpimh opened this issue · 0 comments

tpimh commented

Hi! Thanks for your library, I'm now using it to parse a DBC file and discovered that almost all the numeric values are all parsed as strings.

The values for start_bit and sig_len are parsed correctly as integers, but factor, offset, min and max are all str type. I think the reason for this is that these values can be either floats or integers. One way to dynamically select between the two would be to check if the value has a dot:

def int_or_float(n):
    return float(n) if '.' in n else int(n)
sig.factor = int_or_float(line_split[5])
sig.offset = int_or_float(line_split[6])
sig.min = int_or_float(line_split[7])
sig.max = int_or_float(line_split[8])