|
|
|
@ -14,6 +14,9 @@ EcuAddrSubAddr = Tuple[int, int, Optional[int]] |
|
|
|
|
LiveFwVersions = Dict[AddrType, Set[bytes]] |
|
|
|
|
OfflineFwVersions = Dict[str, Dict[EcuAddrSubAddr, List[bytes]]] |
|
|
|
|
|
|
|
|
|
STANDARD_VIN_ADDRS = [0x7e0, 0x7e2, 0x18da10f1, 0x18da0ef1] # engine, VMCU, 29-bit engine, PGM-FI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def p16(val): |
|
|
|
|
return struct.pack("!H", val) |
|
|
|
|
|
|
|
|
@ -29,7 +32,7 @@ class StdQueries: |
|
|
|
|
DEFAULT_DIAGNOSTIC_REQUEST = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL, |
|
|
|
|
uds.SESSION_TYPE.DEFAULT]) |
|
|
|
|
DEFAULT_DIAGNOSTIC_RESPONSE = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL + 0x40, |
|
|
|
|
uds.SESSION_TYPE.DEFAULT, 0x0, 0x32, 0x1, 0xf4]) |
|
|
|
|
uds.SESSION_TYPE.DEFAULT, 0x0, 0x32, 0x1, 0xf4]) |
|
|
|
|
|
|
|
|
|
EXTENDED_DIAGNOSTIC_REQUEST = bytes([uds.SERVICE_TYPE.DIAGNOSTIC_SESSION_CONTROL, |
|
|
|
|
uds.SESSION_TYPE.EXTENDED_DIAGNOSTIC]) |
|
|
|
@ -37,14 +40,14 @@ class StdQueries: |
|
|
|
|
uds.SESSION_TYPE.EXTENDED_DIAGNOSTIC, 0x0, 0x32, 0x1, 0xf4]) |
|
|
|
|
|
|
|
|
|
MANUFACTURER_SOFTWARE_VERSION_REQUEST = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + \ |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER) |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER) |
|
|
|
|
MANUFACTURER_SOFTWARE_VERSION_RESPONSE = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + \ |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER) |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.VEHICLE_MANUFACTURER_ECU_SOFTWARE_NUMBER) |
|
|
|
|
|
|
|
|
|
UDS_VERSION_REQUEST = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + \ |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) |
|
|
|
|
UDS_VERSION_RESPONSE = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + \ |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) |
|
|
|
|
p16(uds.DATA_IDENTIFIER_TYPE.APPLICATION_SOFTWARE_IDENTIFICATION) |
|
|
|
|
|
|
|
|
|
OBD_VERSION_REQUEST = b'\x09\x04' |
|
|
|
|
OBD_VERSION_RESPONSE = b'\x49\x04' |
|
|
|
@ -56,6 +59,9 @@ class StdQueries: |
|
|
|
|
UDS_VIN_REQUEST = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER]) + p16(uds.DATA_IDENTIFIER_TYPE.VIN) |
|
|
|
|
UDS_VIN_RESPONSE = bytes([uds.SERVICE_TYPE.READ_DATA_BY_IDENTIFIER + 0x40]) + p16(uds.DATA_IDENTIFIER_TYPE.VIN) |
|
|
|
|
|
|
|
|
|
GM_VIN_REQUEST = b'\x1a\x90' |
|
|
|
|
GM_VIN_RESPONSE = b'\x5a' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass |
|
|
|
|
class Request: |
|
|
|
|