| | |
| | | from udsoncan import DidCodec |
| | | |
| | | import configparser |
| | | from dbc import * |
| | | |
| | | |
| | | class AsciiCodec(DidCodec): |
| | |
| | | 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() |
| | |
| | | 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'] |