|
|
@ -26,8 +26,14 @@ def get_vin(logcan, sendcan, buses, timeout=0.1, retry=3, debug=False): |
|
|
|
if bus not in valid_buses: |
|
|
|
if bus not in valid_buses: |
|
|
|
continue |
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# When querying functional addresses, ideally we respond to everything that sends a first frame to avoid leaving the |
|
|
|
|
|
|
|
# ECU in a temporary bad state. Note that we may not cover all ECUs and response offsets. TODO: query physical addrs |
|
|
|
|
|
|
|
tx_addrs = vin_addrs |
|
|
|
|
|
|
|
if functional_addrs is not None: |
|
|
|
|
|
|
|
tx_addrs = [a for a in range(0x700, 0x800) if a != 0x7DF] + list(range(0x18DA00F1, 0x18DB00F1, 0x100)) |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
try: |
|
|
|
query = IsoTpParallelQuery(sendcan, logcan, bus, vin_addrs, [request, ], [response, ], response_offset=rx_offset, |
|
|
|
query = IsoTpParallelQuery(sendcan, logcan, bus, tx_addrs, [request, ], [response, ], response_offset=rx_offset, |
|
|
|
functional_addrs=functional_addrs, debug=debug) |
|
|
|
functional_addrs=functional_addrs, debug=debug) |
|
|
|
results = query.get_data(timeout) |
|
|
|
results = query.get_data(timeout) |
|
|
|
|
|
|
|
|
|
|
|