ui/driverview: inherit from CameraWidget (#29661)

pull/29715/head
Dean Lee 2 years ago committed by GitHub
parent 059cb0130d
commit 6c73a924fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 51
      selfdrive/ui/qt/offroad/driverview.cc
  2. 33
      selfdrive/ui/qt/offroad/driverview.h
  3. 2
      selfdrive/ui/translations/main_de.ts
  4. 2
      selfdrive/ui/translations/main_fr.ts
  5. 2
      selfdrive/ui/translations/main_ja.ts
  6. 2
      selfdrive/ui/translations/main_ko.ts
  7. 2
      selfdrive/ui/translations/main_pt-BR.ts
  8. 2
      selfdrive/ui/translations/main_th.ts
  9. 2
      selfdrive/ui/translations/main_tr.ts
  10. 2
      selfdrive/ui/translations/main_zh-CHS.ts
  11. 2
      selfdrive/ui/translations/main_zh-CHT.ts

@ -3,62 +3,33 @@
#include <algorithm> #include <algorithm>
#include <QPainter> #include <QPainter>
#include "selfdrive/ui/qt/qt_window.h"
#include "selfdrive/ui/qt/util.h" #include "selfdrive/ui/qt/util.h"
const int FACE_IMG_SIZE = 130; const int FACE_IMG_SIZE = 130;
DriverViewWindow::DriverViewWindow(QWidget* parent) : QWidget(parent) { DriverViewWindow::DriverViewWindow(QWidget* parent) : CameraWidget("camerad", VISION_STREAM_DRIVER, true, parent) {
setAttribute(Qt::WA_OpaquePaintEvent);
layout = new QStackedLayout(this);
layout->setStackingMode(QStackedLayout::StackAll);
cameraView = new CameraWidget("camerad", VISION_STREAM_DRIVER, true, this);
layout->addWidget(cameraView);
scene = new DriverViewScene(this);
connect(cameraView, &CameraWidget::vipcThreadFrameReceived, scene, &DriverViewScene::frameUpdated);
layout->addWidget(scene);
layout->setCurrentWidget(scene);
QObject::connect(device(), &Device::interactiveTimeout, this, &DriverViewWindow::closeView);
}
void DriverViewWindow::closeView() {
if (isVisible()) {
cameraView->stopVipcThread();
emit done();
}
}
void DriverViewWindow::mouseReleaseEvent(QMouseEvent* e) {
closeView();
}
DriverViewScene::DriverViewScene(QWidget* parent) : QWidget(parent) {
face_img = loadPixmap("../assets/img_driver_face_static.png", {FACE_IMG_SIZE, FACE_IMG_SIZE}); face_img = loadPixmap("../assets/img_driver_face_static.png", {FACE_IMG_SIZE, FACE_IMG_SIZE});
QObject::connect(device(), &Device::interactiveTimeout, this, &DriverViewWindow::done);
QObject::connect(this, &CameraWidget::clicked, this, &DriverViewWindow::done);
} }
void DriverViewScene::showEvent(QShowEvent* event) { void DriverViewWindow::showEvent(QShowEvent* event) {
frame_updated = false;
params.putBool("IsDriverViewEnabled", true); params.putBool("IsDriverViewEnabled", true);
device()->resetInteractiveTimeout(60); device()->resetInteractiveTimeout(60);
CameraWidget::showEvent(event);
} }
void DriverViewScene::hideEvent(QHideEvent* event) { void DriverViewWindow::hideEvent(QHideEvent* event) {
params.putBool("IsDriverViewEnabled", false); params.putBool("IsDriverViewEnabled", false);
stopVipcThread();
} }
void DriverViewScene::frameUpdated() { void DriverViewWindow::paintGL() {
frame_updated = true; CameraWidget::paintGL();
update();
}
void DriverViewScene::paintEvent(QPaintEvent* event) {
QPainter p(this); QPainter p(this);
// startup msg // startup msg
if (!frame_updated) { if (frames.empty()) {
p.setPen(Qt::white); p.setPen(Qt::white);
p.setRenderHint(QPainter::TextAntialiasing); p.setRenderHint(QPainter::TextAntialiasing);
p.setFont(InterFont(100, QFont::Bold)); p.setFont(InterFont(100, QFont::Bold));
@ -70,7 +41,7 @@ void DriverViewScene::paintEvent(QPaintEvent* event) {
cereal::DriverStateV2::Reader driver_state = sm["driverStateV2"].getDriverStateV2(); cereal::DriverStateV2::Reader driver_state = sm["driverStateV2"].getDriverStateV2();
cereal::DriverStateV2::DriverData::Reader driver_data; cereal::DriverStateV2::DriverData::Reader driver_data;
is_rhd = driver_state.getWheelOnRightProb() > 0.5; bool is_rhd = driver_state.getWheelOnRightProb() > 0.5;
driver_data = is_rhd ? driver_state.getRightDriverData() : driver_state.getLeftDriverData(); driver_data = is_rhd ? driver_state.getRightDriverData() : driver_state.getLeftDriverData();
bool face_detected = driver_data.getFaceProb() > 0.7; bool face_detected = driver_data.getFaceProb() > 0.7;

@ -1,44 +1,21 @@
#pragma once #pragma once
#include <QStackedLayout>
#include "selfdrive/ui/qt/widgets/cameraview.h" #include "selfdrive/ui/qt/widgets/cameraview.h"
class DriverViewScene : public QWidget { class DriverViewWindow : public CameraWidget {
Q_OBJECT Q_OBJECT
public: public:
explicit DriverViewScene(QWidget *parent); explicit DriverViewWindow(QWidget *parent);
public slots: signals:
void frameUpdated(); void done();
protected: protected:
void showEvent(QShowEvent *event) override; void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override; void hideEvent(QHideEvent *event) override;
void paintEvent(QPaintEvent *event) override; void paintGL() override;
private:
Params params; Params params;
QPixmap face_img; QPixmap face_img;
bool is_rhd = false;
bool frame_updated = false;
};
class DriverViewWindow : public QWidget {
Q_OBJECT
public:
explicit DriverViewWindow(QWidget *parent);
signals:
void done();
protected:
void mouseReleaseEvent(QMouseEvent* e) override;
void closeView();
CameraWidget *cameraView;
DriverViewScene *scene;
QStackedLayout *layout;
}; };

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation>Kamera startet</translation> <translation>Kamera startet</translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation>démarrage de la caméra</translation> <translation>démarrage de la caméra</translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation></translation> <translation></translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation> </translation> <translation> </translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation>câmera iniciando</translation> <translation>câmera iniciando</translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation></translation> <translation></translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation>kamera başlatılıyor</translation> <translation>kamera başlatılıyor</translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation></translation> <translation></translation>

@ -302,7 +302,7 @@
</message> </message>
</context> </context>
<context> <context>
<name>DriverViewScene</name> <name>DriverViewWindow</name>
<message> <message>
<source>camera starting</source> <source>camera starting</source>
<translation></translation> <translation></translation>

Loading…
Cancel
Save