body: opt-out logging (#24423)

* body: opt-out logging

* wait a bit

* little better

* fix that too

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 2466233b1c
taco
Adeeb Shihadeh 3 years ago committed by GitHub
parent 0195ae1464
commit 5e42de3e36
  1. 2
      selfdrive/common/params.cc
  2. 2
      selfdrive/manager/process_config.py
  3. 33
      selfdrive/ui/qt/body.cc
  4. 2
      selfdrive/ui/qt/body.h
  5. 2
      selfdrive/ui/qt/home.cc
  6. 2
      selfdrive/ui/ui.cc

@ -94,6 +94,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"CompletedTrainingVersion", PERSISTENT}, {"CompletedTrainingVersion", PERSISTENT},
{"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON}, {"ControlsReady", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"CurrentRoute", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON}, {"CurrentRoute", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"DisableLogging", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"DisablePowerDown", PERSISTENT}, {"DisablePowerDown", PERSISTENT},
{"DisableRadar_Allow", PERSISTENT}, {"DisableRadar_Allow", PERSISTENT},
{"DisableRadar", PERSISTENT}, // WARNING: THIS DISABLES AEB {"DisableRadar", PERSISTENT}, // WARNING: THIS DISABLES AEB
@ -103,7 +104,6 @@ std::unordered_map<std::string, uint32_t> keys = {
{"DoReboot", CLEAR_ON_MANAGER_START}, {"DoReboot", CLEAR_ON_MANAGER_START},
{"DoShutdown", CLEAR_ON_MANAGER_START}, {"DoShutdown", CLEAR_ON_MANAGER_START},
{"DoUninstall", CLEAR_ON_MANAGER_START}, {"DoUninstall", CLEAR_ON_MANAGER_START},
{"EnableLogging", CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON},
{"EnableWideCamera", CLEAR_ON_MANAGER_START}, {"EnableWideCamera", CLEAR_ON_MANAGER_START},
{"EndToEndToggle", PERSISTENT}, {"EndToEndToggle", PERSISTENT},
{"ForcePowerDown", CLEAR_ON_MANAGER_START}, {"ForcePowerDown", CLEAR_ON_MANAGER_START},

@ -14,7 +14,7 @@ def notcar(started: bool, params: Params, CP: car.CarParams) -> bool:
return CP.notCar return CP.notCar
def logging(started, params, CP: car.CarParams) -> bool: def logging(started, params, CP: car.CarParams) -> bool:
run = (not CP.notCar) or params.get_bool("EnableLogging") run = (not CP.notCar) or not params.get_bool("DisableLogging")
return started and run return started and run
procs = [ procs = [

@ -7,11 +7,16 @@
#include <QStackedLayout> #include <QStackedLayout>
#include "selfdrive/common/params.h" #include "selfdrive/common/params.h"
#include "selfdrive/common/timing.h"
RecordButton::RecordButton(QWidget *parent) : QPushButton(parent) { RecordButton::RecordButton(QWidget *parent) : QPushButton(parent) {
setCheckable(true); setCheckable(true);
setChecked(false); setChecked(false);
setFixedSize(148, 148); setFixedSize(148, 148);
QObject::connect(this, &QPushButton::toggled, [=]() {
setEnabled(false);
});
} }
void RecordButton::paintEvent(QPaintEvent *event) { void RecordButton::paintEvent(QPaintEvent *event) {
@ -20,8 +25,13 @@ void RecordButton::paintEvent(QPaintEvent *event) {
QPoint center(width() / 2, height() / 2); QPoint center(width() / 2, height() / 2);
QColor bg(isChecked() ? "#FFFFFF" : "#404040"); QColor bg(isChecked() ? "#FFFFFF" : "#737373");
QColor accent(isChecked() ? "#FF0000" : "#FFFFFF"); QColor accent(isChecked() ? "#FF0000" : "#FFFFFF");
if (!isEnabled()) {
bg = QColor("#404040");
accent = QColor("#FFFFFF");
}
if (isDown()) { if (isDown()) {
accent.setAlphaF(0.7); accent.setAlphaF(0.7);
} }
@ -62,7 +72,9 @@ BodyWindow::BodyWindow(QWidget *parent) : fuel_filter(1.0, 5., 1. / UI_FREQ), QW
btn = new RecordButton(this); btn = new RecordButton(this);
vlayout->addWidget(btn, 0, Qt::AlignBottom | Qt::AlignRight); vlayout->addWidget(btn, 0, Qt::AlignBottom | Qt::AlignRight);
QObject::connect(btn, &QPushButton::clicked, [=](bool checked) { QObject::connect(btn, &QPushButton::clicked, [=](bool checked) {
Params().putBool("EnableLogging", checked); btn->setEnabled(false);
Params().putBool("DisableLogging", !checked);
last_button = nanos_since_boot();
}); });
w->raise(); w->raise();
@ -70,8 +82,6 @@ BodyWindow::BodyWindow(QWidget *parent) : fuel_filter(1.0, 5., 1. / UI_FREQ), QW
} }
void BodyWindow::paintEvent(QPaintEvent *event) { void BodyWindow::paintEvent(QPaintEvent *event) {
//QLabel::paintEvent(event);
QPainter p(this); QPainter p(this);
p.setRenderHint(QPainter::Antialiasing); p.setRenderHint(QPainter::Antialiasing);
@ -112,6 +122,11 @@ void BodyWindow::paintEvent(QPaintEvent *event) {
} }
} }
void BodyWindow::offroadTransition(bool offroad) {
btn->setChecked(true);
btn->setEnabled(true);
fuel_filter.reset(1.0);
}
void BodyWindow::updateState(const UIState &s) { void BodyWindow::updateState(const UIState &s) {
if (!isVisible()) { if (!isVisible()) {
@ -132,5 +147,15 @@ void BodyWindow::updateState(const UIState &s) {
face->movie()->start(); face->movie()->start();
} }
// update record button state
if (sm.updated("managerState") && (sm.rcv_time("managerState") - last_button)*1e-9 > 0.5) {
for (auto proc : sm["managerState"].getManagerState().getProcesses()) {
if (proc.getName() == "loggerd") {
btn->setEnabled(true);
btn->setChecked(proc.getRunning());
}
}
}
update(); update();
} }

@ -25,6 +25,7 @@ public:
private: private:
bool charging = false; bool charging = false;
uint64_t last_button = 0;
FirstOrderFilter fuel_filter; FirstOrderFilter fuel_filter;
QLabel *face; QLabel *face;
QMovie *awake, *sleep; QMovie *awake, *sleep;
@ -33,4 +34,5 @@ private:
private slots: private slots:
void updateState(const UIState &s); void updateState(const UIState &s);
void offroadTransition(bool onroad);
}; };

@ -32,7 +32,6 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) {
body = new BodyWindow(this); body = new BodyWindow(this);
slayout->addWidget(body); slayout->addWidget(body);
body->setEnabled(false);
driver_view = new DriverViewWindow(this); driver_view = new DriverViewWindow(this);
connect(driver_view, &DriverViewWindow::done, [=] { connect(driver_view, &DriverViewWindow::done, [=] {
@ -59,6 +58,7 @@ void HomeWindow::updateState(const UIState &s) {
} }
void HomeWindow::offroadTransition(bool offroad) { void HomeWindow::offroadTransition(bool offroad) {
body->setEnabled(false);
sidebar->setVisible(offroad); sidebar->setVisible(offroad);
if (offroad) { if (offroad) {
slayout->setCurrentWidget(home); slayout->setCurrentWidget(home);

@ -233,7 +233,7 @@ UIState::UIState(QObject *parent) : QObject(parent) {
sm = std::make_unique<SubMaster, const std::initializer_list<const char *>>({ sm = std::make_unique<SubMaster, const std::initializer_list<const char *>>({
"modelV2", "controlsState", "liveCalibration", "radarState", "deviceState", "roadCameraState", "modelV2", "controlsState", "liveCalibration", "radarState", "deviceState", "roadCameraState",
"pandaStates", "carParams", "driverMonitoringState", "sensorEvents", "carState", "liveLocationKalman", "pandaStates", "carParams", "driverMonitoringState", "sensorEvents", "carState", "liveLocationKalman",
"wideRoadCameraState", "wideRoadCameraState", "managerState",
}); });
Params params; Params params;

Loading…
Cancel
Save