Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Developer Panel in Settings #33822

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
2 changes: 1 addition & 1 deletion .github/workflows/ui_preview.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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=""
Expand Down
16 changes: 15 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,19 @@
"system/**",
"third_party/**",
"tools/**",
]
],
"files.associations": {
"cassert": "cpp",
"vector": "cpp",
"__hash_table": "cpp",
"__tree": "cpp",
"array": "cpp",
"type_traits": "cpp",
"forward_list": "cpp",
"limits": "cpp",
"ratio": "cpp",
"tuple": "cpp",
"variant": "cpp",
"string": "cpp"
}
}
2 changes: 1 addition & 1 deletion panda
1 change: 0 additions & 1 deletion selfdrive/ui/qt/network/networking.cc
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ AdvancedNetworking::AdvancedNetworking(QWidget* parent, WifiManager* wifi): QWid
list->addItem(ipLabel);

// SSH keys
list->addItem(new SshToggle());
list->addItem(new SshControl());

// Roaming toggle
Expand Down
3 changes: 3 additions & 0 deletions selfdrive/ui/qt/offroad/settings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -384,10 +384,13 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) {
auto networking = new Networking(this);
QObject::connect(uiState()->prime_state, &PrimeState::changed, networking, &Networking::setPrimeType);

DeveloperPanel *developer = new DeveloperPanel(this);

QList<QPair<QString, QWidget *>> panels = {
{tr("Device"), device},
{tr("Network"), networking},
{tr("Toggles"), toggles},
{tr("Developer"), developer},
{tr("Software"), new SoftwarePanel(this)},
};

Expand Down
48 changes: 48 additions & 0 deletions selfdrive/ui/qt/offroad/settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "selfdrive/ui/ui.h"
#include "selfdrive/ui/qt/util.h"
#include "selfdrive/ui/qt/widgets/controls.h"
#include "selfdrive/ui/qt/widgets/ssh_keys.h"

// ********** settings window + top-level panels **********
class SettingsWindow : public QFrame {
Expand Down Expand Up @@ -98,3 +99,50 @@ class SoftwarePanel : public ListWidget {
Params params;
ParamWatcher *fs_watch;
};

class DeveloperPanel : public ListWidget {
Q_OBJECT

public:
explicit DeveloperPanel(QWidget *parent = nullptr) : ListWidget(parent) {
setSpacing(50);

addItem(new LabelControl(tr("Developer Options"), tr("Settings for developers")));

// SSH Key Settings
addItem(new SshControl());

if (getenv("RELEASE") == nullptr) {
// Joystick Control
ButtonControl *joystickBtn = new ButtonControl(tr("Joystick Control"), tr("RUN"));
QObject::connect(joystickBtn, &ButtonControl::clicked, [=]() {
std::system(("python " + std::string(getenv("OPENPILOT_PREFIX")) + "/tools/joystick/joystick_control.py").c_str());
});
addItem(joystickBtn);

// Longitudinal Maneuver Report Mode
ButtonControl *longitudinalManeuverReportModeBtn = new ButtonControl(tr("Longitudinal Maneuver Report Mode"), tr("ACTIVATE"));
QObject::connect(longitudinalManeuverReportModeBtn, &ButtonControl::clicked, [=]() {
std::system("echo -n 1 > /data/params/d/LongitudinalManeuverMode");
longitudinalManeuverReportModeBtn->setText(tr("ACTIVE"));
longitudinalManeuverReportModeBtn->setEnabled(false);
});
addItem(longitudinalManeuverReportModeBtn);
}

// Create a ZMQ toggle
bool zmqEnabled = qgetenv("ZMQ") == "1";
ButtonControl *zmqToggle = new ButtonControl(tr("Zero MQ Mode"), "");
zmqToggle->setText(zmqEnabled ? tr("ON") : tr("OFF"));
zmqToggle->setEnabled(true);

// Connect button click to toggle ZMQ state
QObject::connect(zmqToggle, &ButtonControl::clicked, [=]() {
bool newState = qgetenv("ZMQ") != "1"; // Toggle the state
qputenv("ZMQ", newState ? "1" : "0");
zmqToggle->setText(newState ? tr("ON") : tr("OFF"));
});

addItem(zmqToggle);
}
};
8 changes: 7 additions & 1 deletion selfdrive/ui/tests/test_ui/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -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, 672)
time.sleep(UI_DELAY)

def setup_settings_developer(click, pm: PubMaster):
setup_settings_device(click, pm)
click(278, 810)
time.sleep(UI_DELAY)

def setup_onroad(click, pm: PubMaster):
Expand Down Expand Up @@ -175,6 +180,7 @@ def setup_pair_device(click, pm: PubMaster):
"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,
Expand Down
47 changes: 47 additions & 0 deletions selfdrive/ui/translations/main_ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,49 @@
<translation>رفض، إلغاء التثبيت %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Developer Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings for developers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Joystick Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RUN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Report Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Zero MQ Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OFF</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
Expand Down Expand Up @@ -618,6 +661,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>
Expand Down
47 changes: 47 additions & 0 deletions selfdrive/ui/translations/main_de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,49 @@
<translation>Ablehnen, deinstallieren %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Developer Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings for developers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Joystick Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RUN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Report Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Zero MQ Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OFF</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
Expand Down Expand Up @@ -600,6 +643,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>
Expand Down
47 changes: 47 additions & 0 deletions selfdrive/ui/translations/main_es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,49 @@
<translation>Rechazar, desinstalar %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Developer Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings for developers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Joystick Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RUN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Report Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Zero MQ Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OFF</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
Expand Down Expand Up @@ -602,6 +645,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>
Expand Down
47 changes: 47 additions & 0 deletions selfdrive/ui/translations/main_fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,49 @@
<translation>Refuser, désinstaller %1</translation>
</message>
</context>
<context>
<name>DeveloperPanel</name>
<message>
<source>Developer Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Settings for developers</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Joystick Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>RUN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Longitudinal Maneuver Report Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ACTIVE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Zero MQ Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ON</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OFF</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
<message>
Expand Down Expand Up @@ -602,6 +645,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>
Expand Down
Loading
Loading