tao_z
2022-05-29 ada7b40da88974c6f4596c7c9d1317eb19095a0e
Shifter.py
@@ -4,6 +4,7 @@
from udsoncan import DidCodec
import configparser
from dbc import *
class AsciiCodec(DidCodec):
@@ -138,21 +139,36 @@
        self.UnlockButton = 0
        self.Voltage = 0
        self.canid = ShifterCANID()
        self.did_config = {
            0x2100: PartNumberCodec(1),
            0x2101: PartNumberCodec(1),
            0x2103: AsciiCodec(8),
            0x2104: AsciiCodec(4),
            0x2105: AsciiCodec(16),
            0x2106: PartNumberCodec(1),
            0xF187: AsciiCodec(16),
            0x2108: AsciiCodec(18),
            0xF18A: AsciiCodec(10),
            0x210B: BCDCodec(4),
            0xF18C: AsciiCodec(14),
            0xF190: AsciiCodec(17),
            0xF1B1: AsciiCodec(9),
            0xF1B2: AsciiCodec(16),
            0xF193: AsciiCodec(26),
            0xF195: AsciiCodec(28),
            0x2110: AsciiCodec(8),
            0x2111: AsciiCodec(16),
            0x2112: BCDCodec(4),
            0x2113: BCDCodec(4),
            0x2116: PartNumberCodec(2),
            0x2118: PartNumberCodec(1),
            0x2119: PartNumberCodec(1),
            0x211A: PartNumberCodec(1),
            0x211B: PartNumberCodec(1),
            0x211c: PartNumberCodec(2),
            0xF197: AsciiCodec(8),
            0xF1D0: PartNumberCodec(4),
            0xF1D1: PartNumberVersionCodec(2),
            0xF1D2: PartNumberCodec(4),
            0xF1D3: PartNumberVersionCodec(2),
            0xF0DF: PartNumberVersionCodec(1),
            0xF187: AsciiCodec(21),
            0xF195: AsciiCodec(16),
            0xF198: BCDCodec(8),
            0xF199: BCDCodec(4),
            0xF15a: AsciiCodec(10),
            0xF15B: AsciiCodec(10),
        }
        try:
            config = configparser.ConfigParser()
@@ -166,3 +182,13 @@
            self.canid.phy_rxId = 0x742
            self.canid.fun_rxId = 0x7df
            self.canid.normalid = 0x420
        self.dbc = DBC("DBC/SX7H.dbc")
    def FramUnpack(self, id=0x420, frame=[]):
        data = []
        data.append(' '.join(['0x' +
                              '{:0<2x}'.format(a).upper() for a in list(frame)]))
        unpackframe = self.dbc.analyzer(msgid=0x420, data=data)
        self.position = ShifterPosition(unpackframe[4]['value']['raw'])
        self.Pbutton = unpackframe[5]['value']['raw']
        self.UnlockButton = unpackframe[6]['value']['raw']