Add Developer Panel in Settings (#33828)

* hello world

* hello btn

* add ssh toggles

* split out developer panel code

* test this

* fix

* add ZMQ button

* add developer panel case to bot autogen screenshots

* give up bridge

* fix CI (generate screenshots)

* change from btn to toggles and interlock protection

* duplicated

---------

Co-authored-by: Comma Device <device@comma.ai>
pull/33877/head
Alexandre Nobuharu Sato 6 months ago committed by GitHub
parent 1570aa7961
commit 72a88c9319
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      .github/workflows/ui_preview.yaml
  2. 2
      selfdrive/ui/SConscript
  3. 4
      selfdrive/ui/qt/network/networking.cc
  4. 36
      selfdrive/ui/qt/offroad/developer_panel.cc
  5. 14
      selfdrive/ui/qt/offroad/developer_panel.h
  6. 2
      selfdrive/ui/qt/offroad/settings.cc
  7. 8
      selfdrive/ui/tests/test_ui/run.py
  8. 15
      selfdrive/ui/translations/main_ar.ts
  9. 15
      selfdrive/ui/translations/main_de.ts
  10. 15
      selfdrive/ui/translations/main_es.ts
  11. 15
      selfdrive/ui/translations/main_fr.ts
  12. 15
      selfdrive/ui/translations/main_ja.ts
  13. 15
      selfdrive/ui/translations/main_ko.ts
  14. 15
      selfdrive/ui/translations/main_pt-BR.ts
  15. 15
      selfdrive/ui/translations/main_th.ts
  16. 15
      selfdrive/ui/translations/main_tr.ts
  17. 15
      selfdrive/ui/translations/main_zh-CHS.ts
  18. 15
      selfdrive/ui/translations/main_zh-CHT.ts

@ -84,7 +84,7 @@ jobs:
run: >-
sudo apt-get install -y imagemagick
scenes="homescreen settings_device settings_toggles offroad_alert update_available prime onroad onroad_disengaged onroad_override onroad_sidebar onroad_wide onroad_wide_sidebar onroad_alert_small onroad_alert_mid onroad_alert_full driver_camera body keyboard"
scenes="homescreen settings_device settings_toggles settings_developer offroad_alert update_available prime onroad onroad_disengaged onroad_override onroad_sidebar onroad_wide onroad_wide_sidebar onroad_alert_small onroad_alert_mid onroad_alert_full driver_camera body keyboard"
A=($scenes)
DIFF=""

@ -28,7 +28,7 @@ qt_libs = [widgets, qt_util] + base_libs
qt_src = ["main.cc", "ui.cc", "qt/sidebar.cc", "qt/body.cc",
"qt/window.cc", "qt/home.cc", "qt/offroad/settings.cc",
"qt/offroad/software_settings.cc", "qt/offroad/onboarding.cc",
"qt/offroad/software_settings.cc", "qt/offroad/developer_panel.cc", "qt/offroad/onboarding.cc",
"qt/offroad/driverview.cc", "qt/offroad/experimental_mode.cc",
"qt/onroad/onroad_home.cc", "qt/onroad/annotated_camera.cc", "qt/onroad/model.cc",
"qt/onroad/buttons.cc", "qt/onroad/alerts.cc", "qt/onroad/driver_monitoring.cc", "qt/onroad/hud.cc"]

@ -149,10 +149,6 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
ipLabel = new LabelControl(tr("IP Address"), wifi->ipv4_address);
list->addItem(ipLabel);
// SSH keys
list->addItem(new SshToggle());
list->addItem(new SshControl());
// Roaming toggle
const bool roamingEnabled = params.getBool("GsmRoaming");
roamingToggle = new ToggleControl(tr("Enable Roaming"), "", "", roamingEnabled);

@ -0,0 +1,36 @@
#include <QDebug>
#include "selfdrive/ui/qt/offroad/developer_panel.h"
#include "selfdrive/ui/qt/widgets/ssh_keys.h"
#include "selfdrive/ui/qt/widgets/controls.h"
DeveloperPanel::DeveloperPanel(SettingsWindow *parent) : ListWidget(parent) {
// SSH keys
addItem(new SshToggle());
addItem(new SshControl());
joystickToggle = new ParamControl("JoystickDebugMode", tr("Joystick Debug Mode"), "", "");
QObject::connect(joystickToggle, &ParamControl::toggleFlipped, [=](bool state) {
params.putBool("LongitudinalManeuverMode", false);
longManeuverToggle->refresh();
});
addItem(joystickToggle);
longManeuverToggle = new ParamControl("LongitudinalManeuverMode", tr("Longitudinal Maneuver Mode"), "", "");
QObject::connect(longManeuverToggle, &ParamControl::toggleFlipped, [=](bool state) {
params.putBool("JoystickDebugMode", false);
joystickToggle->refresh();
});
addItem(longManeuverToggle);
// Joystick and longitudinal maneuvers should be hidden on release branches
// also the toggles should be not available to change in onroad state
const bool is_release = params.getBool("IsReleaseBranch");
QObject::connect(uiState(), &UIState::offroadTransition, [=](bool offroad) {
for (auto btn : findChildren<ParamControl *>()) {
btn->setVisible(!is_release);
btn->setEnabled(offroad);
}
});
}

@ -0,0 +1,14 @@
#pragma once
#include "selfdrive/ui/qt/offroad/settings.h"
class DeveloperPanel : public ListWidget {
Q_OBJECT
public:
explicit DeveloperPanel(SettingsWindow *parent);
private:
Params params;
ParamControl* joystickToggle;
ParamControl* longManeuverToggle;
};

@ -14,6 +14,7 @@
#include "selfdrive/ui/qt/qt_window.h"
#include "selfdrive/ui/qt/widgets/prime.h"
#include "selfdrive/ui/qt/widgets/scrollview.h"
#include "selfdrive/ui/qt/offroad/developer_panel.h"
TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) {
// param, title, desc, icon
@ -393,6 +394,7 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) {
{tr("Network"), networking},
{tr("Toggles"), toggles},
{tr("Software"), new SoftwarePanel(this)},
{tr("Developer"), new DeveloperPanel(this)},
};
nav_btns = new QButtonGroup(this);

@ -42,7 +42,12 @@ def setup_settings_device(click, pm: PubMaster):
def setup_settings_toggles(click, pm: PubMaster):
setup_settings_device(click, pm)
click(278, 760)
click(278, 650)
time.sleep(UI_DELAY)
def setup_settings_developer(click, pm: PubMaster):
setup_settings_device(click, pm)
click(278, 960)
time.sleep(UI_DELAY)
def setup_onroad(click, pm: PubMaster):
@ -175,6 +180,7 @@ CASES = {
"pair_device": setup_pair_device,
"settings_device": setup_settings_device,
"settings_toggles": setup_settings_toggles,
"settings_developer": setup_settings_developer,
"onroad": setup_onroad,
"onroad_disengaged": setup_onroad_disengaged,
"onroad_override": setup_onroad_override,

@ -113,6 +113,17 @@
<translation>رفض، إلغاء التثبيت %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -618,6 +629,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation>البرنامج</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>Ablehnen, deinstallieren %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -600,6 +611,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation>Software</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>Rechazar, desinstalar %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -602,6 +613,10 @@ Esto puede tardar un minuto.</translation>
<source>Software</source>
<translation>Software</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>Refuser, désinstaller %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -602,6 +613,10 @@ Cela peut prendre jusqu&apos;à une minute.</translation>
<source>Software</source>
<translation>Logiciel</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation> %1 </translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -596,6 +607,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation>ソ</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>, %1 </translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -598,6 +609,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation></translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>Rejeitar, desintalar %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -602,6 +613,10 @@ Isso pode levar até um minuto.</translation>
<source>Software</source>
<translation>Software</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation> %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -598,6 +609,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation></translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>Reddet, Kurulumu kaldır. %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -596,6 +607,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation>Yazılım</translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation>%1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -598,6 +609,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation></translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

@ -113,6 +113,17 @@
<translation> %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Joystick Debug Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
@ -598,6 +609,10 @@ This may take up to a minute.</source>
<source>Software</source>
<translation></translation>
</message>
<message>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>

Loading…
Cancel
Save