diff --git a/common/params_keys.h b/common/params_keys.h index 95ad3847e..6bf68277a 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -146,4 +146,5 @@ inline static std::unordered_map keys = { {"dp_device_ip", CLEAR_ON_MANAGER_START}, {"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 610a890ba..7e2f2df4b 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.alphaLongitudinalAvailable = 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 a1872c9a5..af998bf70 100755 --- a/selfdrive/car/card.py +++ b/selfdrive/car/card.py @@ -111,6 +111,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), alpha_long_allowed, is_release, 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 22820b80f..da5e71a52 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 f03400f73..0262244d4 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -63,6 +63,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"):