Skip to content

Commit

Permalink
Debug: Tap on Ui to capture snapshot of debug data
Browse files Browse the repository at this point in the history
  • Loading branch information
alfhern committed Feb 1, 2024
1 parent 5a01e78 commit c51c185
Show file tree
Hide file tree
Showing 16 changed files with 314 additions and 4 deletions.
1 change: 1 addition & 0 deletions common/params.cc
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ std::unordered_map<std::string, uint32_t> keys = {
{"DoReboot", CLEAR_ON_MANAGER_START},
{"DoShutdown", CLEAR_ON_MANAGER_START},
{"DoUninstall", CLEAR_ON_MANAGER_START},
{"EnableDebugSnapshot", PERSISTENT},
{"ExperimentalLongitudinalEnabled", PERSISTENT},
{"ExperimentalMode", PERSISTENT},
{"ExperimentalModeConfirmed", PERSISTENT},
Expand Down
6 changes: 6 additions & 0 deletions selfdrive/ui/qt/offroad/settings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) {
"Show UI elements that aid debugging.",
"../assets/offroad/icon_calibration.png",
},
{
"EnableDebugSnapshot",
"Debug snapshot on screen center tap",
"Stores snapshot file with current state of some modules.",
"../assets/offroad/icon_calibration.png",
},
#ifdef ENABLE_MAPS
{
"NavSettingTime24h",
Expand Down
69 changes: 68 additions & 1 deletion selfdrive/ui/qt/onroad.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <QDebug>
#include <QMouseEvent>
#include <QPainterPath>
#include <iomanip>

#include "common/timing.h"
#include "selfdrive/ui/qt/util.h"
Expand Down Expand Up @@ -75,7 +76,7 @@ void OnroadWindow::updateState(const UIState &s) {
}

QColor bgColor = bg_colors[s.status];
Alert alert = Alert::get(*(s.sm), s.scene.started_frame);
Alert alert = Alert::get(*(s.sm), s.scene.started_frame, s.scene.display_debug_alert_frame);
alerts->updateAlert(alert);

if (s.scene.map_on_left) {
Expand All @@ -93,20 +94,86 @@ void OnroadWindow::updateState(const UIState &s) {
}
}

void issue_debug_snapshot(SubMaster &sm) {
auto longitudinal_plan = sm["longitudinalPlan"].getLongitudinalPlan();
auto live_map_data = sm["liveMapData"].getLiveMapData();
auto car_state = sm["carState"].getCarState();

auto t = std::time(nullptr);
auto tm = *std::localtime(&t);
std::ostringstream param_name_os;
param_name_os << std::put_time(&tm, "%Y-%m-%d--%H-%M-%S");

std::ostringstream os;
os.setf(std::ios_base::fixed);
os.precision(2);
os << "Datetime: " << param_name_os.str() << ", vEgo: " << car_state.getVEgo() * 3.6 << "\n\n";
os.precision(6);
os << "Location: (" << live_map_data.getLastGpsLatitude() << ", " << live_map_data.getLastGpsLongitude() << ")\n";
os.precision(2);
os << "Bearing: " << live_map_data.getLastGpsBearingDeg() << "; ";
os << "GPSSpeed: " << live_map_data.getLastGpsSpeed() * 3.6 << "\n\n";
os.precision(1);
os << "Speed Limit: " << live_map_data.getSpeedLimit() * 3.6 << ", ";
os << "Valid: " << live_map_data.getSpeedLimitValid() << "\n";
os << "Speed Limit Ahead: " << live_map_data.getSpeedLimitAhead() * 3.6 << ", ";
os << "Valid: " << live_map_data.getSpeedLimitAheadValid() << ", ";
os << "Distance: " << live_map_data.getSpeedLimitAheadDistance() << "\n";
os << "Turn Speed Limit: " << live_map_data.getTurnSpeedLimit() * 3.6 << ", ";
os << "Valid: " << live_map_data.getTurnSpeedLimitValid() << ", ";
os << "End Distance: " << live_map_data.getTurnSpeedLimitEndDistance() << ", ";
os << "Sign: " << live_map_data.getTurnSpeedLimitSign() << "\n\n";

const auto turn_speeds = live_map_data.getTurnSpeedLimitsAhead();
os << "Turn Speed Limits Ahead:\n";
os << "VALUE\tDIST\tSIGN\n";

if (turn_speeds.size() == 0) {
os << "-\t-\t-" << "\n\n";
} else {
const auto distances = live_map_data.getTurnSpeedLimitsAheadDistances();
const auto signs = live_map_data.getTurnSpeedLimitsAheadSigns();
for (int i = 0; i < turn_speeds.size(); i++) {
os << turn_speeds[i] * 3.6 << "\t" << distances[i] << "\t" << signs[i] << "\n";
}
os << "\n";
}

os << "SPEED LIMIT CONTROLLER:\n";
os << "sl: " << longitudinal_plan.getSpeedLimit() * 3.6 << ", ";
os << "state: " << int(longitudinal_plan.getSpeedLimitControlState()) << ", ";
os << "isMap: " << longitudinal_plan.getIsMapSpeedLimit() << "\n\n";

os << "TURN SPEED CONTROLLER:\n";
os << "speed: " << longitudinal_plan.getTurnSpeed() * 3.6 << ", ";
os << "state: " << int(longitudinal_plan.getTurnSpeedControlState()) << "\n\n";

os << "VISION TURN CONTROLLER:\n";
os << "speed: " << longitudinal_plan.getVisionTurnSpeed() * 3.6 << ", ";
os << "state: " << int(longitudinal_plan.getVisionTurnControllerState());

Params().put(param_name_os.str().c_str(), os.str().c_str(), os.str().length());
uiState()->scene.display_debug_alert_frame = sm.frame;
}

void OnroadWindow::mousePressEvent(QMouseEvent* e) {
bool propagate_event = true;

// Toggle speed limit control enabled
SubMaster &sm = *(uiState()->sm);
auto longitudinal_plan = sm["longitudinalPlan"].getLongitudinalPlan();
const QRect speed_limit_touch_rect = speed_sgn_rc.adjusted(-50, -50, 50, 50);
const QRect debug_tap_rect = QRect(rect().center().x() - 200, rect().center().y() - 200, 400, 400);

if (longitudinal_plan.getSpeedLimit() > 0.0 && speed_limit_touch_rect.contains(e->x(), e->y())) {
// If touching the speed limit sign area when visible
uiState()->scene.last_speed_limit_sign_tap = seconds_since_boot();
uiState()->scene.speed_limit_control_enabled = !uiState()->scene.speed_limit_control_enabled;
Params().putBool("SpeedLimitControl", uiState()->scene.speed_limit_control_enabled);
propagate_event = false;
} else if (uiState()->scene.debug_snapshot_enabled && debug_tap_rect.contains(e->x(), e->y())) {
issue_debug_snapshot(sm);
propagate_event = false;
}
#ifdef ENABLE_MAPS
else
Expand Down
2 changes: 1 addition & 1 deletion selfdrive/ui/soundd/sound.cc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "selfdrive/ui/soundd/sound.h"
#include "selfdrive/ui/soundd/sound.h"

#include <cmath>

Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,29 @@
<translation> تنبيه</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">كم/س</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">ميل/س</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">SPEED</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">LIMIT</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,29 @@
<translation> HINWEIS</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mph</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">Geschwindigkeit</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">LIMIT</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,29 @@
<translation> ALERTE</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mi/h</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">VITESSE</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">LIMITE</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,29 @@
<translation> 警告</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mph</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">最高速度</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">速度</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">制限速度</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,29 @@
<translation> 알림</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mph</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">SPEED</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">LIMIT</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,29 @@
<translation> ALERTA</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mph</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">LIMITE</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">VELO</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_th.ts
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,29 @@
<translation> การแจ้งเตือน</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">กม./ชม.</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">ไมล์/ชม.</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">สูงสุด</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">ความเร็ว</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">จำกัด</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
23 changes: 23 additions & 0 deletions selfdrive/ui/translations/main_tr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,29 @@
<translation> UYARI</translation>
</message>
</context>
<context>
<name>OnroadWindow</name>
<message>
<source>km/h</source>
<translation type="obsolete">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="obsolete">mph</translation>
</message>
<message>
<source>MAX</source>
<translation type="obsolete">MAX</translation>
</message>
<message>
<source>SPEED</source>
<translation type="obsolete">HIZ</translation>
</message>
<message>
<source>LIMIT</source>
<translation type="obsolete">LİMİT</translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
Expand Down
Loading

0 comments on commit c51c185

Please sign in to comment.