From 9bfacdd95d040e69e6b03f8dbaf3b0123345b64e Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Mon, 19 May 2025 07:17:24 -0400 Subject: [PATCH] one place for limited platforms --- .../sunnypilot/qt/offroad/settings/lateral/mads_settings.cc | 2 +- .../ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h | 2 ++ selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.cc | 2 +- selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.cc index 1b68ea811d..2469bfa593 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.cc @@ -57,7 +57,7 @@ void MadsSettings::updateToggles(bool _offroad) { capnp::FlatArrayMessageReader cmsg(aligned_buf.align(cp_bytes.data(), cp_bytes.size())); cereal::CarParams::Reader CP = cmsg.getRoot(); - if (CP.getBrand() == "rivian" || CP.getBrand() == "tesla") { + if (isBrandInList(CP.getBrand(), mads_limited_settings_brands)) { params.remove("MadsMainCruiseAllowed"); params.putBool("MadsUnifiedEngagementMode", true); params.put("MadsSteeringMode", std::to_string(static_cast(MadsSteeringMode::DISENGAGE))); diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h index 4f7c6bf4b7..804b978c96 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral/mads_settings.h @@ -12,6 +12,8 @@ #include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h" #include "selfdrive/ui/sunnypilot/qt/widgets/controls.h" +const std::vector mads_limited_settings_brands = {"rivian", "tesla"}; + enum class MadsSteeringMode { REMAIN_ACTIVE = 0, PAUSE = 1, diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.cc index 61ae126fc3..d367ee850c 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.cc @@ -128,7 +128,7 @@ void LateralPanel::updateToggles(bool _offroad) { capnp::FlatArrayMessageReader cmsg(aligned_buf.align(cp_bytes.data(), cp_bytes.size())); cereal::CarParams::Reader CP = cmsg.getRoot(); - if (CP.getBrand() == "rivian" || CP.getBrand() == "tesla") { + if (isBrandInList(CP.getBrand(), mads_limited_settings_brands)) { madsToggle->setDescription(descriptionBuilder(STATUS_MADS_SETTINGS_LIMITED_COMPATIBILITY, MADS_BASE_DESC)); } else { madsToggle->setDescription(descriptionBuilder(STATUS_MADS_SETTINGS_FULL_COMPATIBILITY, MADS_BASE_DESC)); diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h index 2fe511cc48..ff25d3b64f 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h @@ -12,6 +12,10 @@ #include "selfdrive/ui/qt/offroad/settings.h" +inline bool isBrandInList(const std::string &brand, const std::vector &list) { + return std::find(list.begin(), list.end(), brand) != list.end(); +} + class SettingsWindowSP : public SettingsWindow { Q_OBJECT