From 037695af4a1a17d37a22595ad139781616857209 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Thu, 8 May 2025 16:04:59 -0400 Subject: [PATCH] Car interface: pass into setup interfaces on init (#887) * Car interface: pass into setup interfaces on init * more * should be after --- selfdrive/car/card.py | 2 +- selfdrive/car/tests/test_car_interfaces.py | 2 +- selfdrive/controls/lib/tests/test_latcontrol.py | 2 +- sunnypilot/selfdrive/car/interfaces.py | 13 ++++++++----- .../controls/lib/nnlc/tests/test_fingerprint.py | 2 +- .../controls/lib/nnlc/tests/test_load_model.py | 2 +- .../selfdrive/controls/lib/nnlc/tests/test_nnlc.py | 2 +- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 2326f6fbc..fa4b10e0d 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -108,7 +108,7 @@ class Car: fixed_fingerprint = json.loads(self.params.get("CarPlatformBundle", encoding='utf-8') or "{}").get("platform", None) self.CI = get_car(*self.can_callbacks, obd_callback(self.params), alpha_long_allowed, num_pandas, cached_params, fixed_fingerprint) - sunnypilot_interfaces.setup_interfaces(self.CI.CP, self.CI.CP_SP, self.params) + sunnypilot_interfaces.setup_interfaces(self.CI, self.params) self.RI = interfaces[self.CI.CP.carFingerprint].RadarInterface(self.CI.CP, self.CI.CP_SP) self.CP = self.CI.CP self.CP_SP = self.CI.CP_SP diff --git a/selfdrive/car/tests/test_car_interfaces.py b/selfdrive/car/tests/test_car_interfaces.py index fdb823f5f..75e5467b7 100644 --- a/selfdrive/car/tests/test_car_interfaces.py +++ b/selfdrive/car/tests/test_car_interfaces.py @@ -45,9 +45,9 @@ class TestCarInterfaces: alpha_long=args['alpha_long'], docs=False) car_params_sp = CarInterface.get_params_sp(car_params, car_name, args['fingerprints'], args['car_fw'], alpha_long=args['alpha_long'], docs=False) - sunnypilot_interfaces.setup_interfaces(car_params, car_params_sp) car_params = car_params.as_reader() car_interface = CarInterface(car_params, car_params_sp) + sunnypilot_interfaces.setup_interfaces(car_interface) assert car_params assert car_params_sp assert car_interface diff --git a/selfdrive/controls/lib/tests/test_latcontrol.py b/selfdrive/controls/lib/tests/test_latcontrol.py index 3bf9be9d9..727f68195 100644 --- a/selfdrive/controls/lib/tests/test_latcontrol.py +++ b/selfdrive/controls/lib/tests/test_latcontrol.py @@ -23,7 +23,7 @@ class TestLatControl: CP = CarInterface.get_non_essential_params(car_name) CP_SP = CarInterface.get_non_essential_params_sp(CP, car_name) CI = CarInterface(CP, CP_SP) - sunnypilot_interfaces.setup_interfaces(CP, CP_SP) + sunnypilot_interfaces.setup_interfaces(CI) CP_SP = convert_to_capnp(CP_SP) VM = VehicleModel(CP) diff --git a/sunnypilot/selfdrive/car/interfaces.py b/sunnypilot/selfdrive/car/interfaces.py index 5fac76c28..2c27e960e 100644 --- a/sunnypilot/selfdrive/car/interfaces.py +++ b/sunnypilot/selfdrive/car/interfaces.py @@ -26,8 +26,8 @@ def log_fingerprint(CP: structs.CarParams) -> None: sentry.capture_fingerprint(CP.carFingerprint, CP.brand) -def _initialize_neural_network_lateral_control(CP: structs.CarParams, CP_SP: structs.CarParamsSP, params: Params = None, - enabled: bool = False) -> None: +def _initialize_neural_network_lateral_control(CI: CarInterfaceBase, CP: structs.CarParams, CP_SP: structs.CarParamsSP, + params: Params = None, enabled: bool = False) -> None: if params is None: params = Params() @@ -40,7 +40,7 @@ def _initialize_neural_network_lateral_control(CP: structs.CarParams, CP_SP: str enabled = params.get_bool("NeuralNetworkLateralControl") if enabled: - CarInterfaceBase.configure_torque_tune(CP.carFingerprint, CP.lateralTuning) + CI.configure_torque_tune(CP.carFingerprint, CP.lateralTuning) CP_SP.neuralNetworkLateralControl.model.path = nnlc_model_path CP_SP.neuralNetworkLateralControl.model.name = nnlc_model_name @@ -61,8 +61,11 @@ def _initialize_radar_tracks(CP: structs.CarParams, CP_SP: structs.CarParamsSP, CP.radarUnavailable = False -def setup_interfaces(CP: structs.CarParams, CP_SP: structs.CarParamsSP, params: Params = None): - _initialize_neural_network_lateral_control(CP, CP_SP, params) +def setup_interfaces(CI: CarInterfaceBase, params: Params = None): + CP = CI.CP + CP_SP = CI.CP_SP + + _initialize_neural_network_lateral_control(CI, CP, CP_SP, params) _initialize_radar_tracks(CP, CP_SP, params) diff --git a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_fingerprint.py b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_fingerprint.py index 97f927502..0f016ccaf 100644 --- a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_fingerprint.py +++ b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_fingerprint.py @@ -24,7 +24,7 @@ class TestNNLCFingerprintBase: CP_SP = CarInterface.get_non_essential_params_sp(CP, car_name) CI = CarInterface(CP, CP_SP) - sunnypilot_interfaces.setup_interfaces(CP, CP_SP, Params()) + sunnypilot_interfaces.setup_interfaces(CI, Params()) return CI diff --git a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_load_model.py b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_load_model.py index 38fd99483..af7077d1c 100644 --- a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_load_model.py +++ b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_load_model.py @@ -22,7 +22,7 @@ class TestNNTorqueModel: CP_SP = CarInterface.get_non_essential_params_sp(CP, car_name) CI = CarInterface(CP, CP_SP) - sunnypilot_interfaces.setup_interfaces(CP, CP_SP, params) + sunnypilot_interfaces.setup_interfaces(CI, params) CP_SP = convert_to_capnp(CP_SP) diff --git a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_nnlc.py b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_nnlc.py index 4e2649f2f..699327cd8 100644 --- a/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_nnlc.py +++ b/sunnypilot/selfdrive/controls/lib/nnlc/tests/test_nnlc.py @@ -51,7 +51,7 @@ class TestNeuralNetworkLateralControl: CP_SP = CarInterface.get_non_essential_params_sp(CP, car_name) CI = CarInterface(CP, CP_SP) - sunnypilot_interfaces.setup_interfaces(CP, CP_SP, params) + sunnypilot_interfaces.setup_interfaces(CI, params) CP_SP = convert_to_capnp(CP_SP) VM = VehicleModel(CP)