| | |
| | | # reference: https://github.com/ebroecker/canmatrix |
| | | |
| | | # this script translates dbc-files to list data |
| | | from pickle import FALSE |
| | | import sys |
| | | import os |
| | | import logging |
| | |
| | | float_factory = defaultFloatFactory |
| | | startBit = attr.ib(type=int, default=0) |
| | | size = attr.ib(type=int, default=0) |
| | | is_little_endian = attr.ib(type=bool, default=True) |
| | | is_little_endian = attr.ib(type=bool, default=FALSE) |
| | | is_signed = attr.ib(type=bool, default=True) |
| | | offset = attr.ib(converter=float_factory, default=float_factory(0.0)) |
| | | factor = attr.ib(converter=float_factory, default=float_factory(1.0)) |
| | |
| | | unit=temp.group(10), |
| | | receiver=receiver, |
| | | **extras) |
| | | print(temp.group(4), temp.group(2)) |
| | | if not tempSig.is_little_endian: |
| | | # startbit of motorola coded signals are MSB in dbc |
| | | tempSig.setStartbit(int(temp.group(2)), |
| | |
| | | dataList = data.strip().split(' ') |
| | | _startbit = signal.startBit |
| | | _bitsize = signal.size |
| | | _little = signal.is_little_endian # (1: Intel, 0: Motorola) |
| | | _little = 0 #signal.is_little_endian # (1: Intel, 0: Motorola) |
| | | _byteSize = math.ceil((signal.size + _startbit % 8) / 8) |
| | | _startByte = math.floor(_startbit / 8) |
| | | phyvalue = 0 |
| | |
| | | |
| | | if __name__ == '__main__': |
| | | testDbc = DBC("DBC/DFLZM.dbc") |
| | | abc = testDbc.analyzer(msgid=1056, data='40 01 C8 00 FF 00 00 00') |
| | | abc = testDbc.analyzer(msgid=1056, data='00 0A 30 C0 00 00 00 00') |
| | | print(abc) |
| | | print(abc[5]["name"]) |
| | | print(abc[6]["name"]) |
| | | print(abc[4]["name"]) |
| | | print(abc[5]["name"], abc[5]["value"]['raw']) |
| | | print(abc[7]["name"], abc[7]["value"]['raw']) |
| | | print(abc[4]["name"], abc[4]["value"]['raw']) |