|
|
|
@ -15,9 +15,8 @@ from selfdrive.car.tests.routes import non_tested_cars |
|
|
|
|
|
|
|
|
|
def get_all_footnotes() -> Dict[Enum, int]: |
|
|
|
|
all_footnotes = [] |
|
|
|
|
for _, footnotes in get_interface_attr("Footnote").items(): |
|
|
|
|
if footnotes is not None: |
|
|
|
|
all_footnotes += footnotes |
|
|
|
|
for footnotes in get_interface_attr("Footnote", ignore_none=True).values(): |
|
|
|
|
all_footnotes += footnotes |
|
|
|
|
return {fn: idx + 1 for idx, fn in enumerate(all_footnotes)} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -28,21 +27,20 @@ CARS_MD_TEMPLATE = os.path.join(BASEDIR, "selfdrive", "car", "CARS_template.md") |
|
|
|
|
|
|
|
|
|
def get_all_car_info() -> List[CarInfo]: |
|
|
|
|
all_car_info: List[CarInfo] = [] |
|
|
|
|
for models in get_interface_attr("CAR_INFO").values(): |
|
|
|
|
for model, car_info in models.items(): |
|
|
|
|
# Hyundai exception: those with radar have openpilot longitudinal |
|
|
|
|
fingerprint = {0: {}, 1: {HKG_RADAR_START_ADDR: 8}, 2: {}, 3: {}} |
|
|
|
|
CP = interfaces[model][0].get_params(model, fingerprint=fingerprint, disable_radar=True) |
|
|
|
|
for model, car_info in get_interface_attr("CAR_INFO", combine_brands=True).items(): |
|
|
|
|
# Hyundai exception: those with radar have openpilot longitudinal |
|
|
|
|
fingerprint = {0: {}, 1: {HKG_RADAR_START_ADDR: 8}, 2: {}, 3: {}} |
|
|
|
|
CP = interfaces[model][0].get_params(model, fingerprint=fingerprint, disable_radar=True) |
|
|
|
|
|
|
|
|
|
if CP.dashcamOnly or car_info is None: |
|
|
|
|
continue |
|
|
|
|
if CP.dashcamOnly or car_info is None: |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
# A platform can include multiple car models |
|
|
|
|
if not isinstance(car_info, list): |
|
|
|
|
car_info = (car_info,) |
|
|
|
|
# A platform can include multiple car models |
|
|
|
|
if not isinstance(car_info, list): |
|
|
|
|
car_info = (car_info,) |
|
|
|
|
|
|
|
|
|
for _car_info in car_info: |
|
|
|
|
all_car_info.append(_car_info.init(CP, non_tested_cars, ALL_FOOTNOTES)) |
|
|
|
|
for _car_info in car_info: |
|
|
|
|
all_car_info.append(_car_info.init(CP, non_tested_cars, ALL_FOOTNOTES)) |
|
|
|
|
|
|
|
|
|
# Sort cars by make and model + year |
|
|
|
|
sorted_cars: List[CarInfo] = natsorted(all_car_info, key=lambda car: (car.make + car.model).lower()) |
|
|
|
|