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