mui
parent
fc7d152dca
commit
646fe7de4b
|
@ -1,6 +1,7 @@
|
||||||
moc_*
|
moc_*
|
||||||
*.moc
|
*.moc
|
||||||
|
|
||||||
|
_mui
|
||||||
watch3
|
watch3
|
||||||
installer/installers/*
|
installer/installers/*
|
||||||
replay/replay
|
replay/replay
|
||||||
|
|
|
@ -73,6 +73,9 @@ if GetOption('extras'):
|
||||||
# buidl updater UI
|
# buidl updater UI
|
||||||
qt_env.Program("qt/setup/updater", ["qt/setup/updater.cc", asset_obj], LIBS=qt_libs)
|
qt_env.Program("qt/setup/updater", ["qt/setup/updater.cc", asset_obj], LIBS=qt_libs)
|
||||||
|
|
||||||
|
# build mui
|
||||||
|
qt_env.Program("_mui", ["mui.cc"], LIBS=qt_libs)
|
||||||
|
|
||||||
# build installers
|
# build installers
|
||||||
senv = qt_env.Clone()
|
senv = qt_env.Clone()
|
||||||
senv['LINKFLAGS'].append('-Wl,-strip-debug')
|
senv['LINKFLAGS'].append('-Wl,-strip-debug')
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QtWidgets>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
#include "cereal/messaging/messaging.h"
|
||||||
|
#include "selfdrive/ui/ui.h"
|
||||||
|
#include "selfdrive/ui/qt/qt_window.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
QWidget w;
|
||||||
|
setMainWindow(&w);
|
||||||
|
|
||||||
|
w.setStyleSheet("background-color: black;");
|
||||||
|
|
||||||
|
// our beautiful UI
|
||||||
|
QVBoxLayout *layout = new QVBoxLayout(&w);
|
||||||
|
QLabel *label = new QLabel("〇");
|
||||||
|
layout->addWidget(label, 0, Qt::AlignCenter);
|
||||||
|
|
||||||
|
QTimer timer;
|
||||||
|
QObject::connect(&timer, &QTimer::timeout, [=]() {
|
||||||
|
static SubMaster sm({"deviceState", "controlsState"});
|
||||||
|
|
||||||
|
bool onroad_prev = sm.allAliveAndValid({"deviceState"}) &&
|
||||||
|
sm["deviceState"].getDeviceState().getStarted();
|
||||||
|
sm.update(0);
|
||||||
|
|
||||||
|
bool onroad = sm.allAliveAndValid({"deviceState"}) &&
|
||||||
|
sm["deviceState"].getDeviceState().getStarted();
|
||||||
|
|
||||||
|
if (onroad) {
|
||||||
|
auto cs = sm["controlsState"].getControlsState();
|
||||||
|
UIStatus status = cs.getEnabled() ? STATUS_ENGAGED : STATUS_DISENGAGED;
|
||||||
|
if (cs.getAlertStatus() == cereal::ControlsState::AlertStatus::USER_PROMPT) {
|
||||||
|
status = STATUS_WARNING;
|
||||||
|
} else if (cs.getAlertStatus() == cereal::ControlsState::AlertStatus::CRITICAL) {
|
||||||
|
status = STATUS_ALERT;
|
||||||
|
}
|
||||||
|
label->setStyleSheet(QString("color: %1; font-size: 250px;").arg(bg_colors[status].name()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((onroad != onroad_prev) || sm.frame < 2) {
|
||||||
|
Hardware::set_brightness(50);
|
||||||
|
Hardware::set_display_power(onroad);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
timer.start(50);
|
||||||
|
|
||||||
|
return a.exec();
|
||||||
|
}
|
Loading…
Reference in New Issue