works but at what cost

pull/31792/head
Shane Smiskol 1 year ago
parent a506ad1690
commit dd9c6b7ad3
  1. 17
      selfdrive/ui/qt/offroad/settings.cc
  2. 10
      selfdrive/ui/qt/offroad/settings.h
  3. 4
      selfdrive/ui/qt/widgets/controls.h
  4. 9
      selfdrive/ui/qt/window.cc
  5. 6
      selfdrive/ui/qt/window.h
  6. 8
      selfdrive/ui/ui.cc
  7. 1
      selfdrive/ui/ui.h

@ -128,6 +128,11 @@ void TogglesPanel::showEvent(QShowEvent *event) {
updateToggles();
}
void TogglesPanel::updatePersonalitySetting(int personality) {
qDebug() << "updatePersonalitySetting" << personality;
long_personality_setting->setActiveButton(personality);
}
void TogglesPanel::updateToggles() {
auto experimental_mode_toggle = toggles["ExperimentalMode"];
auto op_long_toggle = toggles["ExperimentalLongitudinalEnabled"];
@ -341,6 +346,10 @@ void SettingsWindow::setCurrentPanel(int index, const QString &param) {
}
}
//void SettingsWindow::updatePersonalitySetting(int personality) {
// emit updatePersonalitySetting1(personality);
//}
SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) {
// setup two main layouts
@ -374,6 +383,14 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QFrame(parent) {
TogglesPanel *toggles = new TogglesPanel(this);
QObject::connect(this, &SettingsWindow::expandToggleDescription, toggles, &TogglesPanel::expandToggleDescription);
// QObject::connect(this, &SettingsWindow::updatePersonalitySetting, toggles, [toggles](int personality) {
//// qDebug() << "HERE";
//// emit updatePersonalitySetting(personality);
// toggles->updatePersonalitySetting(personality);
// });
QObject::connect(this, &SettingsWindow::updatePersonalitySetting, toggles, &TogglesPanel::updatePersonalitySetting);
// QObject::connect(uiState(), &UIState::uiUpdate, this, &TogglesPanel::updateState);
QList<QPair<QString, QWidget *>> panels = {
{tr("Device"), device},

@ -22,6 +22,9 @@ public:
explicit SettingsWindow(QWidget *parent = 0);
void setCurrentPanel(int index, const QString &param = "");
//public slots:
// void updatePersonalitySetting(int);
protected:
void showEvent(QShowEvent *event) override;
@ -30,6 +33,8 @@ signals:
void reviewTrainingGuide();
void showDriverView();
void expandToggleDescription(const QString &param);
void updatePersonalitySetting(int personality);
// void updatePersonalitySetting1(int personality);
private:
QPushButton *sidebar_alert_widget;
@ -63,6 +68,11 @@ public:
public slots:
void expandToggleDescription(const QString &param);
void updatePersonalitySetting(int);
// void updateState(const UIState &s);
//private slots:
// void updateState(const UIState &s);
private:
Params params;

@ -230,6 +230,10 @@ public:
});
}
void setActiveButton(int id) {
button_group->button(id)->setChecked(true);
}
void setEnabled(bool enable) {
for (auto btn : button_group->buttons()) {
btn->setEnabled(enable);

@ -4,10 +4,18 @@
#include "system/hardware/hw.h"
void MainWindow::updateState(const UIState &s) {
qDebug() << "updateState" << static_cast<int>(s.scene.personality);
emit updatePersonalitySetting(static_cast<int>(s.scene.personality));
// settingsWindow->updatePersonalitySetting(static_cast<int>(s.scene.personality));
}
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
main_layout = new QStackedLayout(this);
main_layout->setMargin(0);
QObject::connect(uiState(), &UIState::uiUpdate, this, &MainWindow::updateState);
homeWindow = new HomeWindow(this);
main_layout->addWidget(homeWindow);
QObject::connect(homeWindow, &HomeWindow::openSettings, this, &MainWindow::openSettings);
@ -15,6 +23,7 @@ MainWindow::MainWindow(QWidget *parent) : QWidget(parent) {
settingsWindow = new SettingsWindow(this);
main_layout->addWidget(settingsWindow);
QObject::connect(this, &MainWindow::updatePersonalitySetting, settingsWindow, &SettingsWindow::updatePersonalitySetting);
QObject::connect(settingsWindow, &SettingsWindow::closeSettings, this, &MainWindow::closeSettings);
QObject::connect(settingsWindow, &SettingsWindow::reviewTrainingGuide, [=]() {
onboardingWindow->showTrainingGuide();

@ -13,6 +13,12 @@ class MainWindow : public QWidget {
public:
explicit MainWindow(QWidget *parent = 0);
private slots:
void updateState(const UIState &s);
signals:
void updatePersonalitySetting(int);
private:
bool eventFilter(QObject *obj, QEvent *event) override;
void openSettings(int index = 0, const QString &param = "");

@ -3,6 +3,7 @@
#include <algorithm>
#include <cassert>
#include <cmath>
#include <iostream>
#include <QtConcurrent>
@ -206,6 +207,11 @@ static void update_state(UIState *s) {
float scale = (cam_state.getSensor() == cereal::FrameData::ImageSensor::AR0231) ? 6.0f : 1.0f;
scene.light_sensor = std::max(100.0f - scale * cam_state.getExposureValPercent(), 0.0f);
}
if (sm.updated("longitudinalPlan")) {
auto plan = sm["longitudinalPlan"].getLongitudinalPlan();
scene.personality = plan.getPersonality();
std::cout << "Personality: " << static_cast<int>(scene.personality) << std::endl;
}
scene.started = sm["deviceState"].getDeviceState().getStarted() && scene.ignition;
scene.world_objects_visible = scene.world_objects_visible ||
@ -248,7 +254,7 @@ UIState::UIState(QObject *parent) : QObject(parent) {
sm = std::make_unique<SubMaster, const std::initializer_list<const char *>>({
"modelV2", "controlsState", "liveCalibration", "radarState", "deviceState",
"pandaStates", "carParams", "driverMonitoringState", "carState", "liveLocationKalman", "driverStateV2",
"wideRoadCameraState", "managerState", "navInstruction", "navRoute", "uiPlan",
"wideRoadCameraState", "managerState", "navInstruction", "navRoute", "uiPlan", "longitudinalPlan",
});
Params params;

@ -158,6 +158,7 @@ typedef struct UIScene {
float light_sensor;
bool started, ignition, is_metric, map_on_left, longitudinal_control;
cereal::LongitudinalPersonality personality;
bool world_objects_visible = false;
uint64_t started_frame;
} UIScene;

Loading…
Cancel
Save