From f19bfe36a8deedeaf30b3554cac499a83e4e7902 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Wed, 12 Jun 2024 19:36:26 -0700 Subject: [PATCH] Improve ECU address finder script (#32734) * put pandad in good state * obd option * fix * it's rx old-commit-hash: 4539c973491bedabb4cd6cf8791d090987c56629 --- selfdrive/car/ecu_addrs.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/selfdrive/car/ecu_addrs.py b/selfdrive/car/ecu_addrs.py index e7a9fbcf2c..756cd7f963 100755 --- a/selfdrive/car/ecu_addrs.py +++ b/selfdrive/car/ecu_addrs.py @@ -71,25 +71,35 @@ def get_ecu_addrs(logcan: messaging.SubSocket, sendcan: messaging.PubSocket, que if __name__ == "__main__": import argparse + from openpilot.common.params import Params + from openpilot.selfdrive.car.fw_versions import set_obd_multiplexing parser = argparse.ArgumentParser(description='Get addresses of all ECUs') parser.add_argument('--debug', action='store_true') parser.add_argument('--bus', type=int, default=1) + parser.add_argument('--no-obd', action='store_true') parser.add_argument('--timeout', type=float, default=1.0) args = parser.parse_args() logcan = messaging.sub_sock('can') sendcan = messaging.pub_sock('sendcan') - time.sleep(1.0) + # Set up params for pandad + params = Params() + params.remove("FirmwareQueryDone") + params.put_bool("IsOnroad", False) + time.sleep(0.2) # thread is 10 Hz + params.put_bool("IsOnroad", True) + + set_obd_multiplexing(params, not args.no_obd) print("Getting ECU addresses ...") ecu_addrs = get_all_ecu_addrs(logcan, sendcan, args.bus, args.timeout, debug=args.debug) print() - print("Found ECUs on addresses:") + print("Found ECUs on rx addresses:") for addr, subaddr, _ in ecu_addrs: - msg = f" 0x{hex(addr)}" + msg = f" {hex(addr)}" if subaddr is not None: msg += f" (sub-address: {hex(subaddr)})" print(msg)