Car port adapted from HotIce0/openpilot develop_byd_comma4 to sunnypilot's opendbc API (CP_SP signatures, (ret, ret_sp) carstate returns): - opendbc/car/byd/: interface, carstate, carcontroller, bydcan, values, fingerprints (BYD_SEAL_PERFORMANCE_25 with full 91-msg fingerprint) - opendbc/dbc/byd_common.dbc - Brand registration: car/values.py, car/fingerprints.py (+MIGRATION), car.capnp SafetyModel byd @35, torque_data/params.toml - safety/modes/byd.h: SAFETY_BYD 35U with real TX checks (steer torque cmd checks, longitudinal accel checks), MADS LKAS button from PCM_BUTTONS (944), pcm_cruise_check, ESC vehicle_moving. MISRA clean. - safety/tests/test_byd.py: 120 tests (stock + longitudinal variants) - opendbc/sunnypilot/car/byd/mads.py: MadsCarState tracking the dedicated LKAS steering wheel button - sunnypilot/mads/mads.py: allow_always for byd (dedicated LKAS button) - panda: restore SConstruct/SConscript build system, rebuild panda_h7.bin.signed (TIZI) with SAFETY_BYD + MADS lateral gating Known limitation: BYD_HAN_EV_23 fingerprint is a subset of the Seal's, so HAN requires FINGERPRINT=BYD_HAN_EV_23 env var (live fingerprint cannot distinguish it; Seal fingerprints natively).
23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
from typing import get_args
|
|
from opendbc.car.body.values import CAR as BODY
|
|
from opendbc.car.byd.values import CAR as BYD
|
|
from opendbc.car.chrysler.values import CAR as CHRYSLER
|
|
from opendbc.car.ford.values import CAR as FORD
|
|
from opendbc.car.gm.values import CAR as GM
|
|
from opendbc.car.honda.values import CAR as HONDA
|
|
from opendbc.car.hyundai.values import CAR as HYUNDAI
|
|
from opendbc.car.mazda.values import CAR as MAZDA
|
|
from opendbc.car.mock.values import CAR as MOCK
|
|
from opendbc.car.nissan.values import CAR as NISSAN
|
|
from opendbc.car.psa.values import CAR as PSA
|
|
from opendbc.car.rivian.values import CAR as RIVIAN
|
|
from opendbc.car.subaru.values import CAR as SUBARU
|
|
from opendbc.car.tesla.values import CAR as TESLA
|
|
from opendbc.car.toyota.values import CAR as TOYOTA
|
|
from opendbc.car.volkswagen.values import CAR as VOLKSWAGEN
|
|
|
|
Platform = BODY | BYD | CHRYSLER | FORD | GM | HONDA | HYUNDAI | MAZDA | MOCK | NISSAN | PSA | RIVIAN | SUBARU | TESLA | TOYOTA | VOLKSWAGEN
|
|
BRANDS = get_args(Platform)
|
|
|
|
PLATFORMS: dict[str, Platform] = {str(platform): platform for brand in BRANDS for platform in brand}
|