UI: run set_brightness in QtConcurrent (#23326)

* use QFuture

* update at 10 hz

* don't change frequency
pull/23263/head^2
Dean Lee 3 years ago committed by GitHub
parent 9f88ba188a
commit cd9813ab6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      selfdrive/ui/ui.cc
  2. 2
      selfdrive/ui/ui.h

@ -3,6 +3,8 @@
#include <cassert>
#include <cmath>
#include <QtConcurrent>
#include "common/transformations/orientation.hpp"
#include "selfdrive/common/params.h"
#include "selfdrive/common/swaglog.h"
@ -290,9 +292,11 @@ void Device::updateBrightness(const UIState &s) {
}
if (brightness != last_brightness) {
std::thread{Hardware::set_brightness, brightness}.detach();
if (!brightness_future.isRunning()) {
brightness_future = QtConcurrent::run(Hardware::set_brightness, brightness);
last_brightness = brightness;
}
}
last_brightness = brightness;
}
bool Device::motionTriggered(const UIState &s) {

@ -7,6 +7,7 @@
#include <QObject>
#include <QTimer>
#include <QColor>
#include <QFuture>
#include <QTransform>
#include "cereal/messaging/messaging.h"
@ -162,6 +163,7 @@ private:
bool ignition_on = false;
int last_brightness = 0;
FirstOrderFilter brightness_filter;
QFuture<void> brightness_future;
void updateBrightness(const UIState &s);
void updateWakefulness(const UIState &s);

Loading…
Cancel
Save