ui/driverview: inherit from CameraWidget (#29661)

old-commit-hash: 6c73a924fa7780fc31776060cf63cce3b85981cb
This commit is contained in:
Dean Lee
2023-08-30 23:41:58 +08:00
committed by GitHub
parent 390ccdf632
commit 56f3b1b6fa
11 changed files with 26 additions and 78 deletions

View File

@@ -3,62 +3,33 @@
#include <algorithm>
#include <QPainter>
#include "selfdrive/ui/qt/qt_window.h"
#include "selfdrive/ui/qt/util.h"
const int FACE_IMG_SIZE = 130;
DriverViewWindow::DriverViewWindow(QWidget* parent) : QWidget(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) {
DriverViewWindow::DriverViewWindow(QWidget* parent) : CameraWidget("camerad", VISION_STREAM_DRIVER, true, parent) {
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) {
frame_updated = false;
void DriverViewWindow::showEvent(QShowEvent* event) {
params.putBool("IsDriverViewEnabled", true);
device()->resetInteractiveTimeout(60);
CameraWidget::showEvent(event);
}
void DriverViewScene::hideEvent(QHideEvent* event) {
void DriverViewWindow::hideEvent(QHideEvent* event) {
params.putBool("IsDriverViewEnabled", false);
stopVipcThread();
}
void DriverViewScene::frameUpdated() {
frame_updated = true;
update();
}
void DriverViewWindow::paintGL() {
CameraWidget::paintGL();
void DriverViewScene::paintEvent(QPaintEvent* event) {
QPainter p(this);
// startup msg
if (!frame_updated) {
if (frames.empty()) {
p.setPen(Qt::white);
p.setRenderHint(QPainter::TextAntialiasing);
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::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();
bool face_detected = driver_data.getFaceProb() > 0.7;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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