diff --git a/cereal b/cereal index a36a91ed09..61cee7c2a7 160000 --- a/cereal +++ b/cereal @@ -1 +1 @@ -Subproject commit a36a91ed095e04d191250821f42ccc11f58759ac +Subproject commit 61cee7c2a745685c2e140998d78ad11edca8a9e1 diff --git a/selfdrive/car/fw_versions.py b/selfdrive/car/fw_versions.py index 4c823f09ee..272928248c 100755 --- a/selfdrive/car/fw_versions.py +++ b/selfdrive/car/fw_versions.py @@ -333,18 +333,20 @@ def get_fw_versions(logcan, sendcan, extra=None, timeout=0.1, debug=False, progr if addrs: query = IsoTpParallelQuery(sendcan, logcan, r.bus, addrs, r.request, r.response, r.rx_offset, debug=debug) t = 2 * timeout if i == 0 else timeout - fw_versions.update(query.get_data(t)) + fw_versions.update({addr: (version, r.request, r.rx_offset) for addr, version in query.get_data(t).items()}) except Exception: cloudlog.warning(f"FW query exception: {traceback.format_exc()}") # Build capnp list to put into CarParams car_fw = [] - for addr, version in fw_versions.items(): + for addr, (version, request, rx_offset) in fw_versions.items(): f = car.CarParams.CarFw.new_message() f.ecu = ecu_types[addr] f.fwVersion = version f.address = addr[0] + f.responseAddress = addr[0] + rx_offset + f.request = request if addr[1] is not None: f.subAddress = addr[1] diff --git a/selfdrive/car/isotp_parallel_query.py b/selfdrive/car/isotp_parallel_query.py index 1209a8f1a1..becd66ba1f 100644 --- a/selfdrive/car/isotp_parallel_query.py +++ b/selfdrive/car/isotp_parallel_query.py @@ -132,7 +132,7 @@ class IsoTpParallelQuery: request_done[tx_addr] = True else: request_done[tx_addr] = True - cloudlog.warning(f"iso-tp query bad response: 0x{dat.hex()}") + cloudlog.warning(f"iso-tp query bad response: {tx_addr} - 0x{dat.hex()}") cur_time = time.monotonic() if cur_time - last_response_time > timeout: