parent
							
								
									c4b78042dd
								
							
						
					
					
						commit
						ba78f80850
					
				
				 3 changed files with 54 additions and 0 deletions
			
			
		| @ -0,0 +1,50 @@ | |||||||
|  | #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) { | ||||||
|  |       label->setText("〇"); | ||||||
|  |       auto cs = sm["controlsState"].getControlsState(); | ||||||
|  |       UIStatus status = cs.getEnabled() ? STATUS_ENGAGED : STATUS_DISENGAGED; | ||||||
|  |       label->setStyleSheet(QString("color: %1; font-size: 250px;").arg(bg_colors[status].name())); | ||||||
|  |     } else { | ||||||
|  |       label->setText("offroad"); | ||||||
|  |       label->setStyleSheet("color: grey; font-size: 40px;"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     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