diff --git a/selfdrive/car/__init__.py b/selfdrive/car/__init__.py index 42cd135446..e46ce120e8 100644 --- a/selfdrive/car/__init__.py +++ b/selfdrive/car/__init__.py @@ -1,5 +1,5 @@ # functions common among cars -from collections import namedtuple +from collections import defaultdict, namedtuple from dataclasses import dataclass from enum import IntFlag, ReprEnum from dataclasses import replace @@ -301,3 +301,15 @@ class Platforms(str, ReprEnum): @classmethod def with_flags(cls, flags: IntFlag) -> set['Platforms']: return {p for p in cls if p.config.flags & flags} + + @classmethod + def print_debug(cls, flags): + platforms_with_flag = defaultdict(list) + for flag in flags: + for platform in cls: + if platform.config.flags & flag: + assert flag.name is not None + platforms_with_flag[flag.name].append(platform) + + for flag, platforms in platforms_with_flag.items(): + print(f"{flag:20s}: {', '.join(p.name for p in platforms)}") diff --git a/selfdrive/car/subaru/values.py b/selfdrive/car/subaru/values.py index 90502bfad7..7bf0f11bad 100644 --- a/selfdrive/car/subaru/values.py +++ b/selfdrive/car/subaru/values.py @@ -262,3 +262,7 @@ FW_QUERY_CONFIG = FwQueryConfig( CAR_INFO = CAR.create_carinfo_map() DBC = CAR.create_dbc_map() + + +if __name__ == "__main__": + CAR.print_debug(SubaruFlags)