|
|
@ -166,6 +166,7 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) { |
|
|
|
|
|
|
|
|
|
|
|
NvgWindow::NvgWindow(VisionStreamType type, QWidget* parent) : fps_filter(UI_FREQ, 3, 1. / UI_FREQ), CameraViewWidget("camerad", type, true, parent) { |
|
|
|
NvgWindow::NvgWindow(VisionStreamType type, QWidget* parent) : fps_filter(UI_FREQ, 3, 1. / UI_FREQ), CameraViewWidget("camerad", type, true, parent) { |
|
|
|
engage_img = loadPixmap("../assets/img_chffr_wheel.png", {img_size, img_size}); |
|
|
|
engage_img = loadPixmap("../assets/img_chffr_wheel.png", {img_size, img_size}); |
|
|
|
|
|
|
|
dm_img = loadPixmap("../assets/img_driver_face.png", {img_size, img_size}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void NvgWindow::updateState(const UIState &s) { |
|
|
|
void NvgWindow::updateState(const UIState &s) { |
|
|
@ -185,11 +186,13 @@ void NvgWindow::updateState(const UIState &s) { |
|
|
|
setProperty("speed", QString::number(std::nearbyint(cur_speed))); |
|
|
|
setProperty("speed", QString::number(std::nearbyint(cur_speed))); |
|
|
|
setProperty("maxSpeed", maxspeed_str); |
|
|
|
setProperty("maxSpeed", maxspeed_str); |
|
|
|
setProperty("speedUnit", s.scene.is_metric ? "km/h" : "mph"); |
|
|
|
setProperty("speedUnit", s.scene.is_metric ? "km/h" : "mph"); |
|
|
|
|
|
|
|
setProperty("hideDM", cs.getAlertSize() != cereal::ControlsState::AlertSize::NONE); |
|
|
|
setProperty("status", s.status); |
|
|
|
setProperty("status", s.status); |
|
|
|
|
|
|
|
|
|
|
|
// update engageability at 2Hz
|
|
|
|
// update engageability and DM icons at 2Hz
|
|
|
|
if (sm.frame % (UI_FREQ / 2) == 0) { |
|
|
|
if (sm.frame % (UI_FREQ / 2) == 0) { |
|
|
|
setProperty("engageable", cs.getEngageable() || cs.getEnabled()); |
|
|
|
setProperty("engageable", cs.getEngageable() || cs.getEnabled()); |
|
|
|
|
|
|
|
setProperty("dmActive", sm["driverMonitoringState"].getDriverMonitoringState().getIsActiveMode()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -231,6 +234,11 @@ void NvgWindow::drawHud(QPainter &p) { |
|
|
|
engage_img, bg_colors[status], 1.0); |
|
|
|
engage_img, bg_colors[status], 1.0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// dm icon
|
|
|
|
|
|
|
|
if (!hideDM) { |
|
|
|
|
|
|
|
drawIcon(p, radius / 2 + (bdr_s * 2), rect().bottom() - footer_h / 2, |
|
|
|
|
|
|
|
dm_img, QColor(0, 0, 0, 70), dmActive ? 1.0 : 0.2); |
|
|
|
|
|
|
|
} |
|
|
|
p.restore(); |
|
|
|
p.restore(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|