tao_z
2022-06-18 80cd2027b36af5866a7a82005afc367859e73b47
dbc.py
@@ -1,6 +1,7 @@
# reference: https://github.com/ebroecker/canmatrix
# this script translates dbc-files to list data
from pickle import FALSE
import sys
import os
import logging
@@ -150,7 +151,7 @@
    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))
@@ -396,6 +397,7 @@
                                         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)),
@@ -583,7 +585,7 @@
        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
@@ -632,8 +634,8 @@
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'])