juggle: use DBC dict generator (#34772)

* juggle: support tesla DBC

* better

* fix

* sort
pull/34773/head
Shane Smiskol 2 months ago committed by GitHub
parent fe4585ee88
commit bc422a0738
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 6
      tools/cabana/dbc/generate_dbc_json.py
  2. 8
      tools/plotjuggler/juggle.py

@ -7,7 +7,7 @@ from opendbc.car.fingerprints import MIGRATION
from opendbc.car.values import PLATFORMS from opendbc.car.values import PLATFORMS
def generate_dbc_json() -> str: def generate_dbc_dict() -> dict[str, str]:
dbc_map = {} dbc_map = {}
for platform in PLATFORMS.values(): for platform in PLATFORMS.values():
if platform != "MOCK": if platform != "MOCK":
@ -24,7 +24,7 @@ def generate_dbc_json() -> str:
if MIGRATION[m] in dbc_map: if MIGRATION[m] in dbc_map:
dbc_map[m] = dbc_map[MIGRATION[m]] dbc_map[m] = dbc_map[MIGRATION[m]]
return json.dumps(dict(sorted(dbc_map.items())), indent=2) return dbc_map
if __name__ == "__main__": if __name__ == "__main__":
@ -35,5 +35,5 @@ if __name__ == "__main__":
args = parser.parse_args() args = parser.parse_args()
with open(args.out, 'w') as f: with open(args.out, 'w') as f:
f.write(generate_dbc_json()) f.write(json.dumps(dict(sorted(generate_dbc_dict().items())), indent=2))
print(f"Generated and written to {args.out}") print(f"Generated and written to {args.out}")

@ -13,6 +13,7 @@ from functools import partial
from opendbc.car.fingerprints import MIGRATION from opendbc.car.fingerprints import MIGRATION
from openpilot.common.basedir import BASEDIR from openpilot.common.basedir import BASEDIR
from openpilot.common.swaglog import cloudlog from openpilot.common.swaglog import cloudlog
from openpilot.tools.cabana.dbc.generate_dbc_json import generate_dbc_dict
from openpilot.tools.lib.logreader import LogReader, ReadMode, save_log from openpilot.tools.lib.logreader import LogReader, ReadMode, save_log
from openpilot.selfdrive.test.process_replay.migration import migrate_all from openpilot.selfdrive.test.process_replay.migration import migrate_all
@ -90,11 +91,10 @@ def juggle_route(route_or_segment_name, can, layout, dbc, should_migrate):
if dbc is None: if dbc is None:
try: try:
CP = lr.first('carParams') CP = lr.first('carParams')
platform = CP.carFingerprint platform = MIGRATION.get(CP.carFingerprint, CP.carFingerprint)
DBC = __import__(f"opendbc.car.{CP.brand}.values", fromlist=['DBC']).DBC dbc = generate_dbc_dict()[platform]
dbc = DBC[MIGRATION.get(CP.carFingerprint, CP.carFingerprint)]['pt']
except Exception: except Exception:
cloudlog.error("Failed to get DBC name from logs!") cloudlog.exception("Failed to get DBC name from logs!")
with tempfile.NamedTemporaryFile(suffix='.rlog', dir=juggle_dir) as tmp: with tempfile.NamedTemporaryFile(suffix='.rlog', dir=juggle_dir) as tmp:
save_log(tmp.name, all_data, compress=False) save_log(tmp.name, all_data, compress=False)

Loading…
Cancel
Save