diff --git a/common/params_keys.h b/common/params_keys.h index 68507db20..096c76f6e 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -138,6 +138,7 @@ inline static std::unordered_map keys = { {"EnableSpeedLimitControl", {PERSISTENT, BOOL}}, {"EnableSpeedLimitPredicative", {PERSISTENT, BOOL}}, {"BatteryDetails", {PERSISTENT, BOOL}}, + {"ForceRHDForBSM", {PERSISTENT, BOOL}}, // --- sunnypilot params --- // {"ApiCache_DriveStats", {PERSISTENT, JSON}}, diff --git a/selfdrive/controls/controlsd.py b/selfdrive/controls/controlsd.py index bd4735815..bed13d941 100644 --- a/selfdrive/controls/controlsd.py +++ b/selfdrive/controls/controlsd.py @@ -65,6 +65,7 @@ class Controls(ControlsExt, ModelStateBase): self.enable_speed_limit_predicative = self.params.get_bool("EnableSpeedLimitPredicative") self.enable_smooth_steer = self.params.get_bool("EnableSmoothSteer") self.smooth_steer = PT2Filter(46.0, 1.0, DT_CTRL) + self.force_rhd_for_bsm = self.params.get_bool("ForceRHDForBSM") self.pose_calibrator = PoseCalibrator() self.calibrated_pose: Pose | None = None @@ -95,6 +96,7 @@ class Controls(ControlsExt, ModelStateBase): self.enable_smooth_steer = self.params.get_bool("EnableSmoothSteer") self.enable_speed_limit_control = self.params.get_bool("EnableSpeedLimitControl") self.enable_speed_limit_predicative = self.params.get_bool("EnableSpeedLimitPredicative") + self.force_rhd_for_bsm = self.params.get_bool("ForceRHDForBSM") def state_control(self): CS = self.sm['carState'] @@ -188,6 +190,7 @@ class Controls(ControlsExt, ModelStateBase): CC.curvatureControllerActive = self.enable_curvature_controller # for car controller curvature correction activation CC.steerLimited = self.steer_limited_by_safety + CC.forceRHDForBSM = self.force_rhd_for_bsm # Orientation and angle rates can be useful for carcontroller # Only calibrated (car) frame is relevant for the carcontroller diff --git a/selfdrive/ui/qt/offroad/settings.cc b/selfdrive/ui/qt/offroad/settings.cc index 7d9639ef2..9d58f57f9 100644 --- a/selfdrive/ui/qt/offroad/settings.cc +++ b/selfdrive/ui/qt/offroad/settings.cc @@ -63,7 +63,14 @@ InfiniteCableTogglesPanel::InfiniteCableTogglesPanel(SettingsWindow *parent) : L { "DisableScreenTimer", tr("Onroad Screen Timeout"), - tr("the onroad screen is turned of after 10 seconds. It will be temporarily enabled on alerts"), + tr("The onroad screen is turned of after 10 seconds. It will be temporarily enabled on alerts"), + "../assets/icons/eye_closed.png", + false, + }, + { + "ForceRHDForBSM", + tr("Force RHD for BSM"), + tr("Switch BSM detection side to RHD. Passenger is on the right side."), "../assets/icons/eye_closed.png", false, },