diff --git a/common/params_keys.h b/common/params_keys.h index 98e48855e..66c4d8131 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -142,4 +142,5 @@ inline static std::unordered_map keys = { {"dp_ui_radar_tracks", PERSISTENT}, {"dp_toyota_door_auto_lock_unlock", PERSISTENT}, {"dp_toyota_tss1_sng", PERSISTENT}, + {"dp_toyota_stock_lon", PERSISTENT}, }; diff --git a/opendbc_repo/opendbc/car/structs.py b/opendbc_repo/opendbc/car/structs.py index b6dbefed0..5cc5a39fd 100644 --- a/opendbc_repo/opendbc/car/structs.py +++ b/opendbc_repo/opendbc/car/structs.py @@ -24,4 +24,5 @@ class DPFlags: ExtRadar = 2 ToyotaDoorAutoLockUnlock = 2 ** 2 ToyotaTSS1SnG = 2 ** 3 + ToyotaStockLon = 2 ** 4 pass diff --git a/opendbc_repo/opendbc/car/toyota/interface.py b/opendbc_repo/opendbc/car/toyota/interface.py index 4566bc5a1..04355ab29 100644 --- a/opendbc_repo/opendbc/car/toyota/interface.py +++ b/opendbc_repo/opendbc/car/toyota/interface.py @@ -165,6 +165,10 @@ class CarInterface(CarInterfaceBase): bool(ret.flags & ToyotaFlags.DISABLE_RADAR.value) or \ sdsu_active + if dp_params & structs.DPFlags.ToyotaStockLon: + ret.openpilotLongitudinalControl = False + ret.experimentalLongitudinalAvailable = False + ret.autoResumeSng = ret.openpilotLongitudinalControl and candidate in NO_STOP_TIMER_CAR if not ret.openpilotLongitudinalControl: diff --git a/selfdrive/car/card.py b/selfdrive/car/card.py index 6b401ffb8..459fb861f 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -108,6 +108,9 @@ class Car: if self.params.get_bool("dp_toyota_tss1_sng"): dp_params |= structs.DPFlags.ToyotaTSS1SnG + if self.params.get_bool("dp_toyota_stock_lon"): + dp_params |= structs.DPFlags.ToyotaStockLon + self.CI = get_car(*self.can_callbacks, obd_callback(self.params), experimental_long_allowed, num_pandas, dp_params, cached_params) self.RI = interfaces[self.CI.CP.carFingerprint].RadarInterface(self.CI.CP) self.CP = self.CI.CP diff --git a/selfdrive/ui/qt/offroad/dp_panel.cc b/selfdrive/ui/qt/offroad/dp_panel.cc index 2bd537164..b1d6ed4f7 100644 --- a/selfdrive/ui/qt/offroad/dp_panel.cc +++ b/selfdrive/ui/qt/offroad/dp_panel.cc @@ -17,6 +17,11 @@ void DPPanel::add_toyota_toggles() { tr("Enable TSS1 SnG Mod"), "", }, + { + "dp_toyota_stock_lon", + tr("Use Stock Longitudinal Control"), + "", + }, }; QWidget *label = nullptr; diff --git a/system/manager/manager.py b/system/manager/manager.py index 35a62f62b..ac269cde6 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -64,6 +64,7 @@ def manager_init() -> None: ("dp_ui_radar_tracks", "0"), ("dp_toyota_door_auto_lock_unlock", "0"), ("dp_toyota_tss1_sng", "0"), + ("dp_toyota_stock_lon", "0"), ] if params.get_bool("RecordFrontLock"):