mui
parent
fc7d152dca
commit
646fe7de4b
|
@ -1,6 +1,7 @@
|
|||
moc_*
|
||||
*.moc
|
||||
|
||||
_mui
|
||||
watch3
|
||||
installer/installers/*
|
||||
replay/replay
|
||||
|
|
|
@ -73,6 +73,9 @@ if GetOption('extras'):
|
|||
# buidl updater UI
|
||||
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
|
||||
senv = qt_env.Clone()
|
||||
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