From e1904c5a3fbce70542c71c155c13f231be893af4 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Sat, 16 Nov 2024 18:54:18 -0500 Subject: [PATCH] UI border update --- selfdrive/ui/ui.cc | 19 ++++++++++++++++--- selfdrive/ui/ui.h | 4 ++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index ec3d40961d..4d8dd4ec07 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -68,13 +68,25 @@ void ui_update_params(UIState *s) { } void UIState::updateStatus() { - if (scene.started && sm->updated("selfdriveState")) { + if (scene.started && (sm->updated("selfdriveState") || sm->updated("selfdriveStateSP"))) { auto ss = (*sm)["selfdriveState"].getSelfdriveState(); + auto ss_sp = (*sm)["selfdriveStateSP"].getSelfdriveStateSP(); + auto mads = ss_sp.getMads(); auto state = ss.getState(); - if (state == cereal::SelfdriveState::OpenpilotState::PRE_ENABLED || state == cereal::SelfdriveState::OpenpilotState::OVERRIDING) { + auto state_mads = mads.getState(); + if (state == cereal::SelfdriveState::OpenpilotState::PRE_ENABLED || state == cereal::SelfdriveState::OpenpilotState::OVERRIDING || + state_mads == cereal::SelfdriveStateSP::ModularAssistiveDrivingSystem::ModularAssistiveDrivingSystemState::PAUSED) { status = STATUS_OVERRIDE; } else { - status = ss.getEnabled() ? STATUS_ENGAGED : STATUS_DISENGAGED; + if (mads.getAvailable()) { + if (mads.getActive()) { + status = ss.getEnabled() ? STATUS_ENGAGED : STATUS_LAT_ONLY; + } else { + status = STATUS_DISENGAGED; + } + } else { + status = ss.getEnabled() ? STATUS_ENGAGED : STATUS_DISENGAGED; + } } } @@ -94,6 +106,7 @@ UIState::UIState(QObject *parent) : QObject(parent) { "modelV2", "controlsState", "liveCalibration", "radarState", "deviceState", "pandaStates", "carParams", "driverMonitoringState", "carState", "driverStateV2", "wideRoadCameraState", "managerState", "selfdriveState", "longitudinalPlan", + "selfdriveStateSP", }); prime_state = new PrimeState(this); language = QString::fromStdString(Params().get("LanguageSetting")); diff --git a/selfdrive/ui/ui.h b/selfdrive/ui/ui.h index 6ff67cacde..52f76dc611 100644 --- a/selfdrive/ui/ui.h +++ b/selfdrive/ui/ui.h @@ -42,12 +42,16 @@ typedef enum UIStatus { STATUS_DISENGAGED, STATUS_OVERRIDE, STATUS_ENGAGED, + STATUS_LAT_ONLY, + STATUS_LONG_ONLY, } UIStatus; const QColor bg_colors [] = { [STATUS_DISENGAGED] = QColor(0x17, 0x33, 0x49, 0xc8), [STATUS_OVERRIDE] = QColor(0x91, 0x9b, 0x95, 0xf1), [STATUS_ENGAGED] = QColor(0x17, 0x86, 0x44, 0xf1), + [STATUS_LAT_ONLY] = QColor(0x00, 0xc8, 0xc8, 0xf1), + [STATUS_LONG_ONLY] = QColor(0x96, 0x1C, 0xA8, 0xf1), }; typedef struct UIScene {