| | |
| | | |
| | | from ShifterDefine import * |
| | | import struct |
| | | from udsoncan import DidCodec |
| | |
| | | |
| | | def __init__(self, string_len=None): |
| | | if string_len is None: |
| | | raise ValueError( |
| | | "You must provide a length to the AsciiCodec") |
| | | raise ValueError("You must provide a length to the AsciiCodec") |
| | | self.string_len = string_len |
| | | |
| | | def encode(self, string_ascii): |
| | |
| | | |
| | | |
| | | class PartNumberCodec(DidCodec): |
| | | |
| | | def __init__(self, byte_len=None): |
| | | if byte_len is None: |
| | | raise ValueError( |
| | |
| | | |
| | | |
| | | class PartNumberVersionCodec(DidCodec): |
| | | |
| | | def __init__(self, byte_len=None): |
| | | if byte_len is None: |
| | | raise ValueError( |
| | |
| | | return self.byte_len |
| | | |
| | | |
| | | UnlockButton_dic = {"Unlock Button No Request": 0, "Unlock Button Request": 1} |
| | | |
| | | |
| | | class ShifterClass(): |
| | | |
| | | def __init__(self): |
| | | self.position = ShifterPosition(0) |
| | | self.Pbutton = 0 |
| | |
| | | 0x211B: PartNumberCodec(1), |
| | | 0x211c: PartNumberCodec(2), |
| | | 0xF197: AsciiCodec(8), |
| | | |
| | | 0xF15a: AsciiCodec(10), |
| | | 0xF15B: AsciiCodec(10), |
| | | } |
| | |
| | | self.canid.phy_rxId = 0x742 |
| | | self.canid.fun_rxId = 0x7df |
| | | self.canid.normalid = 0x420 |
| | | self.dbc = DBC("DBC/SX7H.dbc") |
| | | self.dbc = DBC("DBC/DFLZM.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'] |
| | | data = ' '.join(['{:0<2x}'.format(a).upper() for a in list(frame)]) |
| | | unpackframe = self.dbc.analyzer(msgid=0x420, data=str(data)) |
| | | # print(unpackframe[5]['value']['raw']) |
| | | self.Pbutton = unpackframe[5]['value']['phy'] |
| | | # print(unpackframe[6]['value']['raw']) |
| | | self.UnlockButton = unpackframe[4]['value']['phy'] |
| | | # print(unpackframe[4]['value']['raw']) |
| | | self.position = unpackframe[7]['value']['phy'] |